plpgsql: IO using stream table. Add keywords.
[jackhill/mal.git] / python / step1_read_print.py
index 165dfa3..c167e38 100644 (file)
@@ -1,32 +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)
+import mal_types as types
+import reader, printer
 
 # read
 def READ(str):
-    return read_str(str)
+    return reader.read_str(str)
 
 # eval
 def EVAL(ast, env):
-    #print("EVAL %s" % ast)
-    return ast
+        #print("EVAL %s" % printer._pr_str(ast))
+        return ast
 
+# print
 def PRINT(exp):
-    return pr_str(exp)
+    return printer._pr_str(exp)
 
 # repl
 def REP(str):
     return PRINT(EVAL(READ(str), {}))
 
+# repl loop
 while True:
     try:
         line = mal_readline.readline("user> ")
         if line == None: break
         if line == "": continue
         print(REP(line))
-    except Blank: continue
+    except reader.Blank: continue
     except Exception as e:
-        print "".join(traceback.format_exception(*sys.exc_info()))
+        print("".join(traceback.format_exception(*sys.exc_info())))