diff options
Diffstat (limited to 'runner.py')
| -rw-r--r-- | runner.py | 25 | 
1 files changed, 0 insertions, 25 deletions
| diff --git a/runner.py b/runner.py deleted file mode 100644 index 6f2f8ce..0000000 --- a/runner.py +++ /dev/null @@ -1,25 +0,0 @@ -from tokens import * -from std import STD, evaluate_expression - - -def peek(inp): -    if len(inp) == 0: -        return None -    return inp[0] - -def evaluate(items, pop): -    nxt = peek(items) -    if nxt is None: -        return pop -    elif isinstance(nxt, NebLiteral) or isinstance(nxt, NebList): -        return evaluate(items[1:], nxt) -    elif isinstance(nxt, NebSymbol): -        if not nxt.name in STD: -            raise Exception(f"no such symbol: '{nxt.name}'") -        this_func = STD[nxt.name] -        return evaluate(items[1:], this_func[0].impl) # TODO show all -    elif isinstance(nxt, NebExpression): -        return evaluate(items[1:], evaluate_expression(nxt)) -    else: -        raise Exception("expected a literal or an expression") - | 
