aboutsummaryrefslogtreecommitdiff
path: root/repl.py
blob: af84c82b7624503bc00197063195554ee03ffa4d (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
from lexer import lex
from parser import parse
from runner import evaluate

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

if __name__ == "__main__":
    main()