summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <[email protected]>2023-12-11 09:30:24 -0500
committergit <[email protected]>2023-12-11 16:34:55 +0000
commit4095e7d2be0ef6426e0cb75a53472f6dc1e5a0af ()
tree444e2533fc549421f381e0a290466dd274a51436
parentc65de63913487caf26a281cb5c3be112f87a23a1 (diff)
[ruby/prism] Regexp terminator escapes
https://.com/ruby/prism/commit/42a48a2ba9
-rw-r--r--prism/prism.c19
-rw-r--r--test/prism/snapshots/seattlerb/bug190.txt2
2 files changed, 18 insertions, 3 deletions
@@ -9535,7 +9535,9 @@ parser_lex(pm_parser_t *parser) {
case '\r':
parser->current.end++;
if (peek(parser) != '\n') {
- pm_token_buffer_push(&token_buffer, '\\');
pm_token_buffer_push(&token_buffer, '\r');
break;
}
@@ -9563,7 +9565,20 @@ parser_lex(pm_parser_t *parser) {
escape_read(parser, &token_buffer.buffer, PM_ESCAPE_FLAG_REGEXP);
break;
default:
- if (lex_mode->as.regexp.terminator == '/' && peeked == '/') {
pm_token_buffer_push(&token_buffer, peeked);
parser->current.end++;
break;
@@ -8,4 +8,4 @@
├── opening_loc: (1,0)-(1,3) = "%r'"
├── content_loc: (1,3)-(1,5) = "\\'"
├── closing_loc: (1,5)-(1,6) = "'"
- └── unescaped: "\\'"