Browse Source

Add: support for omitting parens in function call

AnnulusGames 1 year ago
parent
commit
b8bdb332db
1 changed files with 6 additions and 1 deletions
  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 _);