summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-11-28 18:57:18 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-11-28 18:57:18 -0800
commit8bd9d47e3c25bfd964bb6950362d169c49887b66 (patch)
treed8d99533b099f8a0ea5d5a11c33f6bf4638eab99 /lib.c
parenta67a10b463c0c43d851ec2bb72311130be306128 (diff)
downloadtxr-8bd9d47e3c25bfd964bb6950362d169c49887b66.tar.gz
txr-8bd9d47e3c25bfd964bb6950362d169c49887b66.tar.bz2
txr-8bd9d47e3c25bfd964bb6950362d169c49887b66.zip
Error reports trace through layers of macroexpansion.
* eval.c (error_trace): New function. Consolidates error reporting between unhandled exception handling in uw_throw, and the catcher in the repl. (op_defmacro, expand_macrolet): Propagate location info from body to wrapping block, and to the macro binding. In the latter function, also to the body that is wrapped by local macros. (do_expand, macroexpand_1): Propagate location info from macro expander to expansion, only taking it from the form if the macro doesn't supply it. * eval.h (error_trace): Declared. * parser.c (repl): Replace error reporting code with call to error_trace. * unwind.c (uw_throw): uw_throw: likewise.
Diffstat (limited to 'lib.c')
0 files changed, 0 insertions, 0 deletions