summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-08-18 06:51:44 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-08-18 06:51:44 -0700
commitca59be500904f84f5b138257cc152e1ec6764819 (patch)
tree9736456339f67f3ecede8394dc336d444168fb77 /stdlib
parent4911b99c3a255155931248669da0546ca7c005d3 (diff)
downloadtxr-ca59be500904f84f5b138257cc152e1ec6764819.tar.gz
txr-ca59be500904f84f5b138257cc152e1ec6764819.tar.bz2
txr-ca59be500904f84f5b138257cc152e1ec6764819.zip
New ecase macros.
Even prior to discovering the recent defect in deffi, which was caused by a missing case in caseql, combined with poor testing, I was already thinking about adding ecase macros. The introduction of must-match and must-match-case also shows my motivation. That deffi bug convinced me to take action and implement these. * eval.c (case_error_s) New symbol variable. (me_ecase): New static function. (eval_init): Register new intrinsic macros ecaseq, ecaseql, ecasequal, ecaseq*, ecaseql* and ecasequal*. Intern case-error and initialize case_error_s. * txr.1: Documented. Also updated Exception Hierarchy diagram with match-error and case-error. * stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/doc-syms.tl6
1 files changed, 6 insertions, 0 deletions
diff --git a/stdlib/doc-syms.tl b/stdlib/doc-syms.tl
index d111995d..48eb6624 100644
--- a/stdlib/doc-syms.tl
+++ b/stdlib/doc-syms.tl
@@ -540,6 +540,12 @@
("ebadmsg" "N-036B1BDB")
("ebusy" "N-036B1BDB")
("ecanceled" "N-036B1BDB")
+ ("ecaseq" "N-03F13774")
+ ("ecaseq*" "N-03F13774")
+ ("ecaseql" "N-03F13774")
+ ("ecaseql*" "N-03F13774")
+ ("ecasequal" "N-03F13774")
+ ("ecasequal*" "N-03F13774")
("echild" "N-036B1BDB")
("echo" "N-0072FF5E")
("echoctl" "N-0072FF5E")