adadr operator

This commit is contained in:
Qrakhen 2025-12-05 08:19:09 +01:00
parent db68d9e9ce
commit 3c72680808
3 changed files with 5 additions and 2 deletions

View File

@ -284,6 +284,8 @@ public class Reader : IReader<Token>, IDisposable
MakeToken(Colon, buffer), MakeToken(Colon, buffer),
'&' => Check('&') ? '&' => Check('&') ?
MakeToken(And, buffer + Next()) : MakeToken(And, buffer + Next()) :
Check(':') ?
MakeToken(Address, buffer + Next()) :
MakeToken(BitwiseAnd, buffer), MakeToken(BitwiseAnd, buffer),
'^' => Check('~') ? '^' => Check('~') ?
MakeToken(Base, buffer + Next()) : MakeToken(Base, buffer + Next()) :

View File

@ -47,6 +47,7 @@ public enum TokenType
BitwiseNot = Operator | 9, BitwiseNot = Operator | 9,
BitwiseLeft = Operator | 10, BitwiseLeft = Operator | 10,
BitwiseRight = Operator | 11, BitwiseRight = Operator | 11,
Address = Operator | 12, // returns the address of a ptr/object as a value
Assignment = 1 << 9, Assignment = 1 << 9,
Equal = Assignment | 1, Equal = Assignment | 1,

View File

@ -126,7 +126,7 @@ public readonly struct Value : IValue, ISerialize<Value>, IDebug<string>
string type = Type.ToString(); string type = Type.ToString();
if (Type.HasFlag(T.Pointer)) if (Type.HasFlag(T.Pointer))
type = Ptr.Value?.Type.ToString() ?? "ptr:null"; type = $"{Ptr.Value?.Type.ToString()}@{Ptr.Address}" ?? "ptr:null";
return $"<{type}, {AsDynamic(false) ?? "null"}>"; return $"<{type}, {AsDynamic(false) ?? "null"}>";
} }