diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-03-06 21:30:00 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-03-06 21:30:00 -0800 |
commit | 4687dad975105144fd04827ca525a6272102b9d0 (patch) | |
tree | 262ac1311360d66b2a314da7b3b77ec1545f6e5e /share/txr/stdlib/param.tl | |
parent | 9997fdaffbd9b5061fb7292c8720bce89e64072f (diff) | |
download | txr-4687dad975105144fd04827ca525a6272102b9d0.tar.gz txr-4687dad975105144fd04827ca525a6272102b9d0.tar.bz2 txr-4687dad975105144fd04827ca525a6272102b9d0.zip |
New macro: defset.
* lisplib.c (defset_instantiate, defset_set_entries): New
static functions.
(lisplib_init): Register auto-load of defset.tl, keyed on
defset symbol.
* share/txr/stdlib/defset.tl: New file.
* share/txr/stdlib/paramt.tl (param-parser-base opt-syms):
New method.
* txr.1: Documented.
Diffstat (limited to 'share/txr/stdlib/param.tl')
-rw-r--r-- | share/txr/stdlib/param.tl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/share/txr/stdlib/param.tl b/share/txr/stdlib/param.tl index 2128a9d4..2fbf79be 100644 --- a/share/txr/stdlib/param.tl +++ b/share/txr/stdlib/param.tl @@ -54,11 +54,17 @@ me.key key me.nreq (len rp) me.nopt (len opt) - me.nfix (+ me.nreq me.nopt)))))) + me.nfix (+ me.nreq me.nopt))))) + + (:method opt-syms (me) + (build + (each ((o me.opt)) + (caseql (len o) + ((1 2) (add (car o))) + (3 (add (car o) (caddr o)))))))) (defstruct (fun-param-parser syntax form) param-parser-base (mac-param-p nil)) (defstruct (mac-param-parser syntax form) param-parser-base (mac-param-p t))) - |