parse.y: set location of nodes that lexer generates
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6fe72f294d
commit
840d0dc180
33
parse.y
33
parse.y
@ -3920,19 +3920,7 @@ var_lhs : user_variable
|
|||||||
;
|
;
|
||||||
|
|
||||||
backref : tNTH_REF
|
backref : tNTH_REF
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
nd_set_loc($$, &@$);
|
|
||||||
/*%
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
| tBACK_REF
|
| tBACK_REF
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
nd_set_loc($$, &@$);
|
|
||||||
/*%
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
superclass : '<'
|
superclass : '<'
|
||||||
@ -4626,20 +4614,16 @@ static enum yytokentype parser_here_document(struct parser_params*,rb_strterm_he
|
|||||||
# define set_integer_literal(v, f) parser_set_integer_literal(p, (v), (f))
|
# define set_integer_literal(v, f) parser_set_integer_literal(p, (v), (f))
|
||||||
|
|
||||||
#ifndef RIPPER
|
#ifndef RIPPER
|
||||||
# define set_yylval_str(x) { \
|
# define set_yylval_node(x) { \
|
||||||
YYLTYPE loc; \
|
YYLTYPE _cur_loc; \
|
||||||
rb_parser_set_location(p, &loc); \
|
rb_parser_set_location(p, &_cur_loc); \
|
||||||
yylval.node = NEW_STR(x, &loc); \
|
yylval.node = (x); \
|
||||||
}
|
|
||||||
# define set_yylval_literal(x) { \
|
|
||||||
YYLTYPE loc; \
|
|
||||||
rb_parser_set_location(p, &loc); \
|
|
||||||
yylval.node = NEW_LIT(x, &loc); \
|
|
||||||
}
|
}
|
||||||
|
# define set_yylval_str(x) set_yylval_node(NEW_STR(x, &_cur_loc))
|
||||||
|
# define set_yylval_literal(x) set_yylval_node(NEW_LIT(x, &_cur_loc))
|
||||||
# define set_yylval_num(x) (yylval.num = (x))
|
# define set_yylval_num(x) (yylval.num = (x))
|
||||||
# define set_yylval_id(x) (yylval.id = (x))
|
# define set_yylval_id(x) (yylval.id = (x))
|
||||||
# define set_yylval_name(x) (yylval.id = (x))
|
# define set_yylval_name(x) (yylval.id = (x))
|
||||||
# define set_yylval_node(x) (yylval.node = (x))
|
|
||||||
# define yylval_id() (yylval.id)
|
# define yylval_id() (yylval.id)
|
||||||
#else
|
#else
|
||||||
static inline VALUE
|
static inline VALUE
|
||||||
@ -4654,6 +4638,7 @@ ripper_yylval_id(struct parser_params *p, ID x)
|
|||||||
# define set_yylval_literal(x) (void)(x)
|
# define set_yylval_literal(x) (void)(x)
|
||||||
# define set_yylval_node(x) (void)(x)
|
# define set_yylval_node(x) (void)(x)
|
||||||
# define yylval_id() yylval.id
|
# define yylval_id() yylval.id
|
||||||
|
# define _cur_loc NULL_LOC /* dummy */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef RIPPER
|
#ifndef RIPPER
|
||||||
@ -7550,7 +7535,7 @@ parse_gvar(struct parser_params *p, const enum lex_state_e last_state)
|
|||||||
tokadd(c);
|
tokadd(c);
|
||||||
goto gvar;
|
goto gvar;
|
||||||
}
|
}
|
||||||
set_yylval_node(NEW_BACK_REF(c, &NULL_LOC));
|
set_yylval_node(NEW_BACK_REF(c, &_cur_loc));
|
||||||
return tBACK_REF;
|
return tBACK_REF;
|
||||||
|
|
||||||
case '1': case '2': case '3':
|
case '1': case '2': case '3':
|
||||||
@ -7564,7 +7549,7 @@ parse_gvar(struct parser_params *p, const enum lex_state_e last_state)
|
|||||||
pushback(c);
|
pushback(c);
|
||||||
if (IS_lex_state_for(last_state, EXPR_FNAME)) goto gvar;
|
if (IS_lex_state_for(last_state, EXPR_FNAME)) goto gvar;
|
||||||
tokfix();
|
tokfix();
|
||||||
set_yylval_node(NEW_NTH_REF(parse_numvar(p), &NULL_LOC));
|
set_yylval_node(NEW_NTH_REF(parse_numvar(p), &_cur_loc));
|
||||||
return tNTH_REF;
|
return tNTH_REF;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user