from lexer import lex from parser import parse from interpreter import interpret prev_lexed = None prev_parsed = None def main(): print("### neb :)(:") print("version: < 0") idx = 1 prev_idx = 0 while True: inp = input(f"#{idx}> ") if len(inp.strip()) == 0: continue try: if inp.strip() == "(debug)": if prev_lexed is not None: acc = " ".join([f"{l}" for l in prev_lexed]) print(f" - LEX: {acc}") if prev_parsed is not None: acc = " ".join([f"{p}" for p in prev_parsed]) print(f" - PARSE: {acc}") continue lexed = lex(inp) prev_lexed = lexed parsed = parse(lexed) prev_parsed = parsed inter = interpret(parsed) print(f"=> {inter}") prev_idx = idx idx += 1 except Exception as e: print(f"panic! {e}") if __name__ == "__main__": main()