diff options
| -rw-r--r-- | runner.py | 3 | ||||
| -rw-r--r-- | tokens.py | 11 | 
2 files changed, 12 insertions, 2 deletions
| @@ -12,8 +12,7 @@ def evaluate(items, pop):      if nxt is None:          return pop      elif isinstance(nxt, NebLiteral): -        pop = nxt.value -        return evaluate(items[1:], pop) +        return evaluate(items[1:], nxt)      elif isinstance(nxt, NebSymbol):          if not nxt.name in STD:              raise Exception(f"no such symbol: '{nxt.name}'") @@ -11,6 +11,9 @@ class NebType(Enum):      STRING = auto()      BOOL = auto() +    def __str__(self): +        return ":" + self.name.lower() +  @dataclass  class NebToken:      pass @@ -20,6 +23,14 @@ class NebLiteral(NebToken):      type_: NebType      value: T +    def __str__(self): +        fixed = str(self.value) +        if self.type_ == NebType.BOOL: +            fixed = f"#{str(self.value).lower()}" +        elif self.type_ == NebType.STRING: +            fixed = f'"{self.value}"' +        return f"{fixed} <{self.type_}>" +  class NebSeparator(NebToken):      pass | 
