aboutsummaryrefslogtreecommitdiff
path: root/repl.py
blob: cb0657fa1bd5335c2c11c3e65869dd0398214afa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from lexer import lex
from parser import parse
from runner import evaluate
from std import _get_debug


def main():
    print("### neb :)(:")
    print("version: < 0")
    idx = 1
    while True:
        inp = input(f"#{idx}> ")
        if len(inp.strip()) == 0:
            continue
        try:
            lexed = lex(inp, [])
            if _get_debug():
                print(f" - LEX:  {lexed}")
            parsed = parse(lexed, [])
            if _get_debug():
                acc = " ".join([f"{p}" for p in parsed])
                print(f" - PARSE: {acc}")
            ev = evaluate(parsed, [])
            print(f"=> {ev}")
            idx += 1
        except Exception as e:
            print(f"panic! {e}")
        

if __name__ == "__main__":
    main()