aboutsummaryrefslogtreecommitdiff
path: root/repl.py
diff options
context:
space:
mode:
Diffstat (limited to 'repl.py')
-rw-r--r--repl.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/repl.py b/repl.py
new file mode 100644
index 0000000..af84c82
--- /dev/null
+++ b/repl.py
@@ -0,0 +1,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()