Skip to content

Commit 902b7f9

Browse files
committed
Allow \S for negated whitespace regex shorthand
1 parent 3edb5db commit 902b7f9

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

spec/compiler/prepare_grammar/parse_regex_spec.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ describe("parse_regex", []() {
3030

3131
{
3232
"character classes",
33-
"\\w-\\d-\\s",
33+
"\\w-\\d-\\s-\\S",
3434
seq({
3535
character({
3636
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
@@ -41,7 +41,10 @@ describe("parse_regex", []() {
4141
character({ '-' }),
4242
character({ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }),
4343
character({ '-' }),
44-
character({ ' ', '\t', '\r', '\n' }) })
44+
character({ ' ', '\t', '\r', '\n' }),
45+
character({ '-' }),
46+
character({ ' ', '\t', '\r', '\n' }, false)
47+
})
4548
},
4649

4750
{

src/compiler/prepare_grammar/parse_regex.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,13 @@ class PatternParser {
192192
case 's':
193193
return CharacterSet().include(' ').include('\t').include('\n').include(
194194
'\r');
195+
case 'S':
196+
return CharacterSet()
197+
.include_all()
198+
.exclude(' ')
199+
.exclude('\t')
200+
.exclude('\n')
201+
.exclude('\r');
195202
case 't':
196203
return CharacterSet().include('\t');
197204
case 'n':

0 commit comments

Comments
 (0)