[ruby/yarp] fix: newline tracking for nl-terminated % %q %Q
https://github.com/ruby/yarp/commit/1e4940864b
This commit is contained in:
parent
dcc8afe9a4
commit
05c59995fa
@ -1,2 +1,13 @@
|
||||
# note that %i, %I, %w, and %W do not support newline termination in CRuby
|
||||
|
||||
%
|
||||
foo
|
||||
|
||||
%q
|
||||
foo
|
||||
|
||||
%Q
|
||||
foo
|
||||
|
||||
%r
|
||||
foo
|
||||
|
@ -1,6 +1,15 @@
|
||||
ProgramNode(0...7)(
|
||||
ProgramNode(76...106)(
|
||||
[],
|
||||
StatementsNode(0...7)(
|
||||
[RegularExpressionNode(0...7)((0...3), (3...6), (6...7), "foo", 0)]
|
||||
StatementsNode(76...106)(
|
||||
[StringNode(76...82)((76...78), (78...81), (81...82), "foo"),
|
||||
StringNode(83...90)((83...86), (86...89), (89...90), "foo"),
|
||||
StringNode(91...98)((91...94), (94...97), (97...98), "foo"),
|
||||
RegularExpressionNode(99...106)(
|
||||
(99...102),
|
||||
(102...105),
|
||||
(105...106),
|
||||
"foo",
|
||||
0
|
||||
)]
|
||||
)
|
||||
)
|
||||
|
@ -6224,6 +6224,7 @@ parser_lex(yp_parser_t *parser) {
|
||||
|
||||
if (parser->current.end < parser->end) {
|
||||
lex_mode_push_string(parser, false, false, lex_mode_incrementor(*parser->current.end), lex_mode_terminator(*parser->current.end));
|
||||
yp_newline_list_check_append(&parser->newline_list, parser->current.end);
|
||||
parser->current.end++;
|
||||
}
|
||||
|
||||
@ -6234,6 +6235,7 @@ parser_lex(yp_parser_t *parser) {
|
||||
|
||||
if (parser->current.end < parser->end) {
|
||||
lex_mode_push_string(parser, true, false, lex_mode_incrementor(*parser->current.end), lex_mode_terminator(*parser->current.end));
|
||||
yp_newline_list_check_append(&parser->newline_list, parser->current.end);
|
||||
parser->current.end++;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user