Create asserts for expression and identifier
This commit is contained in:
@@ -43,9 +43,9 @@ def ExpressionParser(input):
|
||||
ifElseExpression = Parser.allOf(
|
||||
expr4,
|
||||
Parser.terminal(TokenType.IF),
|
||||
expr4,
|
||||
Parser.terminal(TokenType.ELSE),
|
||||
expr4,
|
||||
Parser.doAssert(expr4, "expression"),
|
||||
Parser.terminal(TokenType.ELSE, doAssert=True),
|
||||
Parser.doAssert(expr4, "expression"),
|
||||
createNode=lambda ifNode, _, condition, __, elseNode: IfElse.createNode(ifNode, condition, elseNode)
|
||||
)
|
||||
|
||||
|
||||
@@ -56,14 +56,14 @@ def IdentifierLiteralParser(input):
|
||||
def IdentifierParser(input):
|
||||
functionCallParser = Parser.allOf(
|
||||
IdentifierLiteralParser,
|
||||
abstractIterableParser(ArgumentsList, TokenType.OPEN_PAREN, TokenType.CLOSE_PAREN, ExpressionParser),
|
||||
abstractIterableParser(ArgumentsList, TokenType.OPEN_PAREN, TokenType.CLOSE_PAREN, Parser.doAssert(ExpressionParser, "expression")),
|
||||
createNode=lambda name, arguments: FunctionCall.withChildren(name, arguments)
|
||||
)
|
||||
|
||||
assignmentParser = Parser.allOf(
|
||||
IdentifierLiteralParser,
|
||||
Parser.terminal(TokenType.ASSIGN, createNode=Operator.withValue),
|
||||
ExpressionParser,
|
||||
Parser.doAssert(ExpressionParser, "expression"),
|
||||
createNode=lambda identifier, assign, expr: Assignment.withValues(identifier, assign, expr)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user