Improve assertions on if/else statement

This commit is contained in:
Bartłomiej Pluta
2019-07-12 17:14:40 +02:00
parent 0c72203551
commit 386c89502a

View File

@@ -47,22 +47,22 @@ class IfElse(Node):
def IfElseStatementParser(input): def IfElseStatementParser(input):
ifStatementParser = Parser.allOf( ifStatementParser = Parser.allOf(
Parser.terminal(TokenType.IF), Parser.terminal(TokenType.IF),
Parser.doAssert(Parser.terminal(TokenType.OPEN_PAREN), TokenType.OPEN_PAREN.key), Parser.terminal(TokenType.OPEN_PAREN),
Parser.doAssert(ExpressionParser, "expression"), ExpressionParser,
Parser.doAssert(Parser.terminal(TokenType.CLOSE_PAREN), TokenType.CLOSE_PAREN.key), Parser.terminal(TokenType.CLOSE_PAREN),
Parser.doAssert(StatementParser, "statement"), StatementParser,
createNode=lambda _, __, condition, ___, ifStatement: IfElse.createNode(ifStatement, condition), createNode=lambda _, __, condition, ___, ifStatement: IfElse.createNode(ifStatement, condition),
name="if statement" name="if statement"
) )
ifElseStatementParser = Parser.allOf( ifElseStatementParser = Parser.allOf(
Parser.terminal(TokenType.IF), Parser.terminal(TokenType.IF),
Parser.doAssert(Parser.terminal(TokenType.OPEN_PAREN), TokenType.OPEN_PAREN.key), Parser.terminal(TokenType.OPEN_PAREN, doAssert=True),
Parser.doAssert(ExpressionParser, "expression"), Parser.doAssert(ExpressionParser, "expression"),
Parser.doAssert(Parser.terminal(TokenType.CLOSE_PAREN), TokenType.CLOSE_PAREN.key), Parser.terminal(TokenType.CLOSE_PAREN, doAssert=True),
Parser.doAssert(StatementParser, "statement"), Parser.doAssert(StatementParser, "statement"),
Parser.terminal(TokenType.ELSE), Parser.terminal(TokenType.ELSE),
StatementParser, Parser.doAssert(StatementParser, "statement"),
createNode=lambda _, __, condition, ___, ifStatement, ____, elseStatement: IfElse.createNode(ifStatement, condition, elseStatement), createNode=lambda _, __, condition, ___, ifStatement, ____, elseStatement: IfElse.createNode(ifStatement, condition, elseStatement),
name="if-else statement" name="if-else statement"
) )