diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-04-11 20:26:56 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-04-11 20:26:56 -0700 |
commit | 9f36af8a86b7c377f2bfab2cb9fafefa5ed173d4 (patch) | |
tree | 9b25a804307d954b2fa150b317172e5062f229d4 /HACKING-toc.txr | |
parent | 2a441b7edd2c92ac9371ccafccc6e2820eab22a7 (diff) | |
download | txr-9f36af8a86b7c377f2bfab2cb9fafefa5ed173d4.tar.gz txr-9f36af8a86b7c377f2bfab2cb9fafefa5ed173d4.tar.bz2 txr-9f36af8a86b7c377f2bfab2cb9fafefa5ed173d4.zip |
Better handling of dot position function calls.
The expander now actually produces apply forms for dot
position function call and dwim forms. This allows symbol
macros to work naturally.
* eval.c (sys_apply_s): New symbol variable.
(imp_list_to_list, dot_to_apply): New static functions.
(expand_forms, expand_forms_lisp1): We now throw an error if a
non-nil atom terminates a form, Except in compatibility mode
with TXR 137 or less, whereby we emulate the old behavior of
not expanding this atom.
(do_expand): Perform the dot_to_apply transformation
on the arguments of the dwim form.
Perform the dot_to_apply transformation on an
entire function call form.
(eval_init): Initialize sys_apply_s and register
sys:apply function (using the same function object that
is registered under apply).
* txr.1: Documented that both DWIM forms and regular
function call forms work as if by a transformation to apply form,
removing verbiage which separately described the DWIM
handling. Documented that symbol macros work properly in
dot position.
Diffstat (limited to 'HACKING-toc.txr')
0 files changed, 0 insertions, 0 deletions