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. --- c/reader.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'c/reader.c') diff --git a/c/reader.c b/c/reader.c index 044bb84..dbb7335 100644 --- a/c/reader.c +++ b/c/reader.c @@ -181,7 +181,7 @@ MalVal *read_list(Reader *reader, MalType type, char start, char end) { MalVal *read_hash_map(Reader *reader) { MalVal *lst = read_list(reader, MAL_LIST, '{', '}'); - MalVal *hm = hash_map(lst); + MalVal *hm = _hash_map(lst); malval_free(lst); return hm; } @@ -207,34 +207,34 @@ MalVal *read_form(Reader *reader) { break; case '\'': reader_next(reader); - form = _list(2, malval_new_symbol("quote"), - read_form(reader)); + form = _listX(2, malval_new_symbol("quote"), + read_form(reader)); break; case '`': reader_next(reader); - form = _list(2, malval_new_symbol("quasiquote"), - read_form(reader)); + form = _listX(2, malval_new_symbol("quasiquote"), + read_form(reader)); break; case '~': reader_next(reader); if (token[1] == '@') { - form = _list(2, malval_new_symbol("splice-unquote"), - read_form(reader)); + form = _listX(2, malval_new_symbol("splice-unquote"), + read_form(reader)); } else { - form = _list(2, malval_new_symbol("unquote"), - read_form(reader)); + form = _listX(2, malval_new_symbol("unquote"), + read_form(reader)); }; break; case '^': reader_next(reader); MalVal *meta = read_form(reader); - form = _list(3, malval_new_symbol("with-meta"), - read_form(reader), meta); + form = _listX(3, malval_new_symbol("with-meta"), + read_form(reader), meta); break; case '@': reader_next(reader); - form = _list(2, malval_new_symbol("deref"), - read_form(reader)); + form = _listX(2, malval_new_symbol("deref"), + read_form(reader)); break; -- cgit v1.2.3