Browse Source

Merge pull request #59 from AnnulusGames/fix-parser

Fix: parser
Annulus Games 11 months ago
parent
commit
ae1e3ec2ee
1 changed files with 3 additions and 2 deletions
  1. 3 2
      src/Lua/CodeAnalysis/Syntax/Parser.cs

+ 3 - 2
src/Lua/CodeAnalysis/Syntax/Parser.cs

@@ -599,10 +599,11 @@ public ref struct Parser
         // binary expression
         // binary expression
         while (true)
         while (true)
         {
         {
-            var opPrecedence = GetPrecedence(enumerator.GetNext().Type);
+            var opPrecedence = GetPrecedence(enumerator.GetNext(true).Type);
             if (precedence >= opPrecedence) break;
             if (precedence >= opPrecedence) break;
 
 
             MoveNextWithValidation(ref enumerator);
             MoveNextWithValidation(ref enumerator);
+            enumerator.SkipEoL();
             result = ParseBinaryExpression(ref enumerator, opPrecedence, result);
             result = ParseBinaryExpression(ref enumerator, opPrecedence, result);
 
 
             enumerator.SkipEoL();
             enumerator.SkipEoL();
@@ -615,7 +616,7 @@ public ref struct Parser
     {
     {
         if (!TryParseExpression(ref enumerator, precedence, out var result))
         if (!TryParseExpression(ref enumerator, precedence, out var result))
         {
         {
-            throw new LuaParseException(ChunkName, enumerator.Current.Position, "Unexpected token <{enumerator.Current.Type}>");
+            throw new LuaParseException(ChunkName, enumerator.Current.Position, $"Unexpected token <{enumerator.Current.Type}>");
         }
         }
 
 
         return result;
         return result;