Improve parser

This commit is contained in:
Bartłomiej Pluta
2019-06-30 19:58:37 +02:00
parent 607e9f9214
commit 65353a80f2
5 changed files with 44 additions and 53 deletions

View File

@@ -104,8 +104,12 @@ def evaluateAsterisk(asterisk, environment):
del environment.scopes[-1]["_"]
del environment.scopes[-1]["__"]
def evaluateColon(colon, environment):
return Note.range(colon.a.value, colon.b.value)
def evaluateColon(colon, environment):
if isinstance(colon.a, NoteLiteralNode) and isinstance(colon.b, NoteLiteralNode):
return Note.range(colon.a.value, colon.b.value)
elif isinstance(colon.a, IntegerLiteralNode) and isinstance(colon.b, IntegerLiteralNode):
return list(range(colon.a.value, colon.b.value+1))
raise RuntimeException("Invalid colon arguments")
def evaluate(input, environment):
if isinstance(input, Program):