18 lines
455 B
Python
18 lines
455 B
Python
from smnp.ast.node.integer import IntegerLiteralNode
|
|
from smnp.ast.parsers.integer import parseInteger
|
|
from smnp.token.type import TokenType
|
|
|
|
|
|
# minus -> '-' int
|
|
def parseMinus(input, parent):
|
|
if input.isCurrent(TokenType.MINUS):
|
|
token = input.current()
|
|
input.ahead()
|
|
|
|
if input.hasCurrent():
|
|
expr = parseInteger(input, parent)
|
|
|
|
return IntegerLiteralNode(-expr.value, parent, token.pos)
|
|
|
|
return None
|