Create asserts for expression and identifier

This commit is contained in:
Bartłomiej Pluta
2019-07-12 17:20:38 +02:00
parent 386c89502a
commit fe8dca4d2c
2 changed files with 5 additions and 5 deletions

View File

@@ -43,9 +43,9 @@ def ExpressionParser(input):
ifElseExpression = Parser.allOf( ifElseExpression = Parser.allOf(
expr4, expr4,
Parser.terminal(TokenType.IF), Parser.terminal(TokenType.IF),
expr4, Parser.doAssert(expr4, "expression"),
Parser.terminal(TokenType.ELSE), Parser.terminal(TokenType.ELSE, doAssert=True),
expr4, Parser.doAssert(expr4, "expression"),
createNode=lambda ifNode, _, condition, __, elseNode: IfElse.createNode(ifNode, condition, elseNode) createNode=lambda ifNode, _, condition, __, elseNode: IfElse.createNode(ifNode, condition, elseNode)
) )

View File

@@ -56,14 +56,14 @@ def IdentifierLiteralParser(input):
def IdentifierParser(input): def IdentifierParser(input):
functionCallParser = Parser.allOf( functionCallParser = Parser.allOf(
IdentifierLiteralParser, 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) createNode=lambda name, arguments: FunctionCall.withChildren(name, arguments)
) )
assignmentParser = Parser.allOf( assignmentParser = Parser.allOf(
IdentifierLiteralParser, IdentifierLiteralParser,
Parser.terminal(TokenType.ASSIGN, createNode=Operator.withValue), Parser.terminal(TokenType.ASSIGN, createNode=Operator.withValue),
ExpressionParser, Parser.doAssert(ExpressionParser, "expression"),
createNode=lambda identifier, assign, expr: Assignment.withValues(identifier, assign, expr) createNode=lambda identifier, assign, expr: Assignment.withValues(identifier, assign, expr)
) )