Create asserts for expression and identifier
This commit is contained in:
@@ -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)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user