parser: ignore \E that is not preceded by \Q

This conforms to PCRE's behaviour, where an isolated \E that is not
preceded by \Q is ignored.
This commit is contained in:
Justin Viiret 2016-07-28 12:38:26 +10:00 committed by Matthew Barr
parent c58d9d04a1
commit 67e450115a
2 changed files with 2 additions and 4 deletions

View File

@ -1226,9 +1226,8 @@ unichar readUtf8CodePoint4c(const u8 *ts) {
'\\Q' => {
fgoto readQuotedLiteral;
};
'\\E' => {
throw LocatedParseError("Unmatched \\E");
};
# An \E that is not preceded by a \Q is ignored
'\\E' => { /* noop */ };
# Match any character
'\.' => {
currentSeq->addComponent(generateComponent(CLASS_ANY, false, mode));

View File

@ -32,7 +32,6 @@
31:/\B/W #\B unsupported in UCP mode at index 0.
32:/foo(?{print "Hello world\n";})bar/ #Embedded code is not supported at index 3.
33:/the (\S+)(?{ $color = $^N }) (\S+)(?{ $animal = $^N })/i #Embedded code is not supported at index 9.
34:/foobar\E/s #Unmatched \E at index 6.
35:/\X/8 #\X unsupported at index 0.
36:/\B+/ #Invalid repeat at index 2.
37:/\B?/ #Invalid repeat at index 2.