Rename terminalParser() to terminal()
This commit is contained in:
@@ -45,10 +45,10 @@ class TypeLiteral(Atom):
|
||||
|
||||
def IntegerParser(input):
|
||||
return Parser.oneOf(
|
||||
Parser.terminalParser(TokenType.INTEGER, lambda val, pos: IntegerLiteral.withValue(int(val), pos)),
|
||||
Parser.terminal(TokenType.INTEGER, lambda val, pos: IntegerLiteral.withValue(int(val), pos)),
|
||||
Parser.allOf(
|
||||
Parser.terminalParser(TokenType.MINUS),
|
||||
Parser.terminalParser(TokenType.INTEGER, lambda val, pos: IntegerLiteral.withValue(int(val), pos)),
|
||||
Parser.terminal(TokenType.MINUS),
|
||||
Parser.terminal(TokenType.INTEGER, lambda val, pos: IntegerLiteral.withValue(int(val), pos)),
|
||||
createNode=lambda minus, integer: IntegerLiteral.withValue(-integer.value, minus.pos),
|
||||
name="negative integer"
|
||||
)
|
||||
@@ -56,19 +56,19 @@ def IntegerParser(input):
|
||||
|
||||
|
||||
def StringParser(input):
|
||||
return Parser.terminalParser(TokenType.STRING, createNode=StringLiteral.withValue)(input)
|
||||
return Parser.terminal(TokenType.STRING, createNode=StringLiteral.withValue)(input)
|
||||
|
||||
|
||||
def NoteParser(input):
|
||||
return Parser.terminalParser(TokenType.NOTE, createNode=NoteLiteral.withValue)(input)
|
||||
return Parser.terminal(TokenType.NOTE, createNode=NoteLiteral.withValue)(input)
|
||||
|
||||
|
||||
def BoolParser(input):
|
||||
return Parser.terminalParser(TokenType.BOOL, createNode=BoolLiteral.withValue)(input)
|
||||
return Parser.terminal(TokenType.BOOL, createNode=BoolLiteral.withValue)(input)
|
||||
|
||||
|
||||
def TypeLiteralParser(input):
|
||||
return Parser.terminalParser(TokenType.TYPE, createNode=TypeLiteral.withValue)(input)
|
||||
return Parser.terminal(TokenType.TYPE, createNode=TypeLiteral.withValue)(input)
|
||||
|
||||
|
||||
def LiteralParser(input):
|
||||
|
||||
@@ -10,8 +10,8 @@ class Block(Node):
|
||||
|
||||
def BlockParser(input):
|
||||
return Parser.loop(
|
||||
Parser.terminalParser(TokenType.OPEN_CURLY),
|
||||
Parser.terminal(TokenType.OPEN_CURLY),
|
||||
Parser.doAssert(StatementParser, f"statement or '{TokenType.CLOSE_CURLY.key}'"),
|
||||
Parser.terminalParser(TokenType.CLOSE_CURLY),
|
||||
Parser.terminal(TokenType.CLOSE_CURLY),
|
||||
createNode=lambda open, statements, close: Block.withChildren(statements, open.pos)
|
||||
)(input)
|
||||
|
||||
@@ -46,22 +46,22 @@ class IfElse(Node):
|
||||
|
||||
def IfElseStatementParser(input):
|
||||
ifStatementParser = Parser.allOf(
|
||||
Parser.terminalParser(TokenType.IF),
|
||||
Parser.terminalParser(TokenType.OPEN_PAREN),
|
||||
Parser.terminal(TokenType.IF),
|
||||
Parser.terminal(TokenType.OPEN_PAREN),
|
||||
ExpressionParser,
|
||||
Parser.terminalParser(TokenType.CLOSE_PAREN),
|
||||
Parser.terminal(TokenType.CLOSE_PAREN),
|
||||
StatementParser,
|
||||
createNode=lambda _, __, condition, ___, ifStatement: IfElse.createNode(ifStatement, condition),
|
||||
name="if statement"
|
||||
)
|
||||
|
||||
ifElseStatementParser = Parser.allOf(
|
||||
Parser.terminalParser(TokenType.IF),
|
||||
Parser.terminalParser(TokenType.OPEN_PAREN),
|
||||
Parser.terminal(TokenType.IF),
|
||||
Parser.terminal(TokenType.OPEN_PAREN),
|
||||
ExpressionParser,
|
||||
Parser.terminalParser(TokenType.CLOSE_PAREN),
|
||||
Parser.terminal(TokenType.CLOSE_PAREN),
|
||||
StatementParser,
|
||||
Parser.terminalParser(TokenType.ELSE),
|
||||
Parser.terminal(TokenType.ELSE),
|
||||
StatementParser,
|
||||
createNode=lambda _, __, condition, ___, ifStatement, ____, elseStatement: IfElse.createNode(ifStatement, condition, elseStatement),
|
||||
name="if-else statement"
|
||||
|
||||
@@ -44,9 +44,9 @@ def ExpressionParser(input):
|
||||
|
||||
ifElseExpression = Parser.allOf(
|
||||
expr4,
|
||||
Parser.terminalParser(TokenType.IF),
|
||||
Parser.terminal(TokenType.IF),
|
||||
expr4,
|
||||
Parser.terminalParser(TokenType.ELSE),
|
||||
Parser.terminal(TokenType.ELSE),
|
||||
expr4,
|
||||
createNode=lambda ifNode, _, condition, __, elseNode: IfElse.createNode(ifNode, condition, elseNode)
|
||||
)
|
||||
|
||||
@@ -29,9 +29,9 @@ def FactorParser(input):
|
||||
)
|
||||
|
||||
exprFactor = Parser.allOf(
|
||||
Parser.terminalParser(TokenType.OPEN_PAREN),
|
||||
Parser.terminal(TokenType.OPEN_PAREN),
|
||||
ExpressionParser,
|
||||
Parser.terminalParser(TokenType.CLOSE_PAREN),
|
||||
Parser.terminal(TokenType.CLOSE_PAREN),
|
||||
createNode=lambda open, expr, close: expr,
|
||||
name="grouping parentheses"
|
||||
)
|
||||
@@ -43,7 +43,7 @@ def FactorParser(input):
|
||||
)
|
||||
|
||||
notOperator = Parser.allOf(
|
||||
Parser.terminalParser(TokenType.NOT, Operator.withValue),
|
||||
Parser.terminal(TokenType.NOT, Operator.withValue),
|
||||
factorParser,
|
||||
createNode=NotOperator.withValues,
|
||||
name="not"
|
||||
@@ -51,7 +51,7 @@ def FactorParser(input):
|
||||
|
||||
loopFactor = Parser.allOf(
|
||||
factorParser,
|
||||
Parser.terminalParser(TokenType.DASH, createNode=Operator.withValue),
|
||||
Parser.terminal(TokenType.DASH, createNode=Operator.withValue),
|
||||
StatementParser,
|
||||
createNode=Loop.withValues,
|
||||
name="dash-loop"
|
||||
|
||||
@@ -102,7 +102,7 @@ def ArgumentParser(input):
|
||||
return Parser.allOf(
|
||||
Parser.optional(TypeParser),
|
||||
IdentifierLiteralParser,
|
||||
Parser.optional(Parser.terminalParser(TokenType.DOTS, lambda val, pos: True)),
|
||||
Parser.optional(Parser.terminal(TokenType.DOTS, lambda val, pos: True)),
|
||||
createNode=createNode,
|
||||
name="function argument"
|
||||
)(input)
|
||||
@@ -119,7 +119,7 @@ def ArgumentsDeclarationParser(input):
|
||||
|
||||
def FunctionDefinitionParser(input):
|
||||
return Parser.allOf(
|
||||
Parser.terminalParser(TokenType.FUNCTION),
|
||||
Parser.terminal(TokenType.FUNCTION),
|
||||
IdentifierLiteralParser,
|
||||
ArgumentsDeclarationParser,
|
||||
BlockParser,
|
||||
|
||||
@@ -50,7 +50,7 @@ class Assignment(BinaryOperator):
|
||||
|
||||
|
||||
def IdentifierLiteralParser(input):
|
||||
return Parser.terminalParser(TokenType.IDENTIFIER, createNode=Identifier.withValue)(input)
|
||||
return Parser.terminal(TokenType.IDENTIFIER, createNode=Identifier.withValue)(input)
|
||||
|
||||
|
||||
def IdentifierParser(input):
|
||||
@@ -64,7 +64,7 @@ def IdentifierParser(input):
|
||||
|
||||
assignmentParser = Parser.allOf(
|
||||
IdentifierLiteralParser,
|
||||
Parser.terminalParser(TokenType.ASSIGN, createNode=Operator.withValue),
|
||||
Parser.terminal(TokenType.ASSIGN, createNode=Operator.withValue),
|
||||
ExpressionParser,
|
||||
createNode=lambda identifier, assign, expr: Assignment.withValues(identifier, assign, expr)
|
||||
)
|
||||
|
||||
@@ -34,7 +34,7 @@ class Import(Node):
|
||||
|
||||
def ImportParser(input):
|
||||
return Parser.allOf(
|
||||
Parser.terminalParser(TokenType.IMPORT),
|
||||
Parser.terminal(TokenType.IMPORT),
|
||||
StringParser,
|
||||
createNode=lambda imp, source: Import.withValue(source),
|
||||
name="import"
|
||||
|
||||
@@ -45,8 +45,8 @@ def abstractIterableParser(iterableNodeType, openTokenType, closeTokenType, item
|
||||
return node
|
||||
|
||||
return Parser.allOf(
|
||||
Parser.terminalParser(openTokenType),
|
||||
Parser.terminalParser(closeTokenType),
|
||||
Parser.terminal(openTokenType),
|
||||
Parser.terminal(closeTokenType),
|
||||
createNode=createNode
|
||||
)(input)
|
||||
|
||||
@@ -58,7 +58,7 @@ def abstractIterableParser(iterableNodeType, openTokenType, closeTokenType, item
|
||||
return node
|
||||
|
||||
return Parser.allOf(
|
||||
Parser.terminalParser(openTokenType),
|
||||
Parser.terminal(openTokenType),
|
||||
itemParser,
|
||||
abstractIterableTailParser,
|
||||
createNode=createNode
|
||||
@@ -78,14 +78,14 @@ def abstractIterableParser(iterableNodeType, openTokenType, closeTokenType, item
|
||||
return node
|
||||
|
||||
return Parser.allOf(
|
||||
Parser.terminalParser(TokenType.COMMA, doAssert=True),
|
||||
Parser.terminal(TokenType.COMMA, doAssert=True),
|
||||
itemParser,
|
||||
abstractIterableTailParser,
|
||||
createNode=createNode
|
||||
)(input)
|
||||
|
||||
def closeIterable(input):
|
||||
return Parser.terminalParser(closeTokenType)(input)
|
||||
return Parser.terminal(closeTokenType)(input)
|
||||
|
||||
|
||||
return toFlatDesiredNode(iterableNodeType, abstractIterableParser)
|
||||
|
||||
@@ -36,7 +36,7 @@ def MapParser(input):
|
||||
|
||||
mapEntryParser = Parser.allOf(
|
||||
keyParser,
|
||||
Parser.terminalParser(TokenType.ARROW, createNode=Operator.withValue),
|
||||
Parser.terminal(TokenType.ARROW, createNode=Operator.withValue),
|
||||
valueParser,
|
||||
createNode=MapEntry.withValues
|
||||
)
|
||||
|
||||
@@ -41,7 +41,7 @@ class Parser:
|
||||
|
||||
# a -> A
|
||||
@staticmethod
|
||||
def terminalParser(expectedType, createNode=None, doAssert=False):
|
||||
def terminal(expectedType, createNode=None, doAssert=False):
|
||||
def provideNode(value, pos):
|
||||
if createNode is None:
|
||||
return IgnoredNode(pos)
|
||||
@@ -140,7 +140,7 @@ class Parser:
|
||||
|
||||
@staticmethod
|
||||
def oneOfTerminals(*tokenTypes, createNode=None):
|
||||
return Parser.oneOf(*[ Parser.terminalParser(expectedType, createNode=createNode) for expectedType in tokenTypes ], name='|'.join([t.value for t in tokenTypes]))
|
||||
return Parser.oneOf(*[Parser.terminal(expectedType, createNode=createNode) for expectedType in tokenTypes], name='|'.join([t.value for t in tokenTypes]))
|
||||
|
||||
# loop -> start item* end
|
||||
@staticmethod
|
||||
|
||||
Reference in New Issue
Block a user