diff --git a/main.py b/main.py index 1ef46a5..7dfe8ba 100755 --- a/main.py +++ b/main.py @@ -33,13 +33,12 @@ }) def resolve_value(env, value): - (type, value) = value - if type == "reference": - return env[value] - elif type == "text": - return text_create(value) + if value.__class__ == parse.Reference: + return env[value.value] + elif value.__class__ == parse.Text: + return text_create(value.value) else: - print("Unimplemented value type: %s" % (type)) + print("Unimplemented value: %s" % (value)) def run_statement(env, ast): subject = resolve_value(env, ast[1]) diff --git a/parse.py b/parse.py index 262ba99..e8991eb 100644 --- a/parse.py +++ b/parse.py @@ -65,6 +65,20 @@ tokens.append(Token("EOF", None)) return tokens +class Reference: + def __init__(self, value): + self.value = value + + def __str__(self): + return "Reference('%s')" % (self.value) + +class Text: + def __init__(self, value): + self.value = value + + def __str__(self): + return "Text('%s')" % (self.value) + class Parser: def __init__(self, tokens): self.tokens = tokens @@ -93,9 +107,9 @@ def parse_value(self, type, value): if type == "symbol": - return ('reference', value) + return Reference(value) elif type == "text": - return ('text', value) + return Text(value) else: log.log(log.PARSER, log.NORMAL, "Unexpected type %s" % (type)) return None