parse.y: reduce duplicate code

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2018-03-11 12:12:08 +00:00
Родитель fd04ea0adf
Коммит e1a60b2db9
1 изменённых файлов: 5 добавлений и 7 удалений

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

@ -6280,10 +6280,7 @@ here_document(struct parser_params *p, rb_strterm_heredoc_t *here)
if (ptr_end < p->lex.pend) rb_str_cat(str, "\n", 1);
lex_goto_eol(p);
if (p->heredoc_indent > 0) {
set_yylval_str(str);
add_mark_object(p, str);
flush_string_content(p, enc);
return tSTRING_CONTENT;
goto flush_str;
}
if (nextc(p) == -1) {
if (str) {
@ -6315,10 +6312,11 @@ here_document(struct parser_params *p, rb_strterm_heredoc_t *here)
goto restore;
}
if (c != '\n') {
VALUE lit;
flush:
add_mark_object(p, lit = STR_NEW3(tok(p), toklen(p), enc, func));
set_yylval_str(lit);
str = STR_NEW3(tok(p), toklen(p), enc, func);
flush_str:
set_yylval_str(str);
add_mark_object(p, str);
flush_string_content(p, enc);
return tSTRING_CONTENT;
}