diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-12-08 21:20:38 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-12-08 21:20:38 -0800 |
commit | fd1473136898716cecf77de5a029c58e98f2a682 (patch) | |
tree | a498e61c35d7da37a7a408e2c5f6b678ea46c94f | |
parent | 0bca60148566d0cd9999c016c8107a0a29d523f0 (diff) | |
download | txr-fd1473136898716cecf77de5a029c58e98f2a682.tar.gz txr-fd1473136898716cecf77de5a029c58e98f2a682.tar.bz2 txr-fd1473136898716cecf77de5a029c58e98f2a682.zip |
New function macro-ancestor.
* eval.c (eval_init): Register lookup_origin as macro-ancestor
intrinsic.
* txr.1: Documented.
-rw-r--r-- | eval.c | 1 | ||||
-rw-r--r-- | txr.1 | 18 |
2 files changed, 19 insertions, 0 deletions
@@ -5036,6 +5036,7 @@ void eval_init(void) reg_fun(intern(lit("source-loc"), user_package), func_n1(source_loc)); reg_fun(intern(lit("source-loc-str"), user_package), func_n2o(source_loc_str, 1)); + reg_fun(intern(lit("macro-ancestor"), user_package), func_n1(lookup_origin)); reg_fun(intern(lit("rlcp"), user_package), func_n2(rlcp)); eval_error_s = intern(lit("eval-error"), user_package); @@ -36801,6 +36801,24 @@ source code location info also, so that when the \*(TL evaluator encounters errors in transformed code, it can give diagnostics which refer to the original untransformed source code. +.coNP Function @ macro-ancestor +.synb +.mets (macro-ancestor << form ) +.syne +.desc +The +.code macro-ancestor +function returns information about the macro-expansion ancestor of +.metn form . +The ancestor is the original form whose expansion produced +.metn form . + +If +.meta form +is not the result of macro-expansion, or the ancestor information +is unavailable, the function returns +.codn nil . + .SS* Profiling .coNP Operator @ prof .synb |