aboutsummaryrefslogtreecommitdiff
path: root/js/reader.js
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 /js/reader.js
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 'js/reader.js')
-rw-r--r--js/reader.js18
1 files changed, 9 insertions, 9 deletions
diff --git a/js/reader.js b/js/reader.js
index da51088..f19010d 100644
--- a/js/reader.js
+++ b/js/reader.js
@@ -40,7 +40,7 @@ function read_atom (reader) {
} else if (token === "false") {
return false;
} else {
- return types.symbol(token); // symbol
+ return types._symbol(token); // symbol
}
}
@@ -66,13 +66,13 @@ function read_list(reader, start, end) {
// read vector of tokens
function read_vector(reader) {
var lst = read_list(reader, '[', ']');
- return types.vector.apply(types.vector, lst);
+ return types._vector.apply(null, lst);
}
// read hash-map key/value pairs
function read_hash_map(reader) {
var lst = read_list(reader, '{', '}');
- return types.hash_map.apply(types.hash_map, lst);
+ return types._hash_map.apply(null, lst);
}
function read_form(reader) {
@@ -81,18 +81,18 @@ function read_form(reader) {
// reader macros/transforms
case ';': return null; // Ignore comments
case '\'': reader.next();
- return [types.symbol('quote'), read_form(reader)];
+ return [types._symbol('quote'), read_form(reader)];
case '`': reader.next();
- return [types.symbol('quasiquote'), read_form(reader)];
+ return [types._symbol('quasiquote'), read_form(reader)];
case '~': reader.next();
- return [types.symbol('unquote'), read_form(reader)];
+ return [types._symbol('unquote'), read_form(reader)];
case '~@': reader.next();
- return [types.symbol('splice-unquote'), read_form(reader)];
+ return [types._symbol('splice-unquote'), read_form(reader)];
case '^': reader.next();
var meta = read_form(reader);
- return [types.symbol('with-meta'), read_form(reader), meta];
+ return [types._symbol('with-meta'), read_form(reader), meta];
case '@': reader.next();
- return [types.symbol('deref'), read_form(reader)];
+ return [types._symbol('deref'), read_form(reader)];
// list
case ')': throw new Error("unexpected ')'");