From 442c9efa4b176ff2c4c89a43beac3ea3fad247d4 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 3 Feb 2012 00:28:01 -0800 Subject: * eval.c (rest_s, op_s): New variables. (do_eval_args): Allow calls specified by improper lists like (x y . z) where the z expression must evaluate to a list that turns into addition arguments to be applied. (transform_op, expand_op): New static functions. (expand): Call expand_op. (eval_init): Initialize rest_s and op_s. Use rest_s to register rest function. * lib.c (gensym): New function based on gensymv. (gensymv): Now calls gensym. * lib.h (gensym): Declared. * parser.l: Parse @ followed by digits as a new kind of token, METANUM. * parser.y (METANUM): New token. (meta_expr, exprs): Missing rlcp's added. (expr): METANUM variant introduced. (yybadtoken): Handle METANUM. * txr.1: Documented one-symbol argument list of lambda. Documented op. Closed some unbalanced parentheses. * txr.vim: Highlight op. --- lib.h | 1 + 1 file changed, 1 insertion(+) (limited to 'lib.h') diff --git a/lib.h b/lib.h index 3b03d7d2..3b5d4630 100644 --- a/lib.h +++ b/lib.h @@ -453,6 +453,7 @@ val span_str(val str, val set); val compl_span_str(val str, val set); val break_str(val str, val set); val make_sym(val name); +val gensym(val prefix); val gensymv(val args); val make_package(val name); val find_package(val name); -- cgit v1.2.3