diff --git a/smnp/ast/node/condition.py b/smnp/ast/node/condition.py index 35eb40b..770be9d 100644 --- a/smnp/ast/node/condition.py +++ b/smnp/ast/node/condition.py @@ -47,22 +47,22 @@ class IfElse(Node): def IfElseStatementParser(input): ifStatementParser = Parser.allOf( Parser.terminal(TokenType.IF), - Parser.doAssert(Parser.terminal(TokenType.OPEN_PAREN), TokenType.OPEN_PAREN.key), - Parser.doAssert(ExpressionParser, "expression"), - Parser.doAssert(Parser.terminal(TokenType.CLOSE_PAREN), TokenType.CLOSE_PAREN.key), - Parser.doAssert(StatementParser, "statement"), + Parser.terminal(TokenType.OPEN_PAREN), + ExpressionParser, + Parser.terminal(TokenType.CLOSE_PAREN), + StatementParser, createNode=lambda _, __, condition, ___, ifStatement: IfElse.createNode(ifStatement, condition), name="if statement" ) ifElseStatementParser = Parser.allOf( 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(Parser.terminal(TokenType.CLOSE_PAREN), TokenType.CLOSE_PAREN.key), + Parser.terminal(TokenType.CLOSE_PAREN, doAssert=True), Parser.doAssert(StatementParser, "statement"), Parser.terminal(TokenType.ELSE), - StatementParser, + Parser.doAssert(StatementParser, "statement"), createNode=lambda _, __, condition, ___, ifStatement, ____, elseStatement: IfElse.createNode(ifStatement, condition, elseStatement), name="if-else statement" )