Browse Source

Fix: parser

AnnulusGames 1 year ago
parent
commit
8ef57462a8
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/Lua/CodeAnalysis/Syntax/Parser.cs

+ 5 - 1
src/Lua/CodeAnalysis/Syntax/Parser.cs

@@ -586,7 +586,7 @@ public ref struct Parser
             result = ParseTableAccessExpression(ref enumerator, result);
             goto RECURSIVE;
         }
-        else if (nextType is SyntaxTokenType.LParen)
+        else if (nextType is SyntaxTokenType.LParen or SyntaxTokenType.String or SyntaxTokenType.LCurly)
         {
             MoveNextWithValidation(ref enumerator);
             result = ParseCallFunctionExpression(ref enumerator, result);
@@ -860,6 +860,10 @@ public ref struct Parser
         {
             return [new StringLiteralNode(enumerator.Current.Text.ToString(), enumerator.Current.Position)];
         }
+        else if (enumerator.Current.Type is SyntaxTokenType.LCurly)
+        {
+            return [ParseTableConstructorExpression(ref enumerator)];
+        }
 
         // check and skip '('
         CheckCurrentAndSkip(ref enumerator, SyntaxTokenType.LParen, out _);