diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-01-20 17:57:11 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-01-20 17:57:11 -0800 |
commit | 519b05f5281572ef9f6f686844af25159ca5896e (patch) | |
tree | 1ed3f04d2ed983adfccbc2998d104a0f75041281 /tests | |
parent | 2a24f429dffbc4c928d46e95ffdf3b8fe01a7eab (diff) | |
download | txr-519b05f5281572ef9f6f686844af25159ca5896e.tar.gz txr-519b05f5281572ef9f6f686844af25159ca5896e.tar.bz2 txr-519b05f5281572ef9f6f686844af25159ca5896e.zip |
New macros for enumerated constants.
* autoload.c (enum_set_entries, enum_instantiate): New static
functions.
(autoload_init): Register autoload of stdlib/enum module
via new functions.
* stdlib/enum.tl: New file.
* tests/016/enum.tl: Likewise.
* txr.1: Documented.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/016/enum.tl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/016/enum.tl b/tests/016/enum.tl new file mode 100644 index 00000000..b8817f4b --- /dev/null +++ b/tests/016/enum.tl @@ -0,0 +1,23 @@ +(load "../common.tl") + +(mtest + (macroexpand '(defenum)) (progn) + (macroexpand '(defenum nil)) :error + (macroexpand '(defenum t)) :error + (macroexpand '(defenum :key)) :error + (macroexpand '(defenum (a "x"))) :error + (macroexpand '(defenum a (b "x"))) :error + (macroexpand '(defenum a)) (progn (defsymacro a 0)) + (macroexpand '(defenum a b)) (progn (defsymacro a 0) (defsymacro b 1)) + (macroexpand '(defenum a (b 2))) (progn (defsymacro a 0) (defsymacro b 2)) + (macroexpand '(defenum (a 5) b)) (progn (defsymacro a 5) (defsymacro b 6)) + (macroexpand '(defenum (a 5) (b 7))) (progn (defsymacro a 5) (defsymacro b 7)) + (macroexpand '(defenum a (b #\b))) (progn (defsymacro a 0) (defsymacro b #\b)) + (macroexpand '(defenum (a #\a) b)) (progn (defsymacro a #\a) (defsymacro b #\b)) + (macroexpand '(defenum (a #\a) (b #\x))) (progn (defsymacro a #\a) (defsymacro b #\x)) + (macroexpand '(defenum a b c)) (progn (defsymacro a 0) (defsymacro b 1) (defsymacro c 2))) + +(mtest + (enumlet (a b c) (list a b c)) (0 1 2) + (enumlet ((a 10) b c) (list a b c)) (10 11 12) + (enumlet ((a #\a) b c) (list a b c)) (#\a #\b #\c)) |