From 0ad764d450d8c477c375c2608eaa479c2106253a Mon Sep 17 00:00:00 2001 From: mryouse Date: Fri, 13 May 2022 03:02:47 +0000 Subject: initial commit of file reader --- neb.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 neb.py (limited to 'neb.py') diff --git a/neb.py b/neb.py new file mode 100644 index 0000000..5e46049 --- /dev/null +++ b/neb.py @@ -0,0 +1,59 @@ +from lexer import lex +from parser import parse +from runner import evaluate +from std import _get_debug +import sys + + +def main(): + + if len(sys.argv) != 2: + print("usage: neb ") + sys.exit(1) + + with open(sys.argv[1], "r") as fil: + data = fil.read() + + try: + lexed = lex(data, []) + ''' + if _get_debug(): + acc = " ".join([f"{l}" for l in lexed]) + print(f" - LEX: {acc}") + ''' + parsed = parse(lexed, []) + ''' + if _get_debug(): + acc = " ".join([f"{p}" for p in parsed]) + print(f" - PARSE: {acc}") + ''' + ev = evaluate(parsed, []) + except Exception as e: + print(f"panic! {e}") + ''' + print("### neb :)(:") + print("version: < 0") + idx = 1 + while True: + inp = input(f"#{idx}> ") + if len(inp.strip()) == 0: + continue + try: + lexed = lex(inp, []) + if _get_debug(): + acc = " ".join([f"{l}" for l in lexed]) + print(f" - LEX: {acc}") + parsed = parse(lexed, []) + if _get_debug(): + acc = " ".join([f"{p}" for p in parsed]) + print(f" - PARSE: {acc}") + ev = evaluate(parsed, []) + print(f"=> {ev}") + idx += 1 + except Exception as e: + print(f"panic! {e}") + ''' + + +if __name__ == "__main__": + main() -- cgit v1.2.3