From ea81a8087bcd7953b083a2be9db447f75e7ebf56 Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Wed, 2 Apr 2014 22:23:37 -0500 Subject: 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. --- python/step1_read_print.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'python/step1_read_print.py') 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())) -- cgit v1.2.3