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())))