fix a few error

This commit is contained in:
Qrakhen 2025-11-18 23:42:34 +01:00
parent 4f6d0fdf5b
commit 8603cfe3d8
3 changed files with 9 additions and 6 deletions

View File

@ -111,7 +111,7 @@ public static class ExpressionParser
digester.EmitDynamic(OpCode.Array, length); // digester.MakeConstant(new Value((long)length))); digester.EmitDynamic(OpCode.Array, length); // digester.MakeConstant(new Value((long)length)));
} }
static void ArrayAdd(Digester digester, bool canAssign) static void AddItem(Digester digester, bool canAssign)
{ {
digester.ParseExpression(); digester.ParseExpression();
digester.Emit(OpCode.AddItem); digester.Emit(OpCode.AddItem);
@ -254,7 +254,7 @@ public static class ExpressionParser
_rules[TokenType.ContextClose] = new Rule(null, null, Weight.None); _rules[TokenType.ContextClose] = new Rule(null, null, Weight.None);
_rules[TokenType.ArrayOpen] = new Rule(Array, Accessor, Weight.Call); _rules[TokenType.ArrayOpen] = new Rule(Array, Accessor, Weight.Call);
_rules[TokenType.ArrayClose] = new Rule(null, null, Weight.None); _rules[TokenType.ArrayClose] = new Rule(null, null, Weight.None);
_rules[TokenType.AddItem] = new Rule(null, ArrayAdd, Weight.None); _rules[TokenType.AddItem] = new Rule(null, AddItem, Weight.None);
_rules[TokenType.RemoveItem] = new Rule(null, null, Weight.None); _rules[TokenType.RemoveItem] = new Rule(null, null, Weight.None);
_rules[TokenType.Colon] = new Rule(null, Dot, Weight.Call); _rules[TokenType.Colon] = new Rule(null, Dot, Weight.Call);
_rules[TokenType.Comma] = new Rule(null, null, Weight.None); _rules[TokenType.Comma] = new Rule(null, null, Weight.None);

View File

@ -279,7 +279,7 @@ public class Reader : IReader<Token>, IDisposable
';' => MakeToken(Semicolon, buffer), ';' => MakeToken(Semicolon, buffer),
':' => Check(':') ? ':' => Check(':') ?
MakeToken(Print, buffer + Next()) : MakeToken(Print, buffer + Next()) :
Check('(') ? Check('[') ?
MakeToken(ListOpen, buffer + Next()) : MakeToken(ListOpen, buffer + Next()) :
MakeToken(Colon, buffer), MakeToken(Colon, buffer),
'&' => Check('&') ? '&' => Check('&') ?
@ -328,6 +328,8 @@ public class Reader : IReader<Token>, IDisposable
MakeToken(BitwiseLeft, buffer + Next()) : MakeToken(BitwiseLeft, buffer + Next()) :
Check('=') ? Check('=') ?
MakeToken(LessEqual, buffer + Next()) : MakeToken(LessEqual, buffer + Next()) :
Check('>') ?
MakeToken(TernaryElse, buffer + Next()) :
MakeToken(Less, buffer), MakeToken(Less, buffer),
'>' => Check('>') ? '>' => Check('>') ?
MakeToken(BitwiseRight, buffer + Next()) : MakeToken(BitwiseRight, buffer + Next()) :

View File

@ -84,6 +84,7 @@ public enum TokenType
While, While,
Do, Do,
Return, Return,
TernaryElse,
Ref, Ref,
Function, Function,
@ -103,7 +104,7 @@ public enum TokenType
public static class TokenTypeExtensions public static class TokenTypeExtensions
{ {
public static bool IsBracket(this TokenType type) public static bool IsBracket(this TokenType type)
=> type is GroupClose or GroupOpen or ContextClose or ContextOpen or ArrayClose or ArrayOpen; => type is GroupClose or GroupOpen or ContextClose or ContextOpen or ArrayClose or ArrayOpen or ListOpen;
public static bool IsString(this TokenType type) public static bool IsString(this TokenType type)
=> type is TokenType.String; => type is TokenType.String;