diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-07-05 20:53:24 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-07-05 20:53:24 -0700 |
commit | 7bbc3f87ec0194af20fd309cf20c06bc187fac1c (patch) | |
tree | 3d0324ac6e45f356b1a48bf86d0f2ee6fb829fbf /tests | |
parent | 2a96c6ec27d1dd987897a566dd850f871cef46da (diff) | |
download | txr-7bbc3f87ec0194af20fd309cf20c06bc187fac1c.tar.gz txr-7bbc3f87ec0194af20fd309cf20c06bc187fac1c.tar.bz2 txr-7bbc3f87ec0194af20fd309cf20c06bc187fac1c.zip |
expander: tighten up syntax checking.
* eval.c (eval_exception): New parameter distinguishes whether
this function is called from expansion time. If so, it behaves
similarly to the compile-error funtion in error.tl: if
a recursive load is in effect, a there is no error handler,
then deferred warnings are dumped to standard error, followed
by the error message. Then the exception is thrown.
(eval_error, eval_warn): Pass zero to eval_exception to
indicate that this is not expansion time.
(expand_error, missing_arg_error, excess_args_error,
no_dot_check, syn_check): New static functions.
(me_def_variable, me_each, me_for, me_gen, me_gun, me_delay,
me_when, me_unless, me_while_until, me_whie_until_star,
me_equot, me_case, me_dotimes, me_lcons, me_mlet,
me_load_time, me_l1_val, me_l1_setq, me_assert): Add syntactic
checks to built-in macros.
(do_expand): Add syntactic checks for a number of special
operators.
* unwind.c (catch_frame_s): New symbol variable.
(uw_late_init): Initialize catch_frame_s and use that in
registering the catch-frame structure.
* unwind.c (catch_frame_s): Declared.
Diffstat (limited to 'tests')
0 files changed, 0 insertions, 0 deletions