...
This commit is contained in:
@@ -195,7 +195,17 @@ public class Parser
|
||||
|
||||
if (TryExpectKeyword(Keyword.Return))
|
||||
{
|
||||
var value = ParseExpression();
|
||||
NodeExpression? value = null;
|
||||
|
||||
if (Peek() is TokenIdent token && token.Ident == "void")
|
||||
{
|
||||
Next();
|
||||
}
|
||||
else
|
||||
{
|
||||
value = ParseExpression();
|
||||
}
|
||||
|
||||
return new NodeStatementReturn(TokensFrom(startIndex), value);
|
||||
}
|
||||
|
||||
@@ -792,9 +802,9 @@ public class NodeStatementExpression(List<Token> tokens, NodeExpression expressi
|
||||
public NodeExpression Expression { get; } = expression;
|
||||
}
|
||||
|
||||
public class NodeStatementReturn(List<Token> tokens, NodeExpression value) : NodeStatement(tokens)
|
||||
public class NodeStatementReturn(List<Token> tokens, NodeExpression? value) : NodeStatement(tokens)
|
||||
{
|
||||
public NodeExpression Value { get; } = value;
|
||||
public NodeExpression? Value { get; } = value;
|
||||
}
|
||||
|
||||
public class NodeStatementVariableDeclaration(List<Token> tokens, TokenIdent name, NodeType? type, NodeExpression value) : NodeStatement(tokens)
|
||||
|
||||
Reference in New Issue
Block a user