From 9462f8c7b3d57ccaaa73fd0e891f8a82b41c4b84 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 22 Feb 2014 00:29:48 -0800 Subject: * parser.y: Bugfix, I think. :) We do not need to call the expander for a Lisp expression in a quasistring, and doing so leads to a potentially incorrect double expansion because the whole thing will be expanded again, either by the TXR Lisp quasi operator's expander (if this is a quasiliteral in Lisp) or in the TXR pattern language, by expand_meta, which hunts down down @ expressions and expands them. --- ChangeLog | 10 ++++++++++ parser.y | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 84b68cfc..a6c26d3c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2014-02-22 Kaz Kylheku + + * parser.y: Bugfix, I think. :) We do not need to call the expander + for a Lisp expression in a quasistring, and doing so leads to a + potentially incorrect double expansion because the whole thing + will be expanded again, either by the TXR Lisp quasi operator's + expander (if this is a quasiliteral in Lisp) or in the TXR + pattern language, by expand_meta, which hunts down down @ expressions + and expands them. + 2014-02-21 Kaz Kylheku Implementing special variables with local overriding. diff --git a/parser.y b/parser.y index 4c402965..1aec65d5 100644 --- a/parser.y +++ b/parser.y @@ -903,7 +903,7 @@ quasi_item : litchars { $$ = lit_char_helper($1); } | o_var { $$ = $1; } | METANUM { $$ = cons(var_s, cons($1, nil)); rl($$, num(lineno)); } - | list { $$ = rlcp(cons(expr_s, expand($1)), $1); } + | list { $$ = rlcp(cons(expr_s, $1), $1); } ; litchars : LITCHAR { $$ = cons(chr($1), nil); } -- cgit v1.2.3