Improve integer parser

This commit is contained in:
Bartłomiej Pluta
2019-07-12 14:30:49 +02:00
parent ac8b46b077
commit 1a09a73c91
3 changed files with 14 additions and 11 deletions

View File

@@ -44,15 +44,7 @@ class TypeLiteral(Atom):
def IntegerParser(input):
return Parser.oneOf(
Parser.terminal(TokenType.INTEGER, lambda val, pos: IntegerLiteral.withValue(int(val), pos)),
Parser.allOf(
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"
)
)(input)
return Parser.terminal(TokenType.INTEGER, createNode=IntegerLiteral.withValue)(input)
def StringParser(input):