Fix parsing of expression statements
This commit is contained in:
parent
e38cdd8b36
commit
4b6ee62f07
@ -22,6 +22,17 @@ namespace Parser.Tests
|
||||
Assert.IsType<AssignmentExpressionSyntaxNode>(((ExpressionStatementSyntaxNode)assignment).Expression);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseExpressionStatement()
|
||||
{
|
||||
var text = "2 + 3";
|
||||
var sut = GetSut(text);
|
||||
var actual = sut.Parse();
|
||||
var statement = actual.Root.StatementList[0].AsNode();
|
||||
Assert.IsType<ExpressionStatementSyntaxNode>(statement);
|
||||
Assert.IsType<BinaryOperationExpressionSyntaxNode>(((ExpressionStatementSyntaxNode)statement).Expression);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseAssignmentExpression_Incomplete()
|
||||
{
|
||||
|
@ -1070,8 +1070,6 @@ namespace Parser.Internal
|
||||
case "elseif":
|
||||
case "end":
|
||||
return null;
|
||||
default:
|
||||
return ParseExpressionStatement();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1084,7 +1082,7 @@ namespace Parser.Internal
|
||||
{
|
||||
return Factory.EmptyStatementSyntax(EatToken());
|
||||
}
|
||||
throw new ParsingException($"Unexpected token \"{CurrentToken}\" at {CurrentPosition}.");
|
||||
return ParseExpressionStatement();
|
||||
}
|
||||
|
||||
private SyntaxList ParseStatementList()
|
||||
|
Loading…
x
Reference in New Issue
Block a user