From 52963961077d43b4cc6e88ad120f2a79223d743b Mon Sep 17 00:00:00 2001 From: Raphael Forment Date: Sat, 3 Dec 2022 01:58:45 +0100 Subject: [PATCH] dumb repl --- main.py | 3 +-- repl.py | 16 ++++++++++++++++ ziffers/__pycache__/ebnf.cpython-310.pyc | Bin 846 -> 846 bytes ziffers/ebnf.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 repl.py diff --git a/main.py b/main.py index 8f103e1..5f305fa 100644 --- a/main.py +++ b/main.py @@ -34,7 +34,6 @@ if __name__ == "__main__": } for expression in expressions: try: - print(f"[green]== Parsing: [yellow]{expression}[/yellow] ==[/green]") parse_expression(expression) except Exception as e: - print(f"[red]Failed parsing {expression}[/red]: {e}") + print(f"[red]Failed on {expression}[/red]: {str(e)[0:40]}...") diff --git a/repl.py b/repl.py new file mode 100644 index 0000000..92820da --- /dev/null +++ b/repl.py @@ -0,0 +1,16 @@ +from ziffers import * +from rich import print + +EXIT_CONDITION = ('exit', 'quit', '') + +if __name__ == "__main__": + print(f"[purple]== ZIFFERS REPL ==[/purple]") + while True: + expr = input('> ') + if expr not in EXIT_CONDITION: + try: + parse_expression(expr) + except Exception as e: + print(f"[red]Failed:[/red] {e}") + else: + exit() diff --git a/ziffers/__pycache__/ebnf.cpython-310.pyc b/ziffers/__pycache__/ebnf.cpython-310.pyc index 83138c08cc72e54205f43574b8d0d1cbaec56d10..4de9599d8ec4d921d43952bdf002ff767931397b 100644 GIT binary patch delta 24 ecmX@dc8-lJpO=@50SNNvP2}=s)ZQ5Og9!jij0R=^ delta 24 ecmX@dc8-lJpO=@50SKaIP2}=s)Y=&Kg9!jhcm_-W diff --git a/ziffers/ebnf.py b/ziffers/ebnf.py index 486b026..972154f 100644 --- a/ziffers/ebnf.py +++ b/ziffers/ebnf.py @@ -1,5 +1,5 @@ ebnf = r""" - expr = (number ws?)* + expr = (number ws?)+ number = factor additive* additive = ("+"/"-") factor factor = primary multiplicative*