Little code refactor

This commit is contained in:
Bartłomiej Pluta
2019-07-11 00:12:00 +02:00
parent 3bbacad83b
commit 5a25ec6ffe
3 changed files with 8 additions and 12 deletions

View File

@@ -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,
)

View File

@@ -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(

View File

@@ -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)
)