Improve assertions on if/else statement
This commit is contained in:
@@ -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"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user