diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-08-18 06:51:44 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-08-18 06:51:44 -0700 |
commit | ca59be500904f84f5b138257cc152e1ec6764819 (patch) | |
tree | 9736456339f67f3ecede8394dc336d444168fb77 /stdlib | |
parent | 4911b99c3a255155931248669da0546ca7c005d3 (diff) | |
download | txr-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.tl | 6 |
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") |