diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-12-29 17:21:12 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-12-29 17:21:12 -0800 |
commit | 2fd65e25a48810bc5a926b3f01974cb5624afb71 (patch) | |
tree | ababf16f6b3a7dab82aee67920c5dd79a635d02f /txr.1 | |
parent | 2af0204512def6801b49faa432db351a7adaac6d (diff) | |
download | txr-2fd65e25a48810bc5a926b3f01974cb5624afb71.tar.gz txr-2fd65e25a48810bc5a926b3f01974cb5624afb71.tar.bz2 txr-2fd65e25a48810bc5a926b3f01974cb5624afb71.zip |
Reintroduce lambda checks and macro param bugfix.
Fix nested macro parameters not being expanded properly in all
cases. Diagnose uses of :env, :form and :whole in
function parameter lits.
* eval.c (expand_opt_params_rec, expand_params_rec): New
parametr, macro_style_p, indicating destructuring macro
parameter list is to be expanded. Restructure the cases in
expand_opt_params_rec to fix a bug: only recursively treating
a nested parameter A only when A stands alone, or without
a default form as (A), failing to do so when it is (A B ...).
Diagnose :env, :whole or :form inside a function parameter
list. Do not process recursive parameter lists for functions;
diagnose nesting as bad syntax.
(expand_params): Add macro_style_p parameter.
(expand_macrolet, expand_tree_cases): Pass t as argument to
new parameter of expand_params.
(do_expand): Pass t or nil as argument to new parameter
of expand params, based on whether expanding a macro
or function parameter list.
Diffstat (limited to 'txr.1')
0 files changed, 0 insertions, 0 deletions