From 3169070063b2cb877200117ebb384269d73bcb93 Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Mon, 24 Mar 2014 16:32:24 -0500 Subject: Current state of mal for Clojure West lighting talk. --- python/step1_read_print.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 python/step1_read_print.py (limited to 'python/step1_read_print.py') diff --git a/python/step1_read_print.py b/python/step1_read_print.py new file mode 100644 index 0000000..165dfa3 --- /dev/null +++ b/python/step1_read_print.py @@ -0,0 +1,32 @@ +import sys, traceback +import mal_readline +from mal_types import (pr_str, sequential_Q, symbol_Q, coll_Q, list_Q, + vector_Q, hash_map_Q, new_symbol, new_function, + new_list, new_vector, new_hash_map, Env, types_ns) +from reader import (read_str, Blank) + +# read +def READ(str): + return read_str(str) + +# eval +def EVAL(ast, env): + #print("EVAL %s" % ast) + return ast + +def PRINT(exp): + return pr_str(exp) + +# repl +def REP(str): + return PRINT(EVAL(READ(str), {})) + +while True: + try: + line = mal_readline.readline("user> ") + if line == None: break + if line == "": continue + print(REP(line)) + except Blank: continue + except Exception as e: + print "".join(traceback.format_exception(*sys.exc_info())) -- cgit v1.2.3