Little code refactor
This commit is contained in:
@@ -55,10 +55,10 @@ def LiteralParser(input):
|
||||
|
||||
return Parser.oneOf(
|
||||
integerParser,
|
||||
Parser.terminalParser(TokenType.STRING, lambda val, pos: StringLiteral.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.NOTE, lambda val, pos: NoteLiteral.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.BOOL, lambda val, pos: BoolLiteral.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.TYPE, lambda val, pos: TypeLiteral.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.STRING, createNode=StringLiteral.withValue),
|
||||
Parser.terminalParser(TokenType.NOTE, createNode=NoteLiteral.withValue),
|
||||
Parser.terminalParser(TokenType.BOOL, createNode=BoolLiteral.withValue),
|
||||
Parser.terminalParser(TokenType.TYPE, createNode=TypeLiteral.withValue),
|
||||
)(input)
|
||||
|
||||
|
||||
@@ -68,10 +68,6 @@ def AtomParser(input):
|
||||
|
||||
parser = Parser.oneOf(
|
||||
LiteralParser,
|
||||
Parser.terminalParser(TokenType.STRING, lambda val, pos: StringLiteral.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.NOTE, lambda val, pos: NoteLiteral.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.BOOL, lambda val, pos: BoolLiteral.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.TYPE, lambda val, pos: TypeLiteral.withValue(val, pos)),
|
||||
IdentifierParser,
|
||||
)
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@ def FactorParser(input):
|
||||
|
||||
loopFactor = Parser.allOf(
|
||||
powerFactor,
|
||||
Parser.terminalParser(TokenType.DASH, lambda val, pos: Operator.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.DASH, createNode=Operator.withValue),
|
||||
MaxPrecedenceExpressionParser, #TODO statement here
|
||||
createNode=lambda chain, dash, stmt: Loop.withValues(chain, dash, stmt)
|
||||
createNode=Loop.withValues
|
||||
)
|
||||
|
||||
return Parser.oneOf(
|
||||
|
||||
@@ -50,7 +50,7 @@ class Assignment(BinaryOperator):
|
||||
|
||||
|
||||
def IdentifierParser(input):
|
||||
identifierLiteralParser = Parser.terminalParser(TokenType.IDENTIFIER, createNode=lambda val, pos: Identifier.withValue(val, pos))
|
||||
identifierLiteralParser = Parser.terminalParser(TokenType.IDENTIFIER, createNode=Identifier.withValue)
|
||||
|
||||
functionCallParser = Parser.allOf(
|
||||
identifierLiteralParser,
|
||||
@@ -60,7 +60,7 @@ def IdentifierParser(input):
|
||||
|
||||
assignmentParser = Parser.allOf(
|
||||
identifierLiteralParser,
|
||||
Parser.terminalParser(TokenType.ASSIGN, lambda val, pos: Operator.withValue(val, pos)),
|
||||
Parser.terminalParser(TokenType.ASSIGN, createNode=Operator.withValue),
|
||||
MaxPrecedenceExpressionParser,
|
||||
createNode=lambda identifier, assign, expr: Assignment.withValues(identifier, assign, expr)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user