diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-11-26 18:07:38 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-11-26 18:07:38 -0800 |
commit | 92514021697a83be8332457b3dcc437f029ee786 (patch) | |
tree | 10788c646eebf606dc4da498988693b8b4ddd636 /parser.y | |
parent | ff9efa28206ca7c6aaaedbe0418106867868d129 (diff) | |
download | txr-92514021697a83be8332457b3dcc437f029ee786.tar.gz txr-92514021697a83be8332457b3dcc437f029ee786.tar.bz2 txr-92514021697a83be8332457b3dcc437f029ee786.zip |
* parser.y (expr): Set source location info on elements.
(strlit): Set location info.
Diffstat (limited to 'parser.y')
-rw-r--r-- | parser.y | 19 |
1 files changed, 12 insertions, 7 deletions
@@ -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")); } ; |