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);
|
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]
|
[Fact]
|
||||||
public void ParseAssignmentExpression_Incomplete()
|
public void ParseAssignmentExpression_Incomplete()
|
||||||
{
|
{
|
||||||
|
@ -1070,8 +1070,6 @@ namespace Parser.Internal
|
|||||||
case "elseif":
|
case "elseif":
|
||||||
case "end":
|
case "end":
|
||||||
return null;
|
return null;
|
||||||
default:
|
|
||||||
return ParseExpressionStatement();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1084,7 +1082,7 @@ namespace Parser.Internal
|
|||||||
{
|
{
|
||||||
return Factory.EmptyStatementSyntax(EatToken());
|
return Factory.EmptyStatementSyntax(EatToken());
|
||||||
}
|
}
|
||||||
throw new ParsingException($"Unexpected token \"{CurrentToken}\" at {CurrentPosition}.");
|
return ParseExpressionStatement();
|
||||||
}
|
}
|
||||||
|
|
||||||
private SyntaxList ParseStatementList()
|
private SyntaxList ParseStatementList()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user