diff options
| -rw-r--r-- | repl.py | 22 | 
1 files changed, 14 insertions, 8 deletions
| @@ -2,28 +2,34 @@ from lexer import lex  from parser import parse  from interpreter import interpret -def _get_debug(): -    return True +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) -            if _get_debug(): -                acc = " ".join([f"{l}" for l in lexed]) -                print(f" - LEX:  {acc}") +            prev_lexed = lexed              parsed = parse(lexed) -            if _get_debug(): -                acc = " ".join([f"{p}" for p in parsed]) -                print(f" - PARSE:  {acc}") +            prev_parsed = parsed              inter = interpret(parsed)              print(f"=> {inter}") +            prev_idx = idx              idx += 1          except Exception as e:              print(f"panic! {e}") | 
