WI-60779 Support PCRE "pseudo" conditions DEFINE and VERSION as conditions in conditional groups.

GitOrigin-RevId: bdf83d81e0235826d7980739025f90581bc4222c
This commit is contained in:
Filippova Maria
2022-06-24 13:57:29 +03:00
committed by intellij-monorepo-bot
parent c2abcf40d8
commit a58330a1c1
12 changed files with 579 additions and 423 deletions

View File

@@ -331,6 +331,21 @@ public class RegExpLexerTest extends LexerTestCase {
doTest("(a)\\g-105", null, lexer);
}
public void testPcreConditionDefine() {
final RegExpLexer lexer = new RegExpLexer(EnumSet.of(PCRE_CONDITIONS));
doTest("(?(DEFINE)(?<Name>\\w+))(?P>Name)", null, lexer);
}
public void testPcreConditionVersion() {
final RegExpLexer lexer = new RegExpLexer(EnumSet.of(PCRE_CONDITIONS));
doTest("(?(VERSION>=10.7)yes|no)", null, lexer);
}
public void testNoPcreCondition() {
final RegExpLexer lexer = new RegExpLexer(EnumSet.noneOf(RegExpCapability.class));
doTest("(?(DEFINE)(?<Name>\\w+))(?P>Name)", null, lexer);
}
public void testNoNestedCharacterClasses1() {
final RegExpLexer lexer = new RegExpLexer(EnumSet.noneOf(RegExpCapability.class));
doTest("[[\\]]", "CLASS_BEGIN ('[')\n" +