summaryrefslogtreecommitdiffstats
path: root/parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'parser.y')
-rw-r--r--parser.y19
1 files changed, 12 insertions, 7 deletions
diff --git a/parser.y b/parser.y
index 7a5730ea..37d6af35 100644
--- a/parser.y
+++ b/parser.y
@@ -623,17 +623,21 @@ exprs_opt : exprs { $$ = $1; }
| /* empty */ { $$ = nil; }
;
-expr : IDENT { $$ = intern(string_own($1), nil); }
- | KEYWORD { $$ = intern(string_own($1),
- keyword_package); }
+expr : IDENT { $$ = rl(intern(string_own($1), nil),
+ num(lineno)); }
+ | KEYWORD { $$ = rl(intern(string_own($1),
+ keyword_package),
+ num(lineno)); }
| METAVAR { $$ = list(var_s,
- intern(string_own($1), nil), nao); }
+ intern(string_own($1), nil), nao);
+ rl($$, num(lineno)); }
| NUMBER { $$ = num($1); }
| list { $$ = $1; }
| meta_expr { $$ = $1; }
| regex { $$ = cons(regex_compile(rest($1)),
- rest($1)); }
- | chrlit { $$ = $1; }
+ rest($1));
+ rlcp($$, $1); }
+ | chrlit { $$ = rl($1, num(lineno)); }
| strlit { $$ = $1; }
| quasilit { $$ = $1; }
;
@@ -714,7 +718,8 @@ newl : '\n'
;
strlit : '"' '"' { $$ = null_string; }
- | '"' litchars '"' { $$ = lit_char_helper($2); }
+ | '"' litchars '"' { $$ = lit_char_helper($2);
+ rl($$, num(lineno)); }
| '"' error { $$ = nil;
yybadtoken(yychar, lit("string literal")); }
;