diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-12-22 21:29:13 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-12-22 21:29:13 -0800 |
commit | 7eef2749ca3282585e65415712ebb810f2462a01 (patch) | |
tree | 80b2d4cbd8b13b256fee53895cf024663587bec9 /time.c | |
parent | 85721a1b46f0718393b6344de7863a5a90214446 (diff) | |
download | txr-7eef2749ca3282585e65415712ebb810f2462a01.tar.gz txr-7eef2749ca3282585e65415712ebb810f2462a01.tar.bz2 txr-7eef2749ca3282585e65415712ebb810f2462a01.zip |
new feature: defstruct clause macros.
* lisplib.c (struct_set_entries): Trigger autoload on new
symbols define-struct-clause and *struct-clause-expander*.
* stdlib/struct.tl (*struct-clause-expander*): New variable.
(defstruct): expand-slot local function now returns list of
expanded slots, not a single slot; every case in the tree-case
is converted to return a list. The syntax of a slot clause is
first expanded through *struct-clause-expander hash; if that
works then the resulting list is further scanned for
expansions.
(define-struct-clause): New macro.
(:delegate): New struct clause defined with
define-struct-clause. Provides single-slot delegation.
* tests/012/oop.tl: Tests for :delegate.
* txr.1: Documented define-struct-clause and :delegate.
* stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'time.c')
0 files changed, 0 insertions, 0 deletions