diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-04-03 06:42:53 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-04-03 06:42:53 -0700 |
commit | 3ed21c522b7914a7eed0cf4dffff66e009406213 (patch) | |
tree | 2a73857694190ec02d7f6049bc9bd1ec7fec8a1c /struct.c | |
parent | 4eea106b17da71b27b69f0856a3cb4e0c2d93132 (diff) | |
download | txr-3ed21c522b7914a7eed0cf4dffff66e009406213.tar.gz txr-3ed21c522b7914a7eed0cf4dffff66e009406213.tar.bz2 txr-3ed21c522b7914a7eed0cf4dffff66e009406213.zip |
tags: grok Lisp definitions inside @(do ...).
* tags.tl (unexpand): New function.
(process-clause): Walk the forms enclosed in a @(do ...)
directive that appears at the top level. Because all Lisp is
macro-expanded right inside the TXR parser, we need to
"unexpand" the forms by chasing their macro-ancestor
chain, gaining access to the original forms like defun
and defstruct. We can then turn these forms into tags using
the process-form function.
Diffstat (limited to 'struct.c')
0 files changed, 0 insertions, 0 deletions