Explorar el Código

Merge pull request #3 from AnnulusGames/parse-omit-paren

Add: support for omitting parens in function call
Annulus Games hace 1 año
padre
commit
fd82a5ba37
Se han modificado 1 ficheros con 6 adiciones y 1 borrados
  1. 6 1
      src/Lua/CodeAnalysis/Syntax/Parser.cs

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

@@ -545,7 +545,7 @@ public ref struct Parser
         {
             SyntaxTokenType.Identifier => enumerator.GetNext(true).Type switch
             {
-                SyntaxTokenType.LParen => ParseCallFunctionExpression(ref enumerator),
+                SyntaxTokenType.LParen or SyntaxTokenType.String => ParseCallFunctionExpression(ref enumerator),
                 SyntaxTokenType.LSquare or SyntaxTokenType.Dot or SyntaxTokenType.Colon => ParseTableAccessExpression(ref enumerator, null),
                 _ => new IdentifierNode(enumerator.Current.Text, enumerator.Current.Position),
             },
@@ -855,6 +855,11 @@ public ref struct Parser
 
     ExpressionNode[] ParseCallFunctionArguments(ref SyntaxTokenEnumerator enumerator)
     {
+        if (enumerator.Current.Type is SyntaxTokenType.String)
+        {
+            return [new StringLiteralNode(enumerator.Current.Text.ToString(), enumerator.Current.Position)];
+        }
+
         // check and skip '('
         CheckCurrentAndSkip(ref enumerator, SyntaxTokenType.LParen, out _);