[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
|
%r
|
||||||
foo
|
foo
|
||||||
|
@ -1,6 +1,15 @@
|
|||||||
ProgramNode(0...7)(
|
ProgramNode(76...106)(
|
||||||
[],
|
[],
|
||||||
StatementsNode(0...7)(
|
StatementsNode(76...106)(
|
||||||
[RegularExpressionNode(0...7)((0...3), (3...6), (6...7), "foo", 0)]
|
[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) {
|
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));
|
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++;
|
parser->current.end++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6234,6 +6235,7 @@ parser_lex(yp_parser_t *parser) {
|
|||||||
|
|
||||||
if (parser->current.end < parser->end) {
|
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));
|
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++;
|
parser->current.end++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user