summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-12-07 10:59:19 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-12-07 10:59:19 -0800
commit79781ded91b29fbdc406d460e466c5ffb06a1454 (patch)
tree2f44c3b8091a1fe8d397af2e577448ceb89031e7 /eval.c
parentbf486523ab87ce43d5cc880fd0e2dd5f48cd819b (diff)
downloadtxr-79781ded91b29fbdc406d460e466c5ffb06a1454.tar.gz
txr-79781ded91b29fbdc406d460e466c5ffb06a1454.tar.bz2
txr-79781ded91b29fbdc406d460e466c5ffb06a1454.zip
* eval.c (lookup_var, lookup_fun): Reversing assoc arguments.
(eval_init): New intrinsics. * hash.c (struct_hash): assoc_fun parameters reversed. (gethash, gethash_f, gethash_n): Likewise. * lib.c (assoc, assq): Reversing parameters. (find_package, acons_new, acons_new_l, aconsq_new): Reversing arguments to assoc adn assq. * lib.h (assoc, assq): Declarations updated. * match.c (dest_set, dest_bind, h_var, h_coll, h_parallel, h_fun, subst_vars, do_txeval, v_next, v_parallel, v_gather, v_collect, v_flatten, v_cat, v_output, v_filter, f_fun, match_funcall): Reversing arguments to assoc. * unwind.c (uw_get_func, uw_exception_subtype_p, uw_register_subtype): Reversing arguments to assoc. * txr.1: Blank sections created for new functions.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index 2f03b91f..7ecb4ec7 100644
--- a/eval.c
+++ b/eval.c
@@ -109,7 +109,7 @@ val lookup_var(val env, val sym)
type_check(env, ENV);
{
- val binding = assoc(env->e.vbindings, sym);
+ val binding = assoc(sym, env->e.vbindings);
if (binding)
return binding;
return lookup_var(env->e.up_env, sym);
@@ -125,7 +125,7 @@ val lookup_fun(val env, val sym)
type_check(env, ENV);
{
- val binding = assoc(env->e.fbindings, sym);
+ val binding = assoc(sym, env->e.fbindings);
if (binding)
return binding;
return lookup_fun(env->e.up_env, sym);
@@ -1215,6 +1215,21 @@ void eval_init(void)
reg_fun(intern(lit("length-vec"), user_package), func_n1(length_vec));
reg_fun(intern(lit("size-vec"), user_package), func_n1(size_vec));
reg_fun(intern(lit("vector-list"), user_package), func_n1(vector_list));
+
+ reg_fun(intern(lit("assoc"), user_package), func_n2(assoc));
+ reg_fun(intern(lit("assq"), user_package), func_n2(assq));
+ reg_fun(intern(lit("acons"), user_package), func_n3(acons));
+ reg_fun(intern(lit("acons-new"), user_package), func_n3(acons_new));
+ reg_fun(intern(lit("aconsq-new"), user_package), func_n3(aconsq_new));
+ reg_fun(intern(lit("alist-remove"), user_package), func_n1v(alist_remove));
+ reg_fun(intern(lit("alist-nremove"), user_package), func_n1v(alist_nremove));
+ reg_fun(intern(lit("copy-cons"), user_package), func_n1(copy_cons));
+ reg_fun(intern(lit("copy-alist"), user_package), func_n1(copy_alist));
+ reg_fun(intern(lit("merge"), user_package), func_n4(merge));
+ reg_fun(intern(lit("sort"), user_package), func_n3(sort));
+ reg_fun(intern(lit("find"), user_package), func_n4(find));
+ reg_fun(intern(lit("set-diff"), user_package), func_n4(set_diff));
+
reg_fun(intern(lit("length"), user_package), func_n1(length));
eval_error_s = intern(lit("eval-error"), user_package);