* parse.y (parser_string_term): return the token of string or
  regexp literal terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-08-26 15:07:51 +00:00
Родитель 504908996c
Коммит 49b884941a
1 изменённых файлов: 10 добавлений и 4 удалений

14
parse.y
Просмотреть файл

@ -6331,6 +6331,15 @@ parser_peek_variable_name(struct parser_params *parser)
return 0;
}
static inline int
parser_string_term(struct parser_params *parser, int func)
{
if (!(func & STR_FUNC_REGEXP)) return tSTRING_END;
set_yylval_num(regx_options());
dispatch_scan_event(tREGEXP_END);
return tREGEXP_END;
}
static int
parser_parse_string(struct parser_params *parser, NODE *quote)
{
@ -6351,10 +6360,7 @@ parser_parse_string(struct parser_params *parser, NODE *quote)
quote->nd_func = -1;
return ' ';
}
if (!(func & STR_FUNC_REGEXP)) return tSTRING_END;
set_yylval_num(regx_options());
dispatch_scan_event(tREGEXP_END);
return tREGEXP_END;
return parser_string_term(parser, func);
}
if (space) {
pushback(c);