diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-12-29 23:28:45 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-12-29 23:28:45 -0800 |
commit | 0b81b8b4c39b6c60cbbe8de5a6a785beb43c3dbb (patch) | |
tree | fcdcd0614874951ad5d9521f3cc75febd765302a /eval.c | |
parent | 3e09c38f75b087e583abb30762a9a251b8f424f9 (diff) | |
download | txr-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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)); |