summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-12-29 23:28:45 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-12-29 23:28:45 -0800
commit0b81b8b4c39b6c60cbbe8de5a6a785beb43c3dbb (patch)
treefcdcd0614874951ad5d9521f3cc75febd765302a /eval.c
parent3e09c38f75b087e583abb30762a9a251b8f424f9 (diff)
downloadtxr-0b81b8b4c39b6c60cbbe8de5a6a785beb43c3dbb.tar.gz
txr-0b81b8b4c39b6c60cbbe8de5a6a785beb43c3dbb.tar.bz2
txr-0b81b8b4c39b6c60cbbe8de5a6a785beb43c3dbb.zip
New functionality: mod and modlast directives in repeat and rep.
* eval.c (eval_init): Use new symbol variable mod_s instead of calling intern. * match.c (mod_s, modlast_s): Symbol variables defined. (do_output_line): mod and modlast directives implemented under rep. (do_output): likewise under repeat. (syms_init): Initialize new symbol variables. * match.h (mod_s, modlast_s): Declared. * parser.l (MOD, MODLAST): Parse new token types. * parser.y (MOD, MODLAST): New tokens. (repeat_parts_opt, rep_parts_opt): New syntax. (repeat_rep_helper): Handle mod and modlast syntax. * txr.1: Updated. * txr.vim: Updated.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index f3025be0..e5672f24 100644
--- a/eval.c
+++ b/eval.c
@@ -1264,7 +1264,7 @@ void eval_init(void)
reg_fun(intern(lit("*"), user_package), func_n0v(mulv));
reg_fun(intern(lit("abs"), user_package), func_n1(abso));
reg_fun(intern(lit("trunc"), user_package), func_n2(trunc));
- reg_fun(intern(lit("mod"), user_package), func_n2(mod));
+ reg_fun(mod_s, func_n2(mod));
reg_fun(intern(lit("expt"), user_package), func_n0v(exptv));
reg_fun(intern(lit("exptmod"), user_package), func_n3(exptmod));
reg_fun(intern(lit("sqrt"), user_package), func_n1(isqrt));