diff options
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/actinide-repl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/bin/actinide-repl b/bin/actinide-repl new file mode 100755 index 0000000..de19617 --- /dev/null +++ b/bin/actinide-repl @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +import sys + +import actinide as a +import actinide.ports as ap +import actinide.types as at + +def repl(session, port): + while True: + try: + sys.stdout.write("> ") + sys.stdout.flush() + form = session.read(port) + if form is None: + print() + return 0 + results = session.eval(form) + print(*(at.display(result) for result in results)) + except Exception as e: + print(e) + except KeyboardInterrupt: + print() + print("(Interrupted)") + +def main(): + port = ap.Port(sys.stdin) + session = a.Session() + + return repl(session, port) + +if __name__ == '__main__': + sys.exit(main()) |
