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