aboutsummaryrefslogtreecommitdiff
path: root/python/step1_read_print.py
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-04-02 22:23:37 -0500
committerJoel Martin <github@martintribe.org>2014-04-02 22:23:37 -0500
commitea81a8087bcd7953b083a2be9db447f75e7ebf56 (patch)
tree6cf47a2dbd55d42efc4a901eaabdec952f40ce89 /python/step1_read_print.py
parent1617910ad342a55762f3ddabb975849d843cff85 (diff)
downloadmal-ea81a8087bcd7953b083a2be9db447f75e7ebf56.tar.gz
mal-ea81a8087bcd7953b083a2be9db447f75e7ebf56.zip
All: split types into types, env, printer, core.
- types: low-level mapping to the implementation language. - core: functions on types that are exposed directly to mal. - printer: implementation called by pr-str, str, prn, println. - env: the environment implementation - Also, unindent all TCO while loops so that the diff of step4 and step5 are minimized.
Diffstat (limited to 'python/step1_read_print.py')
-rw-r--r--python/step1_read_print.py16
1 files changed, 7 insertions, 9 deletions
diff --git a/python/step1_read_print.py b/python/step1_read_print.py
index 165dfa3..0315cf0 100644
--- a/python/step1_read_print.py
+++ b/python/step1_read_print.py
@@ -1,21 +1,19 @@
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" % ast)
+ return ast
def PRINT(exp):
- return pr_str(exp)
+ return printer._pr_str(exp)
# repl
def REP(str):
@@ -27,6 +25,6 @@ while True:
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()))