summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-12-17 06:09:37 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-12-17 06:09:37 -0800
commitf8c5f7d4950a6fb660c533625ef5004f998432b1 (patch)
tree774430d577a7d0b04ae52230a2b2d173164bb8c5
parent954d698350e41df2bca00c4cba09dfe55f3a8e40 (diff)
downloadtxr-f8c5f7d4950a6fb660c533625ef5004f998432b1.tar.gz
txr-f8c5f7d4950a6fb660c533625ef5004f998432b1.tar.bz2
txr-f8c5f7d4950a6fb660c533625ef5004f998432b1.zip
Bugfix: dot syntax doesn't record source loc info.
* parser.y (n_expr): Fall back on getting line number info from parser->lineno, if it didn't come from the operands.
-rw-r--r--parser.y6
1 files changed, 4 insertions, 2 deletions
diff --git a/parser.y b/parser.y
index e4bb7a4c..b22a7280 100644
--- a/parser.y
+++ b/parser.y
@@ -889,10 +889,12 @@ n_expr : SYMTOK { $$ = symhlpr($1, t); }
| n_expr '.' n_expr { uses_or2;
if (consp($3) && car($3) == qref_s) {
rplacd($3, rlcp(cons($1, cdr($3)), $1));
+ rl($$, num(parser->lineno));
$$ = $3;
} else {
- $$ = rlcp(list(qref_s, $1, $3, nao),
- or2($1, $3));
+ $$ = rl(rlcp(list(qref_s, $1, $3, nao),
+ or2($1, $3)),
+ num(parser->lineno));
} }
;