parse.y: Fix the locations of NODE in percent strings

* parse.y (parser_yylex): token_flush before
    calling parse_string. Without token_flush
    the first locations of NODE in percent strings
    are set to the location of %.

  e.g. The locations of NODE_STR is fixed:

  ```
  %w[a b]
  ```

  * Before

  ```
  NODE_STR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 4) ("a")
  NODE_STR (line: 1, first_lineno: 1, first_column: 0, last_lineno: 1, last_column: 6) ("b")
  ```

  * After

  ```
  NODE_STR (line: 1, first_lineno: 1, first_column: 3, last_lineno: 1, last_column: 4) ("a")
  NODE_STR (line: 1, first_lineno: 1, first_column: 5, last_lineno: 1, last_column: 6) ("b")
  ```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yui-knk 2017-11-21 00:47:00 +00:00
Родитель d911920244
Коммит c0ffccf722
1 изменённых файлов: 1 добавлений и 0 удалений

Просмотреть файл

@ -8248,6 +8248,7 @@ parser_yylex(struct parser_params *parser)
return here_document(&lex_strterm->u.heredoc);
}
else {
token_flush(parser);
return parse_string(&lex_strterm->u.literal);
}
}