diff --git a/RegExpSupport/test/org/intellij/lang/regexp/RegExpParsingTest.java b/RegExpSupport/test/org/intellij/lang/regexp/RegExpParsingTest.java new file mode 100644 index 000000000000..8aba439916e9 --- /dev/null +++ b/RegExpSupport/test/org/intellij/lang/regexp/RegExpParsingTest.java @@ -0,0 +1,322 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.intellij.lang.regexp; + +import com.intellij.openapi.application.PathManager; +import com.intellij.testFramework.ParsingTestCase; + +import java.io.IOException; + +/** + * @author Bas Leijdekkers + */ +public class RegExpParsingTest extends ParsingTestCase { + + public RegExpParsingTest() { + super("psi", "regexp", new RegExpParserDefinition()); + } + + @Override + protected String getTestDataPath() { + return PathManager.getHomePath() + "/community/RegExpSupport/testData/"; + } + + public void testSimple1() throws IOException { doCodeTest("|"); } + public void testSimple2() throws IOException { doCodeTest("(|\\$.*)\\.class"); } + public void testSimple3() throws IOException { doCodeTest("abc"); } + public void testSimple4() throws IOException { doCodeTest("multiple words of text"); } + public void testSimple5() throws IOException { doCodeTest("ab|cd"); } + public void testSimple6() throws IOException { doCodeTest("a*"); } + public void testSimple7() throws IOException { doCodeTest("ab*c"); } + public void testSimple8() throws IOException { doCodeTest("ab*bc"); } + public void testSimple9() throws IOException { doCodeTest("ab+bc"); } + public void testSimple10() throws IOException { doCodeTest("ab?bc"); } + public void testSimple11() throws IOException { doCodeTest("ab?c"); } + public void testSimple12() throws IOException { doCodeTest("a.c"); } + public void testSimple13() throws IOException { doCodeTest("a.*c"); } + public void testSimple14() throws IOException { doCodeTest("*a"); } + public void testSimple15() throws IOException { doCodeTest(/* fixme */"a{1}"); } + public void testSimple16() throws IOException { doCodeTest("a{}"); } + public void testSimple17() throws IOException { doCodeTest("a{"); } + public void testSimple18() throws IOException { doCodeTest("a}"); } + public void testSimple19() throws IOException { doCodeTest("a{1,}"); } + public void testSimple20() throws IOException { doCodeTest("a{1,2}"); } + public void testSimple21() throws IOException { doCodeTest("a{1,foo}"); } + public void testSimple22() throws IOException { doCodeTest(/* fixme */"\\;"); } + + public void testQuantifiers1() throws IOException { doCodeTest("a?"); } + public void testQuantifiers2() throws IOException { doCodeTest("a+"); } + public void testQuantifiers3() throws IOException { doCodeTest("a*"); } + public void testQuantifiers4() throws IOException { doCodeTest("a??"); } + public void testQuantifiers5() throws IOException { doCodeTest("a+?"); } + public void testQuantifiers6() throws IOException { doCodeTest("a*?"); } + public void testQuantifiers7() throws IOException { doCodeTest("a?+"); } + public void testQuantifiers8() throws IOException { doCodeTest("a++"); } + public void testQuantifiers9() throws IOException { doCodeTest("a*+"); } + public void testQuantifiers10() throws IOException { doCodeTest("a**"); } + public void testQuantifiers11() throws IOException { doCodeTest("a{2}"); } + public void testQuantifiers12() throws IOException { doCodeTest("a{1,2}"); } + public void testQuantifiers13() throws IOException { doCodeTest("a{2,1}"); } + public void testQuantifiers14() throws IOException { doCodeTest(/* fixme */"a{0,1}"); } + public void testQuantifiers15() throws IOException { doCodeTest(/* fixme */"a{1,}"); } + public void testQuantifiers16() throws IOException { doCodeTest(/* fixme */"a{0,}"); } + public void testQuantifiers17() throws IOException { doCodeTest(/* fixme */"a{1}"); } + public void testQuantifiers18() throws IOException { doCodeTest(/* fixme */"a{3,3}"); } + public void testQuantifiers19() throws IOException { doCodeTest("a{"); } + public void testQuantifiers20() throws IOException { doCodeTest("a}"); } + public void testQuantifiers21() throws IOException { doCodeTest("a{}"); } + + public void testCharclasses1() throws IOException { doCodeTest("a[bc]d"); } + public void testCharclasses2() throws IOException { doCodeTest("a[b-d]e"); } + public void testCharclasses3() throws IOException { doCodeTest("a[b-d]"); } + public void testCharclasses4() throws IOException { doCodeTest("a[b-a]"); } + public void testCharclasses5() throws IOException { doCodeTest("a[-b]"); } + public void testCharclasses6() throws IOException { doCodeTest("a[b-]"); } + public void testCharclasses7() throws IOException { doCodeTest("[a-[b]]"); } + public void testCharclasses8() throws IOException { doCodeTest("a[b&&[cd]]"); } + public void testCharclasses9() throws IOException { doCodeTest("a[b-&&[cd]]"); } + public void testCharclasses10() throws IOException { doCodeTest("a[b&&-]"); } + public void testCharclasses11() throws IOException { doCodeTest("a[b&&-b]"); } + public void testCharclasses12() throws IOException { doCodeTest("[&&]"); } + public void testCharclasses13() throws IOException { doCodeTest("[&&[^\\d]]"); } + public void testCharclasses14() throws IOException { doCodeTest("[a&&]"); } + public void testCharclasses15() throws IOException { doCodeTest("a[b&&c&&d]"); } + public void testCharclasses16() throws IOException { doCodeTest("a[b&&c&&d-e&&f]"); } + public void testCharclasses17() throws IOException { doCodeTest("[a&&]"); } + public void testCharclasses18() throws IOException { doCodeTest("a[a[b][c]]"); } + public void testCharclasses19() throws IOException { doCodeTest("[a-[]]"); } + public void testCharclasses20() throws IOException { doCodeTest("[a-[b"); } + public void testCharclasses21() throws IOException { doCodeTest("[a[^b]]"); } + public void testCharclasses22() throws IOException { doCodeTest("a[a[b[c]][d]]"); } + public void testCharclasses23() throws IOException { doCodeTest("a[\\t--]"); } + public void testCharclasses24() throws IOException { doCodeTest("a[\\t--]"); } + public void testCharclasses25() throws IOException { doCodeTest("a[\\t---]"); } + public void testCharclasses26() throws IOException { doCodeTest("a[-]?c"); } + public void testCharclasses27() throws IOException { doCodeTest("a["); } + public void testCharclasses28() throws IOException { doCodeTest("a]"); } + public void testCharclasses29() throws IOException { doCodeTest("[a-["); } + public void testCharclasses30() throws IOException { doCodeTest("a[]]"); } + public void testCharclasses31() throws IOException { doCodeTest("a[^bc]d"); } + public void testCharclasses32() throws IOException { doCodeTest("a[^bc]"); } + public void testCharclasses33() throws IOException { doCodeTest("a[]b"); } + public void testCharclasses34() throws IOException { doCodeTest("[^]"); } + public void testCharclasses35() throws IOException { doCodeTest("[abhgefdc]ij"); } + public void testCharclasses36() throws IOException { doCodeTest("[a-zA-Z_][a-zA-Z0-9_]*"); } + public void testCharclasses37() throws IOException { doCodeTest("([a-c]+?)c"); } + public void testCharclasses38() throws IOException { doCodeTest("([ab]*?)b"); } + public void testCharclasses39() throws IOException { doCodeTest("([ab]*)b"); } + public void testCharclasses40() throws IOException { doCodeTest("([ab]??)b"); } + public void testCharclasses41() throws IOException { doCodeTest("(c[ab]?)b"); } + public void testCharclasses42() throws IOException { doCodeTest("(c[ab]??)b"); } + public void testCharclasses43() throws IOException { doCodeTest("(c[ab]*?)b"); } + public void testCharclasses44() throws IOException { doCodeTest("a[bcd]+dcdcde"); } + public void testCharclasses45() throws IOException { doCodeTest("[k]"); } + public void testCharclasses46() throws IOException { doCodeTest("a[bcd]*dcdcde"); } + public void testCharclasses47() throws IOException { doCodeTest("[^ab]*"); } + public void testCharclasses48() throws IOException { doCodeTest("a[.]b"); } + public void testCharclasses49() throws IOException { doCodeTest("a[+*?]b"); } + public void testCharclasses50() throws IOException { doCodeTest("a[\\p{IsDigit}\\p{IsAlpha}]b"); } + public void testCharclasses51() throws IOException { doCodeTest("[\\p{L}&&[^\\p{Lu}]]"); } + public void testCharclasses52() throws IOException { doCodeTest("\\pL\\pM\\pZ\\pS\\pN\\pP\\pC\\PL\\PM\\PZ\\PS\\PN\\PP\\PC"); } + public void testCharclasses53() throws IOException { doCodeTest("\\pA"); } + public void testCharclasses54() throws IOException { doCodeTest("\\pl"); } + public void testCharclasses55() throws IOException { doCodeTest("a\\p"); } + public void testCharclasses56() throws IOException { doCodeTest("a\\p{}"); } + public void testCharclasses57() throws IOException { doCodeTest("a\\p}"); } + public void testCharclasses58() throws IOException { doCodeTest("a\\p{123}"); } + public void testCharclasses59() throws IOException { doCodeTest("[\\p{nothing}]"); } + public void testCharclasses60() throws IOException { doCodeTest(/* fixme */"a\\p{*}b"); } + public void testCharclasses61() throws IOException { doCodeTest(/* fixme */"[\\w-\\w]"); } + public void testCharclasses62() throws IOException { doCodeTest("[a-\\w]"); } + public void testCharclasses63() throws IOException { doCodeTest("(?x)abc #foo \\q bar\n# foo\n(?-xi)xyz(?i:ABC)"); } + public void testCharclasses64() throws IOException { doCodeTest("[\\ud800\\udc00-\\udbff\\udfff]"); } + public void testCharclasses65() throws IOException { doCodeTest("\\R"); } + public void testCharclasses66() throws IOException { doCodeTest("\\X"); } + public void testCharclasses67() throws IOException { doCodeTest(/* fixme */"\\-[\\*\\-\\[\\]\\\\\\+]"); } + public void testCharclasses68() throws IOException { doCodeTest("[\\b]"); } + + public void testGroups1() throws IOException { doCodeTest("()ef"); } + public void testGroups2() throws IOException { doCodeTest("()*"); } + public void testGroups3() throws IOException { doCodeTest(/* fixme */"()"); } + public void testGroups4() throws IOException { doCodeTest(/* fixme */"(|)"); } + public void testGroups5() throws IOException { doCodeTest("(*)b"); } + public void testGroups6() throws IOException { doCodeTest(/* fixme */"((a))"); } + public void testGroups7() throws IOException { doCodeTest("(a)b(c)"); } + public void testGroups8() throws IOException { doCodeTest("(a*)*"); } + public void testGroups9() throws IOException { doCodeTest("(a*)+"); } + public void testGroups10() throws IOException { doCodeTest("(a|)*"); } + public void testGroups11() throws IOException { doCodeTest("(ab|cd)e"); } + public void testGroups12() throws IOException { doCodeTest("(.*)c(.*)"); } + public void testGroups13() throws IOException { doCodeTest("\\((.*), (.*)\\)"); } + public void testGroups14() throws IOException { doCodeTest("a(bc)d"); } + public void testGroups15() throws IOException { doCodeTest("([abc])*d"); } + public void testGroups16() throws IOException { doCodeTest("((((((((((a)))))))))"); } + public void testGroups17() throws IOException { doCodeTest("([abc])*bcd"); } + public void testGroups18() throws IOException { doCodeTest("(a|b)c*d"); } + public void testGroups19() throws IOException { doCodeTest("a([bc]*)c*"); } + public void testGroups20() throws IOException { doCodeTest("((a)(b)c)(d)"); } + public void testGroups21() throws IOException { doCodeTest("(ab|a)b*c"); } + public void testGroups22() throws IOException { doCodeTest("(ab|ab*)bc"); } + public void testGroups23() throws IOException { doCodeTest("(a|b|c|d|e)f"); } + public void testGroups24() throws IOException { doCodeTest("a([bc]*)(c*d)"); } + public void testGroups25() throws IOException { doCodeTest("a([bc]+)(c*d)"); } + public void testGroups26() throws IOException { doCodeTest("a([bc]*)(c+d)"); } + public void testGroups27() throws IOException { doCodeTest("(a+|b)*"); } + public void testGroups28() throws IOException { doCodeTest("(a+|b)+"); } + public void testGroups29() throws IOException { doCodeTest("(a+|b)?"); } + public void testGroups30() throws IOException { doCodeTest("(^*"); } + public void testGroups31() throws IOException { doCodeTest(")("); } + public void testGroups32() throws IOException { doCodeTest("(?i:*)"); } + public void testGroups33() throws IOException { doCodeTest("(?[a-c])\\1"); } + public void testGroups34() throws IOException { doCodeTest("(?[a-c])\\k"); } + public void testGroups35() throws IOException { doCodeTest(/* fixme */"\\k"); } + + public void testEscapes1() throws IOException { doCodeTest("\\q"); } + public void testEscapes2() throws IOException { doCodeTest("\\#"); } + public void testEscapes3() throws IOException { doCodeTest("a\\"); } + public void testEscapes4() throws IOException { doCodeTest("a\\(b"); } + public void testEscapes5() throws IOException { doCodeTest("a\\(*b"); } + public void testEscapes6() throws IOException { doCodeTest("a\\\\b"); } + public void testEscapes7() throws IOException { doCodeTest("\\u004a"); } + public void testEscapes8() throws IOException { doCodeTest("\\0123"); } + public void testEscapes9() throws IOException { doCodeTest("\\0"); } + public void testEscapes10() throws IOException { doCodeTest("\\x4a"); } + public void testEscapes11() throws IOException { doCodeTest("\\x{0}"); } + public void testEscapes12() throws IOException { doCodeTest("\\x{2011F}"); } + public void testEscapes13() throws IOException { doCodeTest("[\\x4a-\\x4b]"); } + public void testEscapes14() throws IOException { doCodeTest(/* fixme */"[a-a]"); } + public void testEscapes15() throws IOException { doCodeTest("[\\x4a-\\x3f]"); } + public void testEscapes16() throws IOException { doCodeTest(/* fixme */"[\\udbff\\udfff-\\ud800\\udc00]"); } + public void testEscapes17() throws IOException { doCodeTest("[\\ud800\\udc00-\\udbff\\udfff]"); } + public void testEscapes18() throws IOException { doCodeTest(/* fixme */"[z-a]"); } + public void testEscapes19() throws IOException { doCodeTest("[a-z]"); } + public void testEscapes20() throws IOException { doCodeTest("a\\Qabc?*+.))]][]\\Eb"); } + public void testEscapes21() throws IOException { doCodeTest("(a\\Qabc?*+.))]][]\\Eb)"); } + public void testEscapes22() throws IOException { doCodeTest(/* fixme */"[\\Qabc?*+.))]][]\\E]"); } + public void testEscapes23() throws IOException { doCodeTest("a\\Qabc?*+.))]][]\\E)"); } + public void testEscapes24() throws IOException { doCodeTest("\\Q\\j\\E"); } + public void testEscapes25() throws IOException { doCodeTest("\\c0"); } + + public void testAnchors1() throws IOException { doCodeTest("^*"); } + public void testAnchors2() throws IOException { doCodeTest("$*"); } + public void testAnchors3() throws IOException { doCodeTest("^abc"); } + public void testAnchors4() throws IOException { doCodeTest("^abc$"); } + public void testAnchors5() throws IOException { doCodeTest("abc$"); } + public void testAnchors6() throws IOException { doCodeTest("^"); } + public void testAnchors7() throws IOException { doCodeTest("$"); } + public void testAnchors8() throws IOException { doCodeTest("$b"); } + public void testAnchors9() throws IOException { doCodeTest("^(ab|cd)e"); } + public void testAnchors10() throws IOException { doCodeTest("^a(bc+|b[eh])g|.h$"); } + + public void testNamedchars1() throws IOException { doCodeTest("a*b\\s+c"); } + public void testNamedchars2() throws IOException { doCodeTest("\\d+"); } + public void testNamedchars3() throws IOException { doCodeTest("^\\p{javaJavaIdentifierStart}+\\p{javaJavaIdentifierPart}+$"); } + public void testNamedchars4() throws IOException { doCodeTest("\\p{IsDigit}\\p{IsAlpha}"); } + public void testNamedchars5() throws IOException { doCodeTest("\\p{InLATIN_1_SUPPLEMENT}"); } + public void testNamedchars6() throws IOException { doCodeTest("[a-e]?d\\\\e"); } + public void testNamedchars7() throws IOException { doCodeTest("((\\w+)/)*(\\w+)"); } + public void testNamedchars8() throws IOException { doCodeTest("\\p{Digit}+"); } + public void testNamedchars9() throws IOException { doCodeTest(/* fixme */"[:xdigit:]+"); } + public void testNamedchars10() throws IOException { doCodeTest("\\p{unknown}+"); } + + public void testBackrefs1() throws IOException { doCodeTest("(ac*)c*d[ac]*\\1"); } + public void testBackrefs2() throws IOException { doCodeTest("(.)=\\1"); } + public void testBackrefs3() throws IOException { doCodeTest("([ab])=\\1"); } + public void testBackrefs4() throws IOException { doCodeTest("([ab]+)=\\1"); } + public void testBackrefs5() throws IOException { doCodeTest("(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)\\105"); } + public void testBackrefs6() throws IOException { doCodeTest("(.)\\11"); } + public void testBackrefs7() throws IOException { doCodeTest("([ab]+)=\\2"); } + public void testBackrefs8() throws IOException { doCodeTest("([ab]+)=\\3"); } + public void testBackrefs9() throws IOException { doCodeTest(/* fixme */"([ab]+=\\1)"); } + + public void testComplex1() throws IOException { doCodeTest("z(\\w\\s+(?:\\w\\s+\\w)+)z"); } + public void testComplex2() throws IOException { doCodeTest("(([hH][tT]{2}[pP]|[fF][tT][pP]):\\/\\/)?[a-zA-Z0-9\\-]+(\\.[a-zA-Z0-9\\-]+)*"); } + public void testComplex3() throws IOException { doCodeTest("((?:[hH][tT]{2}[pP]|[fF][tT][pP]):\\/\\/)?[a-zA-Z0-9\\-]+(\\.[a-zA-Z0-9\\-]+)*"); } + public void testComplex4() throws IOException { doCodeTest("(([hH][tT]{2}[pP]|[fF][tT][pP]):\\/\\/)?[a-zA-Z0-9\\-]+(?:\\.[a-zA-Z0-9\\-]+)*"); } + public void testComplex5() throws IOException { doCodeTest("(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\\/\\/)?[a-zA-Z0-9\\-]+(\\.[a-zA-Z0-9\\-]+)*"); } + public void testComplex6() throws IOException { doCodeTest("^(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\\/\\/)?[a-zA-Z0-9\\-]+(\\.[a-zA-Z0-9\\-]+)*$"); } + public void testComplex7() throws IOException { doCodeTest("^(?:(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\\/\\/)?[a-zA-Z0-9\\-]+(?:\\.[a-zA-Z0-9\\-]+)*$"); } + + public void testIncomplete1() throws IOException { doCodeTest("abc\\"); } + public void testIncomplete2() throws IOException { doCodeTest("abc[\\"); } + public void testIncomplete3() throws IOException { doCodeTest("abc\\x"); } + public void testIncomplete4() throws IOException { doCodeTest("abc\\x1"); } + public void testIncomplete5() throws IOException { doCodeTest("abc\\x{"); } + public void testIncomplete6() throws IOException { doCodeTest("abc\\x{}"); } + public void testIncomplete7() throws IOException { doCodeTest("abc\\x{0"); } + public void testIncomplete8() throws IOException { doCodeTest("abc\\u"); } + public void testIncomplete9() throws IOException { doCodeTest("abc\\u22"); } + public void testIncomplete10() throws IOException { doCodeTest("\\Qabc"); } + public void testIncomplete11() throws IOException { doCodeTest("\\Q"); } + public void testIncomplete12() throws IOException { doCodeTest("\\E"); } + public void testIncomplete13() throws IOException { doCodeTest("a|*"); } + + public void testRegressions1() throws IOException { doCodeTest("("); } + public void testRegressions2() throws IOException { doCodeTest("[^^]"); } + public void testRegressions3() throws IOException { doCodeTest(/* fixme */"a)b"); } + public void testRegressions4() throws IOException { doCodeTest(/* fixme */"\\s*@return(?:s)?\\s*(?:(?:\\{|:)?\\s*(?([^\\s\\}]+)\\s*\\}?\\s*)?(.*)"); } + + public void testOptions1() throws IOException { doCodeTest(/* fixme */"(?iZm)abc"); } + public void testOptions2() throws IOException { doCodeTest("(?idmsuxU)nice"); } + public void testOptions3() throws IOException { doCodeTest("(?idm-suxU)one(?suxU-idm)two"); } + + public void testTests1() throws IOException { doCodeTest("abc)"); } + public void testTests2() throws IOException { doCodeTest("(abc"); } + public void testTests3() throws IOException { doCodeTest("a+b+c"); } + public void testTests4() throws IOException { doCodeTest("a**"); } + public void testTests5() throws IOException { doCodeTest("a++"); } + public void testTests6() throws IOException { doCodeTest("ab*"); } + public void testTests7() throws IOException { doCodeTest("abcd*efg"); } + public void testTests8() throws IOException { doCodeTest("a|b|c|d|e"); } + public void testTests9() throws IOException { doCodeTest("(bc+d$|ef*g.|h?i(j|k))"); } + public void testTests10() throws IOException { doCodeTest("a*(b*c*)"); } + public void testTests11() throws IOException { doCodeTest("a?b+c*"); } + public void testTests12() throws IOException { doCodeTest("i am a green (giant|man|martian)"); } + public void testTests13() throws IOException { doCodeTest("(wee|week)(knights|knight)"); } + public void testTests14() throws IOException { doCodeTest("(a.*b)(a.*b)"); } + public void testTests15() throws IOException { doCodeTest("(\\s*\\w+)?"); } + public void testTests16() throws IOException { doCodeTest("(?:a)"); } + public void testTests17() throws IOException { doCodeTest("(?:\\w)"); } + public void testTests18() throws IOException { doCodeTest("(?:\\w\\s\\w)+"); } + public void testTests19() throws IOException { doCodeTest("(a\\w)(?:,(a\\w))+"); } + public void testTests20() throws IOException { doCodeTest("abc.*?x+yz"); } + public void testTests21() throws IOException { doCodeTest("abc.+?x+yz"); } + public void testTests22() throws IOException { doCodeTest("a.+?(c|d)"); } + public void testTests23() throws IOException { doCodeTest("a.+(c|d)"); } + public void testTests24() throws IOException { doCodeTest("a+?b+?c+?"); } + + public void testRealLife1() throws IOException { doCodeTest("x:found=\"(true|false)\""); } + public void testRealLife2() throws IOException { doCodeTest("(?:\\s)|(?:/\\*.*\\*/)|(?://[^\\n]*)"); } + public void testRealLife3() throws IOException { doCodeTest("((?:\\p{Alpha}\\:)?[0-9 a-z_A-Z\\-\\\\./]+)"); } + public void testRealLife4() throws IOException { doCodeTest("^[\\w\\+\\.\\-]{2,}:"); } + public void testRealLife5() throws IOException { doCodeTest("#(.*)$"); } + public void testRealLife6() throws IOException { doCodeTest("^(([^:]+)://)?([^:/]+)(:([0-9]+))?(/.*)"); } + public void testRealLife7() throws IOException { doCodeTest("(([^:]+)://)?([^:/]+)(:([0-9]+))?(/.*)"); } + public void testRealLife8() throws IOException { doCodeTest("usd [+-]?[0-9]+.[0-9][0-9]"); } + public void testRealLife9() throws IOException { doCodeTest("\\b(\\w+)(\\s+\\1)+\\b"); } + public void testRealLife10() throws IOException { doCodeTest(/* fixme */".*?(<(error|warning|info)(?: descr=\"((?:[^\"\\\\]|\\\\\")*)\")?(?: type=\"([0-9A-Z_]+)\")?(?: foreground=\"([0-9xa-f]+)\")?(?: background=\"([0-9xa-f]+)\")?(?: effectcolor=\"([0-9xa-f]+)\")?(?: effecttype=\"([A-Z]+)\")?(?: fonttype=\"([0-9]+)\")?(/)?>)(.*)"); } + + public void testBug1() throws IOException { doCodeTest("[{][\\w\\.]*[}]"); } + public void testBug2() throws IOException { doCodeTest("[a-z0-9!\\#$%&'*+/=?^_`{|}~-]+"); } + public void testBug3() throws IOException { doCodeTest("[\\{]"); } + public void testBug4() throws IOException { doCodeTest("{"); } + public void testBug5() throws IOException { doCodeTest("\\{"); } + public void testBug6() throws IOException { doCodeTest("(<=\\s)-{3,}(?>\\s)"); } + public void testBug7() throws IOException { doCodeTest("(?x)a\\ b\\ c"); } + public void testBug8() throws IOException { doCodeTest(/* fixme */"a\\ b"); } + public void testBug9() throws IOException { doCodeTest("(^|\\.)\\*(?=(\\.|$))"); } + public void testBug10() throws IOException { doCodeTest("\\h \\H \\v \\V"); } +} diff --git a/RegExpSupport/testData/psi/Anchors1.txt b/RegExpSupport/testData/psi/Anchors1.txt new file mode 100644 index 000000000000..d09bf87bab15 --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors1.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <^*> + RegExpBranchImpl: <^*> + RegExpClosureImpl: <^*> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors10.txt b/RegExpSupport/testData/psi/Anchors10.txt new file mode 100644 index 000000000000..0045d14a80c7 --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors10.txt @@ -0,0 +1,41 @@ +REGEXP_FILE + RegExpPatternImpl: <^a(bc+|b[eh])g|.h$> + RegExpBranchImpl: <^a(bc+|b[eh])g> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpGroupImpl: <(bc+|b[eh])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpClassImpl: <[eh]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + PsiElement(UNION)('|') + RegExpBranchImpl: <.h$> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors2.txt b/RegExpSupport/testData/psi/Anchors2.txt new file mode 100644 index 000000000000..dfcae8a73631 --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors2.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <$*> + RegExpBranchImpl: <$*> + RegExpClosureImpl: <$*> + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors3.txt b/RegExpSupport/testData/psi/Anchors3.txt new file mode 100644 index 000000000000..0fbf9491a104 --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors3.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: <^abc> + RegExpBranchImpl: <^abc> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors4.txt b/RegExpSupport/testData/psi/Anchors4.txt new file mode 100644 index 000000000000..59616fe44ddf --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors4.txt @@ -0,0 +1,13 @@ +REGEXP_FILE + RegExpPatternImpl: <^abc$> + RegExpBranchImpl: <^abc$> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors5.txt b/RegExpSupport/testData/psi/Anchors5.txt new file mode 100644 index 000000000000..3db657b224ad --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors5.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors6.txt b/RegExpSupport/testData/psi/Anchors6.txt new file mode 100644 index 000000000000..25634fe228c4 --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors6.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <^> + RegExpBranchImpl: <^> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors7.txt b/RegExpSupport/testData/psi/Anchors7.txt new file mode 100644 index 000000000000..0edae4cfda1c --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors7.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <$> + RegExpBranchImpl: <$> + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors8.txt b/RegExpSupport/testData/psi/Anchors8.txt new file mode 100644 index 000000000000..84380ce5dda1 --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors8.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + RegExpPatternImpl: <$b> + RegExpBranchImpl: <$b> + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Anchors9.txt b/RegExpSupport/testData/psi/Anchors9.txt new file mode 100644 index 000000000000..60b18ccdec19 --- /dev/null +++ b/RegExpSupport/testData/psi/Anchors9.txt @@ -0,0 +1,22 @@ +REGEXP_FILE + RegExpPatternImpl: <^(ab|cd)e> + RegExpBranchImpl: <^(ab|cd)e> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpGroupImpl: <(ab|cd)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs1.txt b/RegExpSupport/testData/psi/Backrefs1.txt new file mode 100644 index 000000000000..2ef3ab0da07e --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs1.txt @@ -0,0 +1,35 @@ +REGEXP_FILE + RegExpPatternImpl: <(ac*)c*d[ac]*\1> + RegExpBranchImpl: <(ac*)c*d[ac]*\1> + RegExpGroupImpl: <(ac*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpClosureImpl: <[ac]*> + RegExpClassImpl: <[ac]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs2.txt b/RegExpSupport/testData/psi/Backrefs2.txt new file mode 100644 index 000000000000..f0b81da340d6 --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs2.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: <(.)=\1> + RegExpBranchImpl: <(.)=\1> + RegExpGroupImpl: <(.)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.> + RegExpBranchImpl: <.> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs3.txt b/RegExpSupport/testData/psi/Backrefs3.txt new file mode 100644 index 000000000000..32dd48f0ead7 --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs3.txt @@ -0,0 +1,20 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab])=\1> + RegExpBranchImpl: <([ab])=\1> + RegExpGroupImpl: <([ab])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]> + RegExpBranchImpl: <[ab]> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs4.txt b/RegExpSupport/testData/psi/Backrefs4.txt new file mode 100644 index 000000000000..7d8232de4bd0 --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs4.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab]+)=\1> + RegExpBranchImpl: <([ab]+)=\1> + RegExpGroupImpl: <([ab]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]+> + RegExpBranchImpl: <[ab]+> + RegExpClosureImpl: <[ab]+> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs5.txt b/RegExpSupport/testData/psi/Backrefs5.txt new file mode 100644 index 000000000000..210d5130a13e --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs5.txt @@ -0,0 +1,77 @@ +REGEXP_FILE + RegExpPatternImpl: <(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)\105> + RegExpBranchImpl: <(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)\105> + RegExpGroupImpl: <(a)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(c)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(d)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(e)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('e') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(f)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(g)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('g') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(h)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(i)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('i') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(j)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('j') + PsiElement(GROUP_END)(')') + RegExpBackrefImpl: <\10> + PsiElement(BACKREF)('\10') + RegExpCharImpl: <5> + PsiElement(CHARACTER)('5') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs6.txt b/RegExpSupport/testData/psi/Backrefs6.txt new file mode 100644 index 000000000000..017deff0e1e5 --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs6.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: <(.)\11> + RegExpBranchImpl: <(.)\11> + RegExpGroupImpl: <(.)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.> + RegExpBranchImpl: <.> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + PsiElement(GROUP_END)(')') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') + RegExpCharImpl: <1> + PsiElement(CHARACTER)('1') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs7.txt b/RegExpSupport/testData/psi/Backrefs7.txt new file mode 100644 index 000000000000..05e0ce5bbe06 --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs7.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab]+)=\2> + RegExpBranchImpl: <([ab]+)=\2> + RegExpGroupImpl: <([ab]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]+> + RegExpBranchImpl: <[ab]+> + RegExpClosureImpl: <[ab]+> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpBackrefImpl: <\2> + PsiElement(BACKREF)('\2') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs8.txt b/RegExpSupport/testData/psi/Backrefs8.txt new file mode 100644 index 000000000000..2fe01686083c --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs8.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab]+)=\3> + RegExpBranchImpl: <([ab]+)=\3> + RegExpGroupImpl: <([ab]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]+> + RegExpBranchImpl: <[ab]+> + RegExpClosureImpl: <[ab]+> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpBackrefImpl: <\3> + PsiElement(BACKREF)('\3') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Backrefs9.txt b/RegExpSupport/testData/psi/Backrefs9.txt new file mode 100644 index 000000000000..66df9c8c0385 --- /dev/null +++ b/RegExpSupport/testData/psi/Backrefs9.txt @@ -0,0 +1,203 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab]+=\1)> + RegExpBranchImpl: <([ab]+=\1)> + RegExpGroupImpl: <([ab]+=\1)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]+=\1> + RegExpBranchImpl: <[ab]+=\1> + RegExpClosureImpl: <[ab]+> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('B') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug1.txt b/RegExpSupport/testData/psi/Bug1.txt new file mode 100644 index 000000000000..5a8a60d15294 --- /dev/null +++ b/RegExpSupport/testData/psi/Bug1.txt @@ -0,0 +1,24 @@ +REGEXP_FILE + RegExpPatternImpl: <[{][\w\.]*[}]> + RegExpBranchImpl: <[{][\w\.]*[}]> + RegExpClassImpl: <[{]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <{> + PsiElement(LBRACE)('{') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[\w\.]*> + RegExpClassImpl: <[\w\.]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\w\.> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpCharImpl: <\.> + PsiElement(REDUNDANT_ESCAPE)('\.') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpClassImpl: <[}]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <}> + PsiElement(CHARACTER)('}') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug10.txt b/RegExpSupport/testData/psi/Bug10.txt new file mode 100644 index 000000000000..6031e9ced829 --- /dev/null +++ b/RegExpSupport/testData/psi/Bug10.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: <\h \H \v \V> + RegExpBranchImpl: <\h \H \v \V> + RegExpSimpleClassImpl: <\h> + PsiElement(CHAR_CLASS)('\h') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpSimpleClassImpl: <\H> + PsiElement(CHAR_CLASS)('\H') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpSimpleClassImpl: <\v> + PsiElement(CHAR_CLASS)('\v') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpSimpleClassImpl: <\V> + PsiElement(CHAR_CLASS)('\V') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug2.txt b/RegExpSupport/testData/psi/Bug2.txt new file mode 100644 index 000000000000..904675e0d78e --- /dev/null +++ b/RegExpSupport/testData/psi/Bug2.txt @@ -0,0 +1,60 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-z0-9!\#$%&'*+/=?^_`{|}~-]+> + RegExpBranchImpl: <[a-z0-9!\#$%&'*+/=?^_`{|}~-]+> + RegExpClosureImpl: <[a-z0-9!\#$%&'*+/=?^_`{|}~-]+> + RegExpClassImpl: <[a-z0-9!\#$%&'*+/=?^_`{|}~-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: + PsiElement(CHARACTER)('!') + RegExpCharImpl: <\#> + PsiElement(REDUNDANT_ESCAPE)('\#') + RegExpCharImpl: <$> + PsiElement(CHARACTER)('$') + RegExpCharImpl: <%> + PsiElement(CHARACTER)('%') + RegExpCharImpl: <&> + PsiElement(CHARACTER)('&') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <*> + PsiElement(CHARACTER)('*') + RegExpCharImpl: <+> + PsiElement(CHARACTER)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: + PsiElement(CHARACTER)('?') + RegExpCharImpl: <^> + PsiElement(CARET)('^') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: <`> + PsiElement(CHARACTER)('`') + RegExpCharImpl: <{> + PsiElement(LBRACE)('{') + RegExpCharImpl: <|> + PsiElement(CHARACTER)('|') + RegExpCharImpl: <}> + PsiElement(CHARACTER)('}') + RegExpCharImpl: <~> + PsiElement(CHARACTER)('~') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug3.txt b/RegExpSupport/testData/psi/Bug3.txt new file mode 100644 index 000000000000..ed2a106315b0 --- /dev/null +++ b/RegExpSupport/testData/psi/Bug3.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <[\{]> + RegExpBranchImpl: <[\{]> + RegExpClassImpl: <[\{]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <\{> + PsiElement(REDUNDANT_ESCAPE)('\{') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug4.txt b/RegExpSupport/testData/psi/Bug4.txt new file mode 100644 index 000000000000..ca7de507d76c --- /dev/null +++ b/RegExpSupport/testData/psi/Bug4.txt @@ -0,0 +1,4 @@ +REGEXP_FILE + PsiErrorElement:Dangling metacharacter + + PsiElement(LBRACE)('{') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug5.txt b/RegExpSupport/testData/psi/Bug5.txt new file mode 100644 index 000000000000..1cf60d4a9383 --- /dev/null +++ b/RegExpSupport/testData/psi/Bug5.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\{> + RegExpBranchImpl: <\{> + RegExpCharImpl: <\{> + PsiElement(ESC_CHARACTER)('\{') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug6.txt b/RegExpSupport/testData/psi/Bug6.txt new file mode 100644 index 000000000000..fe490b74182d --- /dev/null +++ b/RegExpSupport/testData/psi/Bug6.txt @@ -0,0 +1,29 @@ +REGEXP_FILE + RegExpPatternImpl: <(<=\s)-{3,}(?>\s)> + RegExpBranchImpl: <(<=\s)-{3,}(?>\s)> + RegExpGroupImpl: <(<=\s)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <<=\s> + RegExpBranchImpl: <<=\s> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: <-{3,}> + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpQuantifierImpl: <{3,}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('3') + PsiElement(COMMA)(',') + PsiElement(RBRACE)('}') + RegExpGroupImpl: <(?>\s)> + PsiElement(NON_CAPT_GROUP)('(?>') + RegExpPatternImpl: <\s> + RegExpBranchImpl: <\s> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug7.txt b/RegExpSupport/testData/psi/Bug7.txt new file mode 100644 index 000000000000..79230871ff42 --- /dev/null +++ b/RegExpSupport/testData/psi/Bug7.txt @@ -0,0 +1,18 @@ +REGEXP_FILE + RegExpPatternImpl: <(?x)a\ b\ c> + RegExpBranchImpl: <(?x)a\ b\ c> + RegExpSetOptionsImpl: <(?x)> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('x') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <\ > + PsiElement(CHARACTER)('\ ') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: <\ > + PsiElement(CHARACTER)('\ ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug8.txt b/RegExpSupport/testData/psi/Bug8.txt new file mode 100644 index 000000000000..f22e724c0b34 --- /dev/null +++ b/RegExpSupport/testData/psi/Bug8.txt @@ -0,0 +1,137 @@ +REGEXP_FILE + RegExpPatternImpl: \ b> + RegExpBranchImpl: \ b> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <\ > + PsiElement(REDUNDANT_ESCAPE)('\ ') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug9.txt b/RegExpSupport/testData/psi/Bug9.txt new file mode 100644 index 000000000000..35bf17b931a1 --- /dev/null +++ b/RegExpSupport/testData/psi/Bug9.txt @@ -0,0 +1,32 @@ +REGEXP_FILE + RegExpPatternImpl: <(^|\.)\*(?=(\.|$))> + RegExpBranchImpl: <(^|\.)\*(?=(\.|$))> + RegExpGroupImpl: <(^|\.)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <^|\.> + RegExpBranchImpl: <^> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + PsiElement(UNION)('|') + RegExpBranchImpl: <\.> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <\*> + PsiElement(ESC_CHARACTER)('\*') + RegExpGroupImpl: <(?=(\.|$))> + PsiElement(POS_LOOKAHEAD)('(?=') + RegExpPatternImpl: <(\.|$)> + RegExpBranchImpl: <(\.|$)> + RegExpGroupImpl: <(\.|$)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\.|$> + RegExpBranchImpl: <\.> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + PsiElement(UNION)('|') + RegExpBranchImpl: <$> + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses1.txt b/RegExpSupport/testData/psi/Charclasses1.txt new file mode 100644 index 000000000000..82ab2547804c --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses1.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[bc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('d') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses10.txt b/RegExpSupport/testData/psi/Charclasses10.txt new file mode 100644 index 000000000000..4afc1e58f52f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses10.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b&&-]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(ANDAND)('&&') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses11.txt b/RegExpSupport/testData/psi/Charclasses11.txt new file mode 100644 index 000000000000..e91dcd2e0c0b --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses11.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b&&-b]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(ANDAND)('&&') + RegExpUnionImpl: <-b> + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses12.txt b/RegExpSupport/testData/psi/Charclasses12.txt new file mode 100644 index 000000000000..31d006657c64 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses12.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <[&&]> + RegExpBranchImpl: <[&&]> + RegExpClassImpl: <[&&]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: <&&> + PsiElement(ANDAND)('&&') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses13.txt b/RegExpSupport/testData/psi/Charclasses13.txt new file mode 100644 index 000000000000..01c7f2789161 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses13.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: <[&&[^\d]]> + RegExpBranchImpl: <[&&[^\d]]> + RegExpClassImpl: <[&&[^\d]]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: <&&[^\d]> + PsiElement(ANDAND)('&&') + RegExpClassImpl: <[^\d]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpSimpleClassImpl: <\d> + PsiElement(CHAR_CLASS)('\d') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses14.txt b/RegExpSupport/testData/psi/Charclasses14.txt new file mode 100644 index 000000000000..85a66ba2f4d8 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses14.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <[a&&]> + RegExpBranchImpl: <[a&&]> + RegExpClassImpl: <[a&&]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(ANDAND)('&&') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses15.txt b/RegExpSupport/testData/psi/Charclasses15.txt new file mode 100644 index 000000000000..d9723a318e8e --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses15.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b&&c&&d]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(ANDAND)('&&') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(ANDAND)('&&') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses16.txt b/RegExpSupport/testData/psi/Charclasses16.txt new file mode 100644 index 000000000000..717220c4c5e2 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses16.txt @@ -0,0 +1,24 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b&&c&&d-e&&f]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(ANDAND)('&&') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(ANDAND)('&&') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + PsiElement(ANDAND)('&&') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses17.txt b/RegExpSupport/testData/psi/Charclasses17.txt new file mode 100644 index 000000000000..85a66ba2f4d8 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses17.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <[a&&]> + RegExpBranchImpl: <[a&&]> + RegExpClassImpl: <[a&&]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(ANDAND)('&&') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses18.txt b/RegExpSupport/testData/psi/Charclasses18.txt new file mode 100644 index 000000000000..7bbc99f361d7 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses18.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[a[b][c]]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[c]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses19.txt b/RegExpSupport/testData/psi/Charclasses19.txt new file mode 100644 index 000000000000..c50dc2e10420 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses19.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-[]]> + RegExpBranchImpl: <[a-[]]> + RegExpClassImpl: <[a-[]]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpClassImpl: <[]]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + PsiElement(CLASS_END)(']') + PsiErrorElement:Unclosed character class + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses2.txt b/RegExpSupport/testData/psi/Charclasses2.txt new file mode 100644 index 000000000000..c2f6db289f7f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses2.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b-d]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses20.txt b/RegExpSupport/testData/psi/Charclasses20.txt new file mode 100644 index 000000000000..20afd78046ab --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses20.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-[b> + RegExpBranchImpl: <[a-[b> + RegExpClassImpl: <[a-[b> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpClassImpl: <[b> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiErrorElement:Unclosed character class + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses21.txt b/RegExpSupport/testData/psi/Charclasses21.txt new file mode 100644 index 000000000000..03cdac1f63a8 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses21.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: <[a[^b]]> + RegExpBranchImpl: <[a[^b]]> + RegExpClassImpl: <[a[^b]]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[^b]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses22.txt b/RegExpSupport/testData/psi/Charclasses22.txt new file mode 100644 index 000000000000..f26f00c6536c --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses22.txt @@ -0,0 +1,27 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[a[b[c]][d]]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b[c]]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpClassImpl: <[c]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[d]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses23.txt b/RegExpSupport/testData/psi/Charclasses23.txt new file mode 100644 index 000000000000..01cdfcc59d2f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses23.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[\t--]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <\t--> + RegExpCharImpl: <\t> + PsiElement(ESC_CTRL_CHARACTER)('\t') + PsiElement(MINUS)('-') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses24.txt b/RegExpSupport/testData/psi/Charclasses24.txt new file mode 100644 index 000000000000..01cdfcc59d2f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses24.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[\t--]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <\t--> + RegExpCharImpl: <\t> + PsiElement(ESC_CTRL_CHARACTER)('\t') + PsiElement(MINUS)('-') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses25.txt b/RegExpSupport/testData/psi/Charclasses25.txt new file mode 100644 index 000000000000..6045dd9a2e50 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses25.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[\t---]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\t---> + RegExpCharRangeImpl: <\t--> + RegExpCharImpl: <\t> + PsiElement(ESC_CTRL_CHARACTER)('\t') + PsiElement(MINUS)('-') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses26.txt b/RegExpSupport/testData/psi/Charclasses26.txt new file mode 100644 index 000000000000..5ecaf07b94f1 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses26.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <[-]?> + RegExpClassImpl: <[-]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses27.txt b/RegExpSupport/testData/psi/Charclasses27.txt new file mode 100644 index 000000000000..4ba25cbf155c --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses27.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[> + PsiElement(CLASS_BEGIN)('[') + PsiErrorElement:Unclosed character class + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses28.txt b/RegExpSupport/testData/psi/Charclasses28.txt new file mode 100644 index 000000000000..ae455a78e7c7 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses28.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses29.txt b/RegExpSupport/testData/psi/Charclasses29.txt new file mode 100644 index 000000000000..6a12a7d9ff13 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses29.txt @@ -0,0 +1,13 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-[> + RegExpBranchImpl: <[a-[> + RegExpClassImpl: <[a-[> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpClassImpl: <[> + PsiElement(CLASS_BEGIN)('[') + PsiErrorElement:Unclosed character class + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses3.txt b/RegExpSupport/testData/psi/Charclasses3.txt new file mode 100644 index 000000000000..bea955ea4973 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses3.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b-d]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses30.txt b/RegExpSupport/testData/psi/Charclasses30.txt new file mode 100644 index 000000000000..5738dcad71af --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses30.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[]]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses31.txt b/RegExpSupport/testData/psi/Charclasses31.txt new file mode 100644 index 000000000000..c0a7aae71b47 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses31.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[^bc]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('d') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses32.txt b/RegExpSupport/testData/psi/Charclasses32.txt new file mode 100644 index 000000000000..9c0ea2e1baa5 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses32.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[^bc]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses33.txt b/RegExpSupport/testData/psi/Charclasses33.txt new file mode 100644 index 000000000000..1e151b4f55e6 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses33.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[]b> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <]b> + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiErrorElement:Unclosed character class + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses34.txt b/RegExpSupport/testData/psi/Charclasses34.txt new file mode 100644 index 000000000000..8d4de65e24db --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses34.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <[^]> + RegExpBranchImpl: <[^]> + RegExpClassImpl: <[^]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + PsiErrorElement:Unclosed character class + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses35.txt b/RegExpSupport/testData/psi/Charclasses35.txt new file mode 100644 index 000000000000..3f1d69dd8335 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses35.txt @@ -0,0 +1,27 @@ +REGEXP_FILE + RegExpPatternImpl: <[abhgefdc]ij> + RegExpBranchImpl: <[abhgefdc]ij> + RegExpClassImpl: <[abhgefdc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('j') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses36.txt b/RegExpSupport/testData/psi/Charclasses36.txt new file mode 100644 index 000000000000..b5eead6419dd --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses36.txt @@ -0,0 +1,48 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-zA-Z_][a-zA-Z0-9_]*> + RegExpBranchImpl: <[a-zA-Z_][a-zA-Z0-9_]*> + RegExpClassImpl: <[a-zA-Z_]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[a-zA-Z0-9_]*> + RegExpClassImpl: <[a-zA-Z0-9_]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses37.txt b/RegExpSupport/testData/psi/Charclasses37.txt new file mode 100644 index 000000000000..3728221ddfc0 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses37.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <([a-c]+?)c> + RegExpBranchImpl: <([a-c]+?)c> + RegExpGroupImpl: <([a-c]+?)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[a-c]+?> + RegExpBranchImpl: <[a-c]+?> + RegExpClosureImpl: <[a-c]+?> + RegExpClassImpl: <[a-c]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+?> + PsiElement(PLUS)('+') + PsiElement(QUEST)('?') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses38.txt b/RegExpSupport/testData/psi/Charclasses38.txt new file mode 100644 index 000000000000..af9470ea37b3 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses38.txt @@ -0,0 +1,22 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab]*?)b> + RegExpBranchImpl: <([ab]*?)b> + RegExpGroupImpl: <([ab]*?)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]*?> + RegExpBranchImpl: <[ab]*?> + RegExpClosureImpl: <[ab]*?> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*?> + PsiElement(STAR)('*') + PsiElement(QUEST)('?') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses39.txt b/RegExpSupport/testData/psi/Charclasses39.txt new file mode 100644 index 000000000000..9556e8c4a060 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses39.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab]*)b> + RegExpBranchImpl: <([ab]*)b> + RegExpGroupImpl: <([ab]*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]*> + RegExpBranchImpl: <[ab]*> + RegExpClosureImpl: <[ab]*> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses4.txt b/RegExpSupport/testData/psi/Charclasses4.txt new file mode 100644 index 000000000000..31a753b8add6 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses4.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b-a]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses40.txt b/RegExpSupport/testData/psi/Charclasses40.txt new file mode 100644 index 000000000000..9dca6a99b7d0 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses40.txt @@ -0,0 +1,22 @@ +REGEXP_FILE + RegExpPatternImpl: <([ab]??)b> + RegExpBranchImpl: <([ab]??)b> + RegExpGroupImpl: <([ab]??)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[ab]??> + RegExpBranchImpl: <[ab]??> + RegExpClosureImpl: <[ab]??> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + PsiElement(QUEST)('?') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses41.txt b/RegExpSupport/testData/psi/Charclasses41.txt new file mode 100644 index 000000000000..a632d5341b75 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses41.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <(c[ab]?)b> + RegExpBranchImpl: <(c[ab]?)b> + RegExpGroupImpl: <(c[ab]?)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpClosureImpl: <[ab]?> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses42.txt b/RegExpSupport/testData/psi/Charclasses42.txt new file mode 100644 index 000000000000..006ffb81f211 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses42.txt @@ -0,0 +1,24 @@ +REGEXP_FILE + RegExpPatternImpl: <(c[ab]??)b> + RegExpBranchImpl: <(c[ab]??)b> + RegExpGroupImpl: <(c[ab]??)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpClosureImpl: <[ab]??> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + PsiElement(QUEST)('?') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses43.txt b/RegExpSupport/testData/psi/Charclasses43.txt new file mode 100644 index 000000000000..2170f3be9e3f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses43.txt @@ -0,0 +1,24 @@ +REGEXP_FILE + RegExpPatternImpl: <(c[ab]*?)b> + RegExpBranchImpl: <(c[ab]*?)b> + RegExpGroupImpl: <(c[ab]*?)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpClosureImpl: <[ab]*?> + RegExpClassImpl: <[ab]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*?> + PsiElement(STAR)('*') + PsiElement(QUEST)('?') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses44.txt b/RegExpSupport/testData/psi/Charclasses44.txt new file mode 100644 index 000000000000..38a9020359d3 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses44.txt @@ -0,0 +1,30 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <[bcd]+> + RegExpClassImpl: <[bcd]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses45.txt b/RegExpSupport/testData/psi/Charclasses45.txt new file mode 100644 index 000000000000..81b90e4a2640 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses45.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <[k]> + RegExpBranchImpl: <[k]> + RegExpClassImpl: <[k]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses46.txt b/RegExpSupport/testData/psi/Charclasses46.txt new file mode 100644 index 000000000000..0fa5dd1db098 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses46.txt @@ -0,0 +1,30 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <[bcd]*> + RegExpClassImpl: <[bcd]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses47.txt b/RegExpSupport/testData/psi/Charclasses47.txt new file mode 100644 index 000000000000..10f53558b3ab --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses47.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: <[^ab]*> + RegExpBranchImpl: <[^ab]*> + RegExpClosureImpl: <[^ab]*> + RegExpClassImpl: <[^ab]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses48.txt b/RegExpSupport/testData/psi/Charclasses48.txt new file mode 100644 index 000000000000..a696a5a659e1 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses48.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[.]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <.> + PsiElement(CHARACTER)('.') + PsiElement(CLASS_END)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses49.txt b/RegExpSupport/testData/psi/Charclasses49.txt new file mode 100644 index 000000000000..e5ee5646ede9 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses49.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[+*?]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <+*?> + RegExpCharImpl: <+> + PsiElement(CHARACTER)('+') + RegExpCharImpl: <*> + PsiElement(CHARACTER)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('?') + PsiElement(CLASS_END)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses5.txt b/RegExpSupport/testData/psi/Charclasses5.txt new file mode 100644 index 000000000000..b647ac44fce5 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses5.txt @@ -0,0 +1,13 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[-b]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <-b> + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses50.txt b/RegExpSupport/testData/psi/Charclasses50.txt new file mode 100644 index 000000000000..a3f927a7e566 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses50.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[\p{IsDigit}\p{IsAlpha}]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\p{IsDigit}\p{IsAlpha}> + RegExpPropertyImpl: <\p{IsDigit}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('IsDigit') + PsiElement(RBRACE)('}') + RegExpPropertyImpl: <\p{IsAlpha}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('IsAlpha') + PsiElement(RBRACE)('}') + PsiElement(CLASS_END)(']') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses51.txt b/RegExpSupport/testData/psi/Charclasses51.txt new file mode 100644 index 000000000000..03cefc7c5cd0 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses51.txt @@ -0,0 +1,22 @@ +REGEXP_FILE + RegExpPatternImpl: <[\p{L}&&[^\p{Lu}]]> + RegExpBranchImpl: <[\p{L}&&[^\p{Lu}]]> + RegExpClassImpl: <[\p{L}&&[^\p{Lu}]]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: <\p{L}&&[^\p{Lu}]> + RegExpPropertyImpl: <\p{L}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('L') + PsiElement(RBRACE)('}') + PsiElement(ANDAND)('&&') + RegExpClassImpl: <[^\p{Lu}]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpPropertyImpl: <\p{Lu}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('Lu') + PsiElement(RBRACE)('}') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses52.txt b/RegExpSupport/testData/psi/Charclasses52.txt new file mode 100644 index 000000000000..72ea66c9b89c --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses52.txt @@ -0,0 +1,45 @@ +REGEXP_FILE + RegExpPatternImpl: <\pL\pM\pZ\pS\pN\pP\pC\PL\PM\PZ\PS\PN\PP\PC> + RegExpBranchImpl: <\pL\pM\pZ\pS\pN\pP\pC\PL\PM\PZ\PS\PN\PP\PC> + RegExpPropertyImpl: <\pL> + PsiElement(PROPERTY)('\p') + PsiElement(CATEGORY_SHORT_HAND)('L') + RegExpPropertyImpl: <\pM> + PsiElement(PROPERTY)('\p') + PsiElement(CATEGORY_SHORT_HAND)('M') + RegExpPropertyImpl: <\pZ> + PsiElement(PROPERTY)('\p') + PsiElement(CATEGORY_SHORT_HAND)('Z') + RegExpPropertyImpl: <\pS> + PsiElement(PROPERTY)('\p') + PsiElement(CATEGORY_SHORT_HAND)('S') + RegExpPropertyImpl: <\pN> + PsiElement(PROPERTY)('\p') + PsiElement(CATEGORY_SHORT_HAND)('N') + RegExpPropertyImpl: <\pP> + PsiElement(PROPERTY)('\p') + PsiElement(CATEGORY_SHORT_HAND)('P') + RegExpPropertyImpl: <\pC> + PsiElement(PROPERTY)('\p') + PsiElement(CATEGORY_SHORT_HAND)('C') + RegExpPropertyImpl: <\PL> + PsiElement(PROPERTY)('\P') + PsiElement(CATEGORY_SHORT_HAND)('L') + RegExpPropertyImpl: <\PM> + PsiElement(PROPERTY)('\P') + PsiElement(CATEGORY_SHORT_HAND)('M') + RegExpPropertyImpl: <\PZ> + PsiElement(PROPERTY)('\P') + PsiElement(CATEGORY_SHORT_HAND)('Z') + RegExpPropertyImpl: <\PS> + PsiElement(PROPERTY)('\P') + PsiElement(CATEGORY_SHORT_HAND)('S') + RegExpPropertyImpl: <\PN> + PsiElement(PROPERTY)('\P') + PsiElement(CATEGORY_SHORT_HAND)('N') + RegExpPropertyImpl: <\PP> + PsiElement(PROPERTY)('\P') + PsiElement(CATEGORY_SHORT_HAND)('P') + RegExpPropertyImpl: <\PC> + PsiElement(PROPERTY)('\P') + PsiElement(CATEGORY_SHORT_HAND)('C') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses53.txt b/RegExpSupport/testData/psi/Charclasses53.txt new file mode 100644 index 000000000000..64add00482ac --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses53.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <\pA> + RegExpBranchImpl: <\pA> + RegExpPropertyImpl: <\pA> + PsiElement(PROPERTY)('\p') + PsiErrorElement:Character category expected + + PsiElement(CHARACTER)('A') + PsiErrorElement:Unclosed character family + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses54.txt b/RegExpSupport/testData/psi/Charclasses54.txt new file mode 100644 index 000000000000..007addb41c51 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses54.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <\pl> + RegExpBranchImpl: <\pl> + RegExpPropertyImpl: <\pl> + PsiElement(PROPERTY)('\p') + PsiErrorElement:Character category expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Unclosed character family + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses55.txt b/RegExpSupport/testData/psi/Charclasses55.txt new file mode 100644 index 000000000000..aad31e36beed --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses55.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpPropertyImpl: <\p> + PsiElement(PROPERTY)('\p') + PsiErrorElement:Character category expected + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses56.txt b/RegExpSupport/testData/psi/Charclasses56.txt new file mode 100644 index 000000000000..1e2daa61b059 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses56.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpPropertyImpl: <\p{}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiErrorElement:Empty character family + + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses57.txt b/RegExpSupport/testData/psi/Charclasses57.txt new file mode 100644 index 000000000000..224c9a26c50f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses57.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpPropertyImpl: <\p}> + PsiElement(PROPERTY)('\p') + PsiErrorElement:Character category expected + + PsiElement(CHARACTER)('}') + PsiErrorElement:Unclosed character family + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses58.txt b/RegExpSupport/testData/psi/Charclasses58.txt new file mode 100644 index 000000000000..cc1ffe2b170a --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses58.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpPropertyImpl: <\p{123}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiErrorElement:Character family name expected + + PsiElement(NUMBER)('123') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses59.txt b/RegExpSupport/testData/psi/Charclasses59.txt new file mode 100644 index 000000000000..fe2ea17af5d2 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses59.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: <[\p{nothing}]> + RegExpBranchImpl: <[\p{nothing}]> + RegExpClassImpl: <[\p{nothing}]> + PsiElement(CLASS_BEGIN)('[') + RegExpPropertyImpl: <\p{nothing}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('nothing') + PsiElement(RBRACE)('}') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses6.txt b/RegExpSupport/testData/psi/Charclasses6.txt new file mode 100644 index 000000000000..a1d2820c6e7f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses6.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b-]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses60.txt b/RegExpSupport/testData/psi/Charclasses60.txt new file mode 100644 index 000000000000..84f521e149d7 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses60.txt @@ -0,0 +1,74 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpPropertyImpl: <\p{<> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiErrorElement:Character family name expected + + PsiElement(BAD_CHARACTER)('<') + PsiErrorElement:Unclosed character family + + PsiElement(NAME)('error') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(NAME)('descr') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(NAME)('Character') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(NAME)('family') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(NAME)('name') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(NAME)('expected') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('*') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(NAME)('error') + PsiErrorElement:Pattern expected + + PsiElement(BAD_CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(RBRACE)('}') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses61.txt b/RegExpSupport/testData/psi/Charclasses61.txt new file mode 100644 index 000000000000..ffdc25be10fd --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses61.txt @@ -0,0 +1,119 @@ +REGEXP_FILE + RegExpPatternImpl: <[\w-\w]> + RegExpBranchImpl: <[\w-\w]> + RegExpClassImpl: <[\w-\w]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\w-\w> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharRangeImpl: <\w-\w> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + PsiElement(MINUS)('-') + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses62.txt b/RegExpSupport/testData/psi/Charclasses62.txt new file mode 100644 index 000000000000..7cc112d48cc3 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses62.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-\w]> + RegExpBranchImpl: <[a-\w]> + RegExpClassImpl: <[a-\w]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses63.txt b/RegExpSupport/testData/psi/Charclasses63.txt new file mode 100644 index 000000000000..e139eac26005 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses63.txt @@ -0,0 +1,48 @@ +REGEXP_FILE + RegExpPatternImpl: <(?x)abc #foo \q bar +# foo +(?-xi)xyz(?i:ABC)> + RegExpBranchImpl: <(?x)abc #foo \q bar +# foo +(?-xi)xyz(?i:ABC)> + RegExpSetOptionsImpl: <(?x)> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('x') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiWhiteSpace(' ') + PsiComment(COMMENT)('#') + PsiComment(COMMENT)('foo \q bar\n') + PsiComment(COMMENT)('#') + PsiComment(COMMENT)(' foo\n') + RegExpSetOptionsImpl: <(?-xi)> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: <-xi> + PsiElement(OPTIONS_OFF)('-xi') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpGroupImpl: <(?i:ABC)> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('i') + PsiElement(COLON)(':') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + RegExpCharImpl: + PsiElement(CHARACTER)('B') + RegExpCharImpl: + PsiElement(CHARACTER)('C') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses64.txt b/RegExpSupport/testData/psi/Charclasses64.txt new file mode 100644 index 000000000000..919152847aea --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses64.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: <[\ud800\udc00-\udbff\udfff]> + RegExpBranchImpl: <[\ud800\udc00-\udbff\udfff]> + RegExpClassImpl: <[\ud800\udc00-\udbff\udfff]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\ud800\udc00-\udbff\udfff> + RegExpCharImpl: <\ud800> + PsiElement(UNICODE_CHAR)('\ud800') + RegExpCharRangeImpl: <\udc00-\udbff> + RegExpCharImpl: <\udc00> + PsiElement(UNICODE_CHAR)('\udc00') + PsiElement(MINUS)('-') + RegExpCharImpl: <\udbff> + PsiElement(UNICODE_CHAR)('\udbff') + RegExpCharImpl: <\udfff> + PsiElement(UNICODE_CHAR)('\udfff') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses65.txt b/RegExpSupport/testData/psi/Charclasses65.txt new file mode 100644 index 000000000000..260b5f3af5bd --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses65.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\R> + RegExpBranchImpl: <\R> + RegExpSimpleClassImpl: <\R> + PsiElement(CHAR_CLASS)('\R') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses66.txt b/RegExpSupport/testData/psi/Charclasses66.txt new file mode 100644 index 000000000000..9f275f7e0014 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses66.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\X> + RegExpBranchImpl: <\X> + RegExpSimpleClassImpl: <\X> + PsiElement(CHAR_CLASS)('\X') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses67.txt b/RegExpSupport/testData/psi/Charclasses67.txt new file mode 100644 index 000000000000..61ba886fd383 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses67.txt @@ -0,0 +1,405 @@ +REGEXP_FILE + RegExpPatternImpl: <\-[\*\-\[\]\\\+]> + RegExpBranchImpl: <\-[\*\-\[\]\\\+]> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <\-> + PsiElement(REDUNDANT_ESCAPE)('\-') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpClassImpl: <[\*\-\[\]\\\+]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\*\-\[\]\\\+> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <\*> + PsiElement(REDUNDANT_ESCAPE)('\*') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + RegExpCharImpl: <\[> + PsiElement(ESC_CHARACTER)('\[') + RegExpCharImpl: <\]> + PsiElement(REDUNDANT_ESCAPE)('\]') + RegExpCharImpl: <\\> + PsiElement(ESC_CHARACTER)('\\') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <\+> + PsiElement(REDUNDANT_ESCAPE)('\+') + PsiElement(CLASS_END)(']') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses68.txt b/RegExpSupport/testData/psi/Charclasses68.txt new file mode 100644 index 000000000000..448aa042de57 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses68.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <[\b]> + RegExpBranchImpl: <[\b]> + RegExpClassImpl: <[\b]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <\b> + PsiElement(ESC_CHARACTER)('\b') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses7.txt b/RegExpSupport/testData/psi/Charclasses7.txt new file mode 100644 index 000000000000..3a3b84dd3e6e --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses7.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-[b]]> + RegExpBranchImpl: <[a-[b]]> + RegExpClassImpl: <[a-[b]]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + RegExpClassImpl: <[b]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses8.txt b/RegExpSupport/testData/psi/Charclasses8.txt new file mode 100644 index 000000000000..f629c0f3cd0f --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses8.txt @@ -0,0 +1,20 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b&&[cd]]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(ANDAND)('&&') + RegExpClassImpl: <[cd]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Charclasses9.txt b/RegExpSupport/testData/psi/Charclasses9.txt new file mode 100644 index 000000000000..6eea58ee4be4 --- /dev/null +++ b/RegExpSupport/testData/psi/Charclasses9.txt @@ -0,0 +1,24 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClassImpl: <[b-&&[cd]]> + PsiElement(CLASS_BEGIN)('[') + RegExpIntersectionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiErrorElement:Illegal character range + + PsiElement(ANDAND)('&&') + RegExpClassImpl: <[cd]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(CLASS_END)(']') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Complex1.txt b/RegExpSupport/testData/psi/Complex1.txt new file mode 100644 index 000000000000..384828bc184e --- /dev/null +++ b/RegExpSupport/testData/psi/Complex1.txt @@ -0,0 +1,36 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpGroupImpl: <(\w\s+(?:\w\s+\w)+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\w\s+(?:\w\s+\w)+> + RegExpBranchImpl: <\w\s+(?:\w\s+\w)+> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpClosureImpl: <\s+> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <(?:\w\s+\w)+> + RegExpGroupImpl: <(?:\w\s+\w)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\w\s+\w> + RegExpBranchImpl: <\w\s+\w> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpClosureImpl: <\s+> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('z') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Complex2.txt b/RegExpSupport/testData/psi/Complex2.txt new file mode 100644 index 000000000000..a76e017e9f77 --- /dev/null +++ b/RegExpSupport/testData/psi/Complex2.txt @@ -0,0 +1,141 @@ +REGEXP_FILE + RegExpPatternImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*> + RegExpBranchImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*> + RegExpClosureImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?> + RegExpGroupImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpBranchImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpGroupImpl: <([hH][tT]{2}[pP]|[fF][tT][pP])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[hH][tT]{2}[pP]|[fF][tT][pP]> + RegExpBranchImpl: <[hH][tT]{2}[pP]> + RegExpClassImpl: <[hH]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('H') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[tT]{2}> + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <{2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(UNION)('|') + RegExpBranchImpl: <[fF][tT][pP]> + RegExpClassImpl: <[fF]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('F') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <(\.[a-zA-Z0-9\-]+)*> + RegExpGroupImpl: <(\.[a-zA-Z0-9\-]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\.[a-zA-Z0-9\-]+> + RegExpBranchImpl: <\.[a-zA-Z0-9\-]+> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Complex3.txt b/RegExpSupport/testData/psi/Complex3.txt new file mode 100644 index 000000000000..9961bb7d8247 --- /dev/null +++ b/RegExpSupport/testData/psi/Complex3.txt @@ -0,0 +1,141 @@ +REGEXP_FILE + RegExpPatternImpl: <((?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*> + RegExpBranchImpl: <((?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*> + RegExpClosureImpl: <((?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?> + RegExpGroupImpl: <((?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpBranchImpl: <(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpGroupImpl: <(?:[hH][tT]{2}[pP]|[fF][tT][pP])> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <[hH][tT]{2}[pP]|[fF][tT][pP]> + RegExpBranchImpl: <[hH][tT]{2}[pP]> + RegExpClassImpl: <[hH]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('H') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[tT]{2}> + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <{2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(UNION)('|') + RegExpBranchImpl: <[fF][tT][pP]> + RegExpClassImpl: <[fF]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('F') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <(\.[a-zA-Z0-9\-]+)*> + RegExpGroupImpl: <(\.[a-zA-Z0-9\-]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\.[a-zA-Z0-9\-]+> + RegExpBranchImpl: <\.[a-zA-Z0-9\-]+> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Complex4.txt b/RegExpSupport/testData/psi/Complex4.txt new file mode 100644 index 000000000000..f6e8e850f2d7 --- /dev/null +++ b/RegExpSupport/testData/psi/Complex4.txt @@ -0,0 +1,141 @@ +REGEXP_FILE + RegExpPatternImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*> + RegExpBranchImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*> + RegExpClosureImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?> + RegExpGroupImpl: <(([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpBranchImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpGroupImpl: <([hH][tT]{2}[pP]|[fF][tT][pP])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[hH][tT]{2}[pP]|[fF][tT][pP]> + RegExpBranchImpl: <[hH][tT]{2}[pP]> + RegExpClassImpl: <[hH]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('H') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[tT]{2}> + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <{2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(UNION)('|') + RegExpBranchImpl: <[fF][tT][pP]> + RegExpClassImpl: <[fF]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('F') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <(?:\.[a-zA-Z0-9\-]+)*> + RegExpGroupImpl: <(?:\.[a-zA-Z0-9\-]+)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\.[a-zA-Z0-9\-]+> + RegExpBranchImpl: <\.[a-zA-Z0-9\-]+> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Complex5.txt b/RegExpSupport/testData/psi/Complex5.txt new file mode 100644 index 000000000000..250eda3aa671 --- /dev/null +++ b/RegExpSupport/testData/psi/Complex5.txt @@ -0,0 +1,141 @@ +REGEXP_FILE + RegExpPatternImpl: <(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*> + RegExpBranchImpl: <(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*> + RegExpClosureImpl: <(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?> + RegExpGroupImpl: <(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpBranchImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpGroupImpl: <([hH][tT]{2}[pP]|[fF][tT][pP])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[hH][tT]{2}[pP]|[fF][tT][pP]> + RegExpBranchImpl: <[hH][tT]{2}[pP]> + RegExpClassImpl: <[hH]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('H') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[tT]{2}> + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <{2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(UNION)('|') + RegExpBranchImpl: <[fF][tT][pP]> + RegExpClassImpl: <[fF]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('F') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <(\.[a-zA-Z0-9\-]+)*> + RegExpGroupImpl: <(\.[a-zA-Z0-9\-]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\.[a-zA-Z0-9\-]+> + RegExpBranchImpl: <\.[a-zA-Z0-9\-]+> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Complex6.txt b/RegExpSupport/testData/psi/Complex6.txt new file mode 100644 index 000000000000..1407fa3699e1 --- /dev/null +++ b/RegExpSupport/testData/psi/Complex6.txt @@ -0,0 +1,145 @@ +REGEXP_FILE + RegExpPatternImpl: <^(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*$> + RegExpBranchImpl: <^(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*$> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpClosureImpl: <(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?> + RegExpGroupImpl: <(?:([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpBranchImpl: <([hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpGroupImpl: <([hH][tT]{2}[pP]|[fF][tT][pP])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[hH][tT]{2}[pP]|[fF][tT][pP]> + RegExpBranchImpl: <[hH][tT]{2}[pP]> + RegExpClassImpl: <[hH]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('H') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[tT]{2}> + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <{2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(UNION)('|') + RegExpBranchImpl: <[fF][tT][pP]> + RegExpClassImpl: <[fF]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('F') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <(\.[a-zA-Z0-9\-]+)*> + RegExpGroupImpl: <(\.[a-zA-Z0-9\-]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\.[a-zA-Z0-9\-]+> + RegExpBranchImpl: <\.[a-zA-Z0-9\-]+> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Complex7.txt b/RegExpSupport/testData/psi/Complex7.txt new file mode 100644 index 000000000000..e5c9e1e03372 --- /dev/null +++ b/RegExpSupport/testData/psi/Complex7.txt @@ -0,0 +1,145 @@ +REGEXP_FILE + RegExpPatternImpl: <^(?:(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*$> + RegExpBranchImpl: <^(?:(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*$> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpClosureImpl: <(?:(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)?> + RegExpGroupImpl: <(?:(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpBranchImpl: <(?:[hH][tT]{2}[pP]|[fF][tT][pP]):\/\/> + RegExpGroupImpl: <(?:[hH][tT]{2}[pP]|[fF][tT][pP])> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <[hH][tT]{2}[pP]|[fF][tT][pP]> + RegExpBranchImpl: <[hH][tT]{2}[pP]> + RegExpClassImpl: <[hH]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('H') + PsiElement(CLASS_END)(']') + RegExpClosureImpl: <[tT]{2}> + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <{2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(UNION)('|') + RegExpBranchImpl: <[fF][tT][pP]> + RegExpClassImpl: <[fF]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('F') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[tT]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('T') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[pP]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl:

+ PsiElement(CHARACTER)('P') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + RegExpCharImpl: <\/> + PsiElement(REDUNDANT_ESCAPE)('\/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <(?:\.[a-zA-Z0-9\-]+)*> + RegExpGroupImpl: <(?:\.[a-zA-Z0-9\-]+)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\.[a-zA-Z0-9\-]+> + RegExpBranchImpl: <\.[a-zA-Z0-9\-]+> + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + RegExpClosureImpl: <[a-zA-Z0-9\-]+> + RegExpClassImpl: <[a-zA-Z0-9\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes1.txt b/RegExpSupport/testData/psi/Escapes1.txt new file mode 100644 index 000000000000..4f6529514960 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes1.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + RegExpPatternImpl: <\q> + RegExpBranchImpl: <\q> + RegExpCharImpl: <\q> + PsiErrorElement:Illegal/unsupported escape sequence + + PsiElement(INVALID_CHARACTER_ESCAPE_TOKEN)('\q') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes10.txt b/RegExpSupport/testData/psi/Escapes10.txt new file mode 100644 index 000000000000..cf491353fea6 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes10.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\x4a> + RegExpBranchImpl: <\x4a> + RegExpCharImpl: <\x4a> + PsiElement(HEX_CHAR)('\x4a') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes11.txt b/RegExpSupport/testData/psi/Escapes11.txt new file mode 100644 index 000000000000..2f40e2391ef9 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes11.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\x{0}> + RegExpBranchImpl: <\x{0}> + RegExpCharImpl: <\x{0}> + PsiElement(HEX_CHAR)('\x{0}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes12.txt b/RegExpSupport/testData/psi/Escapes12.txt new file mode 100644 index 000000000000..1455eda753f3 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes12.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\x{2011F}> + RegExpBranchImpl: <\x{2011F}> + RegExpCharImpl: <\x{2011F}> + PsiElement(HEX_CHAR)('\x{2011F}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes13.txt b/RegExpSupport/testData/psi/Escapes13.txt new file mode 100644 index 000000000000..292b75530d1b --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes13.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: <[\x4a-\x4b]> + RegExpBranchImpl: <[\x4a-\x4b]> + RegExpClassImpl: <[\x4a-\x4b]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <\x4a-\x4b> + RegExpCharImpl: <\x4a> + PsiElement(HEX_CHAR)('\x4a') + PsiElement(MINUS)('-') + RegExpCharImpl: <\x4b> + PsiElement(HEX_CHAR)('\x4b') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes14.txt b/RegExpSupport/testData/psi/Escapes14.txt new file mode 100644 index 000000000000..1efd5b159450 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes14.txt @@ -0,0 +1,119 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-a]> + RegExpBranchImpl: <[a-a]> + RegExpClassImpl: <[a-a]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <a-a> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes15.txt b/RegExpSupport/testData/psi/Escapes15.txt new file mode 100644 index 000000000000..51fb5ba1813e --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes15.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: <[\x4a-\x3f]> + RegExpBranchImpl: <[\x4a-\x3f]> + RegExpClassImpl: <[\x4a-\x3f]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <\x4a-\x3f> + RegExpCharImpl: <\x4a> + PsiElement(HEX_CHAR)('\x4a') + PsiElement(MINUS)('-') + RegExpCharImpl: <\x3f> + PsiElement(HEX_CHAR)('\x3f') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes16.txt b/RegExpSupport/testData/psi/Escapes16.txt new file mode 100644 index 000000000000..24ded2e35dfd --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes16.txt @@ -0,0 +1,135 @@ +REGEXP_FILE + RegExpPatternImpl: <[\udbff\udfff-\ud800\udc00]> + RegExpBranchImpl: <[\udbff\udfff-\ud800\udc00]> + RegExpClassImpl: <[\udbff\udfff-\ud800\udc00]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\udbff\udfff-\ud800\udc00> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('I') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <(> + PsiElement(CHARACTER)('(') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <\udbff> + PsiElement(UNICODE_CHAR)('\udbff') + RegExpCharRangeImpl: <\udfff-\ud800> + RegExpCharImpl: <\udfff> + PsiElement(UNICODE_CHAR)('\udfff') + PsiElement(MINUS)('-') + RegExpCharImpl: <\ud800> + PsiElement(UNICODE_CHAR)('\ud800') + RegExpCharImpl: <\udc00> + PsiElement(UNICODE_CHAR)('\udc00') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes17.txt b/RegExpSupport/testData/psi/Escapes17.txt new file mode 100644 index 000000000000..919152847aea --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes17.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: <[\ud800\udc00-\udbff\udfff]> + RegExpBranchImpl: <[\ud800\udc00-\udbff\udfff]> + RegExpClassImpl: <[\ud800\udc00-\udbff\udfff]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\ud800\udc00-\udbff\udfff> + RegExpCharImpl: <\ud800> + PsiElement(UNICODE_CHAR)('\ud800') + RegExpCharRangeImpl: <\udc00-\udbff> + RegExpCharImpl: <\udc00> + PsiElement(UNICODE_CHAR)('\udc00') + PsiElement(MINUS)('-') + RegExpCharImpl: <\udbff> + PsiElement(UNICODE_CHAR)('\udbff') + RegExpCharImpl: <\udfff> + PsiElement(UNICODE_CHAR)('\udfff') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes18.txt b/RegExpSupport/testData/psi/Escapes18.txt new file mode 100644 index 000000000000..eb6c0eb7051e --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes18.txt @@ -0,0 +1,131 @@ +REGEXP_FILE + RegExpPatternImpl: <[z-a]> + RegExpBranchImpl: <[z-a]> + RegExpClassImpl: <[z-a]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <z-a> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('I') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <(> + PsiElement(CHARACTER)('(') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('z') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes19.txt b/RegExpSupport/testData/psi/Escapes19.txt new file mode 100644 index 000000000000..30cdb4045144 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes19.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-z]> + RegExpBranchImpl: <[a-z]> + RegExpClassImpl: <[a-z]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes2.txt b/RegExpSupport/testData/psi/Escapes2.txt new file mode 100644 index 000000000000..49f5f3a9f978 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes2.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\#> + RegExpBranchImpl: <\#> + RegExpCharImpl: <\#> + PsiElement(REDUNDANT_ESCAPE)('\#') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes20.txt b/RegExpSupport/testData/psi/Escapes20.txt new file mode 100644 index 000000000000..1abe401046b8 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes20.txt @@ -0,0 +1,35 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiWhiteSpace('\Q') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('?') + RegExpCharImpl: <*> + PsiElement(CHARACTER)('*') + RegExpCharImpl: <+> + PsiElement(CHARACTER)('+') + RegExpCharImpl: <.> + PsiElement(CHARACTER)('.') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <[> + PsiElement(CHARACTER)('[') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + PsiWhiteSpace('\E') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes21.txt b/RegExpSupport/testData/psi/Escapes21.txt new file mode 100644 index 000000000000..dfae40de62dc --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes21.txt @@ -0,0 +1,40 @@ +REGEXP_FILE + RegExpPatternImpl: <(a\Qabc?*+.))]][]\Eb)> + RegExpBranchImpl: <(a\Qabc?*+.))]][]\Eb)> + RegExpGroupImpl: <(a\Qabc?*+.))]][]\Eb)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiWhiteSpace('\Q') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('?') + RegExpCharImpl: <*> + PsiElement(CHARACTER)('*') + RegExpCharImpl: <+> + PsiElement(CHARACTER)('+') + RegExpCharImpl: <.> + PsiElement(CHARACTER)('.') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <[> + PsiElement(CHARACTER)('[') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + PsiWhiteSpace('\E') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes22.txt b/RegExpSupport/testData/psi/Escapes22.txt new file mode 100644 index 000000000000..afb07da29ead --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes22.txt @@ -0,0 +1,455 @@ +REGEXP_FILE + RegExpPatternImpl: <[\Qabc?*+.))]][]\E]> + RegExpBranchImpl: <[\Qabc?*+.))]][]\E]> + RegExpClassImpl: <[\Qabc?*+.))]][]\E]> + PsiElement(CLASS_BEGIN)('[') + PsiWhiteSpace('\Q') + RegExpUnionImpl: )]][]> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('?') + RegExpCharImpl: <*> + PsiElement(CHARACTER)('*') + RegExpCharImpl: <+> + PsiElement(CHARACTER)('+') + RegExpCharImpl: <.> + PsiElement(CHARACTER)('.') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('D') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('D') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <[> + PsiElement(CHARACTER)('[') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('D') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiWhiteSpace('\E') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes23.txt b/RegExpSupport/testData/psi/Escapes23.txt new file mode 100644 index 000000000000..22f8ab5d78cd --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes23.txt @@ -0,0 +1,36 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiWhiteSpace('\Q') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('?') + RegExpCharImpl: <*> + PsiElement(CHARACTER)('*') + RegExpCharImpl: <+> + PsiElement(CHARACTER)('+') + RegExpCharImpl: <.> + PsiElement(CHARACTER)('.') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <)> + PsiElement(CHARACTER)(')') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + RegExpCharImpl: <[> + PsiElement(CHARACTER)('[') + RegExpCharImpl: <]> + PsiElement(CHARACTER)(']') + PsiErrorElement:Unmatched closing ')' + + PsiWhiteSpace('\E') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes24.txt b/RegExpSupport/testData/psi/Escapes24.txt new file mode 100644 index 000000000000..549838a1e6fe --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes24.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + PsiWhiteSpace('\Q') + RegExpPatternImpl: <\j> + RegExpBranchImpl: <\j> + RegExpCharImpl: <\> + PsiElement(CHARACTER)('\') + RegExpCharImpl: + PsiElement(CHARACTER)('j') + PsiWhiteSpace('\E') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes25.txt b/RegExpSupport/testData/psi/Escapes25.txt new file mode 100644 index 000000000000..f2ca58dfc21e --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes25.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\c0> + RegExpBranchImpl: <\c0> + RegExpCharImpl: <\c0> + PsiElement(CTRL)('\c0') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes3.txt b/RegExpSupport/testData/psi/Escapes3.txt new file mode 100644 index 000000000000..4d1eb470245a --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes3.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <\> + PsiErrorElement:Illegal/unsupported escape sequence + + PsiElement(INVALID_CHARACTER_ESCAPE_TOKEN)('\') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes4.txt b/RegExpSupport/testData/psi/Escapes4.txt new file mode 100644 index 000000000000..dde6682b5f68 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes4.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <\(> + PsiElement(ESC_CHARACTER)('\(') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes5.txt b/RegExpSupport/testData/psi/Escapes5.txt new file mode 100644 index 000000000000..ad56b55e0b1a --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes5.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <\(*> + RegExpCharImpl: <\(> + PsiElement(ESC_CHARACTER)('\(') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes6.txt b/RegExpSupport/testData/psi/Escapes6.txt new file mode 100644 index 000000000000..e0f5ca34501e --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes6.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <\\> + PsiElement(ESC_CHARACTER)('\\') + RegExpCharImpl: + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes7.txt b/RegExpSupport/testData/psi/Escapes7.txt new file mode 100644 index 000000000000..71dfc14820f1 --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes7.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\u004a> + RegExpBranchImpl: <\u004a> + RegExpCharImpl: <\u004a> + PsiElement(UNICODE_CHAR)('\u004a') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes8.txt b/RegExpSupport/testData/psi/Escapes8.txt new file mode 100644 index 000000000000..102406817dca --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes8.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\0123> + RegExpBranchImpl: <\0123> + RegExpCharImpl: <\0123> + PsiElement(OCT_CHAR)('\0123') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Escapes9.txt b/RegExpSupport/testData/psi/Escapes9.txt new file mode 100644 index 000000000000..4ae56fd713da --- /dev/null +++ b/RegExpSupport/testData/psi/Escapes9.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + RegExpPatternImpl: <\0> + RegExpBranchImpl: <\0> + RegExpCharImpl: <\0> + PsiElement(BAD_OCT_VALUE)('\0') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups1.txt b/RegExpSupport/testData/psi/Groups1.txt new file mode 100644 index 000000000000..7f68b460193c --- /dev/null +++ b/RegExpSupport/testData/psi/Groups1.txt @@ -0,0 +1,13 @@ +REGEXP_FILE + RegExpPatternImpl: <()ef> + RegExpBranchImpl: <()ef> + RegExpGroupImpl: <()> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <> + RegExpBranchImpl: <> + + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups10.txt b/RegExpSupport/testData/psi/Groups10.txt new file mode 100644 index 000000000000..c243c0b96f27 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups10.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: <(a|)*> + RegExpBranchImpl: <(a|)*> + RegExpClosureImpl: <(a|)*> + RegExpGroupImpl: <(a|)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(UNION)('|') + RegExpBranchImpl: <> + + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups11.txt b/RegExpSupport/testData/psi/Groups11.txt new file mode 100644 index 000000000000..71fcbfc8c403 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups11.txt @@ -0,0 +1,20 @@ +REGEXP_FILE + RegExpPatternImpl: <(ab|cd)e> + RegExpBranchImpl: <(ab|cd)e> + RegExpGroupImpl: <(ab|cd)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups12.txt b/RegExpSupport/testData/psi/Groups12.txt new file mode 100644 index 000000000000..941b52848bd6 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups12.txt @@ -0,0 +1,25 @@ +REGEXP_FILE + RegExpPatternImpl: <(.*)c(.*)> + RegExpBranchImpl: <(.*)c(.*)> + RegExpGroupImpl: <(.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.*> + RegExpBranchImpl: <.*> + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpGroupImpl: <(.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.*> + RegExpBranchImpl: <.*> + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups13.txt b/RegExpSupport/testData/psi/Groups13.txt new file mode 100644 index 000000000000..858a7c2d2d8a --- /dev/null +++ b/RegExpSupport/testData/psi/Groups13.txt @@ -0,0 +1,31 @@ +REGEXP_FILE + RegExpPatternImpl: <\((.*), (.*)\)> + RegExpBranchImpl: <\((.*), (.*)\)> + RegExpCharImpl: <\(> + PsiElement(ESC_CHARACTER)('\(') + RegExpGroupImpl: <(.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.*> + RegExpBranchImpl: <.*> + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <,> + PsiElement(CHARACTER)(',') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpGroupImpl: <(.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.*> + RegExpBranchImpl: <.*> + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <\)> + PsiElement(ESC_CHARACTER)('\)') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups14.txt b/RegExpSupport/testData/psi/Groups14.txt new file mode 100644 index 000000000000..19aee519a2e5 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups14.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpGroupImpl: <(bc)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('d') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups15.txt b/RegExpSupport/testData/psi/Groups15.txt new file mode 100644 index 000000000000..6ed5bb32c226 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups15.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <([abc])*d> + RegExpBranchImpl: <([abc])*d> + RegExpClosureImpl: <([abc])*> + RegExpGroupImpl: <([abc])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[abc]> + RegExpBranchImpl: <[abc]> + RegExpClassImpl: <[abc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('d') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups16.txt b/RegExpSupport/testData/psi/Groups16.txt new file mode 100644 index 000000000000..b98d7e41423c --- /dev/null +++ b/RegExpSupport/testData/psi/Groups16.txt @@ -0,0 +1,56 @@ +REGEXP_FILE + RegExpPatternImpl: <((((((((((a)))))))))> + RegExpBranchImpl: <((((((((((a)))))))))> + RegExpGroupImpl: <((((((((((a)))))))))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(((((((((a)))))))))> + RegExpBranchImpl: <(((((((((a)))))))))> + RegExpGroupImpl: <(((((((((a)))))))))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <((((((((a))))))))> + RegExpBranchImpl: <((((((((a))))))))> + RegExpGroupImpl: <((((((((a))))))))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(((((((a)))))))> + RegExpBranchImpl: <(((((((a)))))))> + RegExpGroupImpl: <(((((((a)))))))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <((((((a))))))> + RegExpBranchImpl: <((((((a))))))> + RegExpGroupImpl: <((((((a))))))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(((((a)))))> + RegExpBranchImpl: <(((((a)))))> + RegExpGroupImpl: <(((((a)))))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <((((a))))> + RegExpBranchImpl: <((((a))))> + RegExpGroupImpl: <((((a))))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(((a)))> + RegExpBranchImpl: <(((a)))> + RegExpGroupImpl: <(((a)))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <((a))> + RegExpBranchImpl: <((a))> + RegExpGroupImpl: <((a))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(a)> + RegExpBranchImpl: <(a)> + RegExpGroupImpl: <(a)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + PsiErrorElement:Unclosed group + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups17.txt b/RegExpSupport/testData/psi/Groups17.txt new file mode 100644 index 000000000000..3f4bcc9d3a2f --- /dev/null +++ b/RegExpSupport/testData/psi/Groups17.txt @@ -0,0 +1,27 @@ +REGEXP_FILE + RegExpPatternImpl: <([abc])*bcd> + RegExpBranchImpl: <([abc])*bcd> + RegExpClosureImpl: <([abc])*> + RegExpGroupImpl: <([abc])> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[abc]> + RegExpBranchImpl: <[abc]> + RegExpClassImpl: <[abc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups18.txt b/RegExpSupport/testData/psi/Groups18.txt new file mode 100644 index 000000000000..bb4f41fb088a --- /dev/null +++ b/RegExpSupport/testData/psi/Groups18.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: <(a|b)c*d> + RegExpBranchImpl: <(a|b)c*d> + RegExpGroupImpl: <(a|b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('d') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups19.txt b/RegExpSupport/testData/psi/Groups19.txt new file mode 100644 index 000000000000..3b2571eaf6a9 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups19.txt @@ -0,0 +1,26 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpGroupImpl: <([bc]*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[bc]*> + RegExpBranchImpl: <[bc]*> + RegExpClosureImpl: <[bc]*> + RegExpClassImpl: <[bc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups2.txt b/RegExpSupport/testData/psi/Groups2.txt new file mode 100644 index 000000000000..6854902aebb6 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups2.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: <()*> + RegExpBranchImpl: <()*> + RegExpClosureImpl: <()*> + RegExpGroupImpl: <()> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <> + RegExpBranchImpl: <> + + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups20.txt b/RegExpSupport/testData/psi/Groups20.txt new file mode 100644 index 000000000000..f421097087bf --- /dev/null +++ b/RegExpSupport/testData/psi/Groups20.txt @@ -0,0 +1,31 @@ +REGEXP_FILE + RegExpPatternImpl: <((a)(b)c)(d)> + RegExpBranchImpl: <((a)(b)c)(d)> + RegExpGroupImpl: <((a)(b)c)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(a)(b)c> + RegExpBranchImpl: <(a)(b)c> + RegExpGroupImpl: <(a)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(d)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups21.txt b/RegExpSupport/testData/psi/Groups21.txt new file mode 100644 index 000000000000..f245b4580df5 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups21.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <(ab|a)b*c> + RegExpBranchImpl: <(ab|a)b*c> + RegExpGroupImpl: <(ab|a)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups22.txt b/RegExpSupport/testData/psi/Groups22.txt new file mode 100644 index 000000000000..13690415925f --- /dev/null +++ b/RegExpSupport/testData/psi/Groups22.txt @@ -0,0 +1,25 @@ +REGEXP_FILE + RegExpPatternImpl: <(ab|ab*)bc> + RegExpBranchImpl: <(ab|ab*)bc> + RegExpGroupImpl: <(ab|ab*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups23.txt b/RegExpSupport/testData/psi/Groups23.txt new file mode 100644 index 000000000000..9349f86e1cc8 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups23.txt @@ -0,0 +1,28 @@ +REGEXP_FILE + RegExpPatternImpl: <(a|b|c|d|e)f> + RegExpBranchImpl: <(a|b|c|d|e)f> + RegExpGroupImpl: <(a|b|c|d|e)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('e') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('f') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups24.txt b/RegExpSupport/testData/psi/Groups24.txt new file mode 100644 index 000000000000..1083314fb3c5 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups24.txt @@ -0,0 +1,33 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpGroupImpl: <([bc]*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[bc]*> + RegExpBranchImpl: <[bc]*> + RegExpClosureImpl: <[bc]*> + RegExpClassImpl: <[bc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(c*d)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups25.txt b/RegExpSupport/testData/psi/Groups25.txt new file mode 100644 index 000000000000..c64e78017ea0 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups25.txt @@ -0,0 +1,33 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpGroupImpl: <([bc]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[bc]+> + RegExpBranchImpl: <[bc]+> + RegExpClosureImpl: <[bc]+> + RegExpClassImpl: <[bc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(c*d)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups26.txt b/RegExpSupport/testData/psi/Groups26.txt new file mode 100644 index 000000000000..edaece4d0fde --- /dev/null +++ b/RegExpSupport/testData/psi/Groups26.txt @@ -0,0 +1,33 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpGroupImpl: <([bc]*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[bc]*> + RegExpBranchImpl: <[bc]*> + RegExpClosureImpl: <[bc]*> + RegExpClassImpl: <[bc]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(c+d)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups27.txt b/RegExpSupport/testData/psi/Groups27.txt new file mode 100644 index 000000000000..d6bd43f88264 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups27.txt @@ -0,0 +1,20 @@ +REGEXP_FILE + RegExpPatternImpl: <(a+|b)*> + RegExpBranchImpl: <(a+|b)*> + RegExpClosureImpl: <(a+|b)*> + RegExpGroupImpl: <(a+|b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups28.txt b/RegExpSupport/testData/psi/Groups28.txt new file mode 100644 index 000000000000..e74157888de2 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups28.txt @@ -0,0 +1,20 @@ +REGEXP_FILE + RegExpPatternImpl: <(a+|b)+> + RegExpBranchImpl: <(a+|b)+> + RegExpClosureImpl: <(a+|b)+> + RegExpGroupImpl: <(a+|b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups29.txt b/RegExpSupport/testData/psi/Groups29.txt new file mode 100644 index 000000000000..db8b92506a22 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups29.txt @@ -0,0 +1,20 @@ +REGEXP_FILE + RegExpPatternImpl: <(a+|b)?> + RegExpBranchImpl: <(a+|b)?> + RegExpClosureImpl: <(a+|b)?> + RegExpGroupImpl: <(a+|b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups3.txt b/RegExpSupport/testData/psi/Groups3.txt new file mode 100644 index 000000000000..00c8135ac483 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups3.txt @@ -0,0 +1,87 @@ +REGEXP_FILE + RegExpPatternImpl: <()> + RegExpBranchImpl: <()> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('E') + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpGroupImpl: <()> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <> + RegExpBranchImpl: <> + + PsiElement(GROUP_END)(')') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups30.txt b/RegExpSupport/testData/psi/Groups30.txt new file mode 100644 index 000000000000..1202e7a56035 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups30.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: <(^*> + RegExpBranchImpl: <(^*> + RegExpGroupImpl: <(^*> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <^*> + RegExpBranchImpl: <^*> + RegExpClosureImpl: <^*> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiErrorElement:Unclosed group + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups31.txt b/RegExpSupport/testData/psi/Groups31.txt new file mode 100644 index 000000000000..10f206a2f8d1 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups31.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <> + RegExpBranchImpl: <> + + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(GROUP_BEGIN)('(') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups32.txt b/RegExpSupport/testData/psi/Groups32.txt new file mode 100644 index 000000000000..c5ecfe4e79af --- /dev/null +++ b/RegExpSupport/testData/psi/Groups32.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: <(?i:*> + RegExpBranchImpl: <(?i:*> + RegExpClosureImpl: <(?i:*> + RegExpGroupImpl: <(?i:> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('i') + PsiElement(COLON)(':') + PsiErrorElement:Dangling metacharacter + + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups33.txt b/RegExpSupport/testData/psi/Groups33.txt new file mode 100644 index 000000000000..d79a7a19f271 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups33.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: <(?[a-c])\1> + RegExpBranchImpl: <(?[a-c])\1> + RegExpGroupImpl: <(?[a-c])> + PsiElement(RUBY_NAMED_GROUP)('(?<') + PsiElement(NAME)('asdf') + PsiElement(GT)('>') + RegExpPatternImpl: <[a-c]> + RegExpBranchImpl: <[a-c]> + RegExpClassImpl: <[a-c]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups34.txt b/RegExpSupport/testData/psi/Groups34.txt new file mode 100644 index 000000000000..a90caea1574b --- /dev/null +++ b/RegExpSupport/testData/psi/Groups34.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <(?[a-c])\k> + RegExpBranchImpl: <(?[a-c])\k> + RegExpGroupImpl: <(?[a-c])> + PsiElement(RUBY_NAMED_GROUP)('(?<') + PsiElement(NAME)('asdf') + PsiElement(GT)('>') + RegExpPatternImpl: <[a-c]> + RegExpBranchImpl: <[a-c]> + RegExpClassImpl: <[a-c]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(CLASS_END)(']') + PsiElement(GROUP_END)(')') + RegExpNamedGroupRefImpl: <\k> + PsiElement(RUBY_NAMED_GROUP_REF)('\k<') + PsiElement(NAME)('asdf') + PsiElement(GT)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups35.txt b/RegExpSupport/testData/psi/Groups35.txt new file mode 100644 index 000000000000..681cfee4c55d --- /dev/null +++ b/RegExpSupport/testData/psi/Groups35.txt @@ -0,0 +1,119 @@ +REGEXP_FILE + RegExpPatternImpl: <\k> + RegExpBranchImpl: <\k> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('U') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('v') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpNamedGroupRefImpl: <\k> + PsiElement(RUBY_NAMED_GROUP_REF)('\k<') + PsiElement(NAME)('adsf') + PsiElement(GT)('>') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups4.txt b/RegExpSupport/testData/psi/Groups4.txt new file mode 100644 index 000000000000..541cc15802e2 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups4.txt @@ -0,0 +1,90 @@ +REGEXP_FILE + RegExpPatternImpl: <(|)> + RegExpBranchImpl: <(|)> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('E') + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpGroupImpl: <(|)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <|> + RegExpBranchImpl: <> + + PsiElement(UNION)('|') + RegExpBranchImpl: <> + + PsiElement(GROUP_END)(')') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups5.txt b/RegExpSupport/testData/psi/Groups5.txt new file mode 100644 index 000000000000..e3fae6eccf9a --- /dev/null +++ b/RegExpSupport/testData/psi/Groups5.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: <(*> + RegExpBranchImpl: <(*> + RegExpClosureImpl: <(*> + RegExpGroupImpl: <(> + PsiElement(GROUP_BEGIN)('(') + PsiErrorElement:Dangling metacharacter + + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups6.txt b/RegExpSupport/testData/psi/Groups6.txt new file mode 100644 index 000000000000..2460aef2b294 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups6.txt @@ -0,0 +1,117 @@ +REGEXP_FILE + RegExpPatternImpl: <((a))> + RegExpBranchImpl: <((a))> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpGroupImpl: <((a))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(a)> + RegExpBranchImpl: <(a)> + RegExpGroupImpl: <(a)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups7.txt b/RegExpSupport/testData/psi/Groups7.txt new file mode 100644 index 000000000000..c9a9936f65fc --- /dev/null +++ b/RegExpSupport/testData/psi/Groups7.txt @@ -0,0 +1,19 @@ +REGEXP_FILE + RegExpPatternImpl: <(a)b(c)> + RegExpBranchImpl: <(a)b(c)> + RegExpGroupImpl: <(a)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpGroupImpl: <(c)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups8.txt b/RegExpSupport/testData/psi/Groups8.txt new file mode 100644 index 000000000000..5015c471682c --- /dev/null +++ b/RegExpSupport/testData/psi/Groups8.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: <(a*)*> + RegExpBranchImpl: <(a*)*> + RegExpClosureImpl: <(a*)*> + RegExpGroupImpl: <(a*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups9.txt b/RegExpSupport/testData/psi/Groups9.txt new file mode 100644 index 000000000000..d7210500dec8 --- /dev/null +++ b/RegExpSupport/testData/psi/Groups9.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: <(a*)+> + RegExpBranchImpl: <(a*)+> + RegExpClosureImpl: <(a*)+> + RegExpGroupImpl: <(a*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete1.txt b/RegExpSupport/testData/psi/Incomplete1.txt new file mode 100644 index 000000000000..0f119b26086a --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete1.txt @@ -0,0 +1,13 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\> + PsiErrorElement:Illegal/unsupported escape sequence + + PsiElement(INVALID_CHARACTER_ESCAPE_TOKEN)('\') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete10.txt b/RegExpSupport/testData/psi/Incomplete10.txt new file mode 100644 index 000000000000..ddf78fad4b24 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete10.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + PsiWhiteSpace('\Q') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete11.txt b/RegExpSupport/testData/psi/Incomplete11.txt new file mode 100644 index 000000000000..e02af0ebb2ec --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete11.txt @@ -0,0 +1,5 @@ +REGEXP_FILE + PsiWhiteSpace('\Q') + RegExpPatternImpl: <> + RegExpBranchImpl: <> + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete12.txt b/RegExpSupport/testData/psi/Incomplete12.txt new file mode 100644 index 000000000000..e898f8b55c16 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete12.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + RegExpPatternImpl: <\E> + RegExpBranchImpl: <\E> + RegExpCharImpl: <\E> + PsiErrorElement:Illegal/unsupported escape sequence + + PsiElement(INVALID_CHARACTER_ESCAPE_TOKEN)('\E') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete13.txt b/RegExpSupport/testData/psi/Incomplete13.txt new file mode 100644 index 000000000000..709031d1e915 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete13.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(UNION)('|') + PsiErrorElement:Dangling metacharacter + + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete2.txt b/RegExpSupport/testData/psi/Incomplete2.txt new file mode 100644 index 000000000000..a73e2f6d3028 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete2.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpClassImpl: <[\> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <\> + PsiElement(INVALID_CHARACTER_ESCAPE_TOKEN)('\') + PsiErrorElement:Unclosed character class + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete3.txt b/RegExpSupport/testData/psi/Incomplete3.txt new file mode 100644 index 000000000000..38cadf8a32b4 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete3.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\x> + PsiElement(BAD_HEX_VALUE)('\x') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete4.txt b/RegExpSupport/testData/psi/Incomplete4.txt new file mode 100644 index 000000000000..c4a5b550564b --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete4.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\x1> + PsiElement(BAD_HEX_VALUE)('\x1') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete5.txt b/RegExpSupport/testData/psi/Incomplete5.txt new file mode 100644 index 000000000000..b9b81d1c3cf3 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete5.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\x{> + PsiElement(BAD_HEX_VALUE)('\x{') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete6.txt b/RegExpSupport/testData/psi/Incomplete6.txt new file mode 100644 index 000000000000..8ffec1fd54ff --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete6.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\x{}> + PsiElement(BAD_HEX_VALUE)('\x{}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete7.txt b/RegExpSupport/testData/psi/Incomplete7.txt new file mode 100644 index 000000000000..73db4847a39a --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete7.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\x{0> + PsiElement(BAD_HEX_VALUE)('\x{0') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete8.txt b/RegExpSupport/testData/psi/Incomplete8.txt new file mode 100644 index 000000000000..45a0ddd32cc5 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete8.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\u> + PsiElement(INVALID_UNICODE_ESCAPE_TOKEN)('\u') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Incomplete9.txt b/RegExpSupport/testData/psi/Incomplete9.txt new file mode 100644 index 000000000000..7830c2437f24 --- /dev/null +++ b/RegExpSupport/testData/psi/Incomplete9.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: <\u22> + PsiElement(INVALID_UNICODE_ESCAPE_TOKEN)('\u22') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars1.txt b/RegExpSupport/testData/psi/Namedchars1.txt new file mode 100644 index 000000000000..b149083c542a --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars1.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpClosureImpl: <\s+> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars10.txt b/RegExpSupport/testData/psi/Namedchars10.txt new file mode 100644 index 000000000000..8d0f60e2d3f6 --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars10.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: <\p{unknown}+> + RegExpBranchImpl: <\p{unknown}+> + RegExpClosureImpl: <\p{unknown}+> + RegExpPropertyImpl: <\p{unknown}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('unknown') + PsiElement(RBRACE)('}') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars2.txt b/RegExpSupport/testData/psi/Namedchars2.txt new file mode 100644 index 000000000000..51130c5e0fe0 --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars2.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <\d+> + RegExpBranchImpl: <\d+> + RegExpClosureImpl: <\d+> + RegExpSimpleClassImpl: <\d> + PsiElement(CHAR_CLASS)('\d') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars3.txt b/RegExpSupport/testData/psi/Namedchars3.txt new file mode 100644 index 000000000000..6548dada3bb1 --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars3.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: <^\p{javaJavaIdentifierStart}+\p{javaJavaIdentifierPart}+$> + RegExpBranchImpl: <^\p{javaJavaIdentifierStart}+\p{javaJavaIdentifierPart}+$> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpClosureImpl: <\p{javaJavaIdentifierStart}+> + RegExpPropertyImpl: <\p{javaJavaIdentifierStart}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('javaJavaIdentifierStart') + PsiElement(RBRACE)('}') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: <\p{javaJavaIdentifierPart}+> + RegExpPropertyImpl: <\p{javaJavaIdentifierPart}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('javaJavaIdentifierPart') + PsiElement(RBRACE)('}') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars4.txt b/RegExpSupport/testData/psi/Namedchars4.txt new file mode 100644 index 000000000000..1692a7f3be1b --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars4.txt @@ -0,0 +1,13 @@ +REGEXP_FILE + RegExpPatternImpl: <\p{IsDigit}\p{IsAlpha}> + RegExpBranchImpl: <\p{IsDigit}\p{IsAlpha}> + RegExpPropertyImpl: <\p{IsDigit}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('IsDigit') + PsiElement(RBRACE)('}') + RegExpPropertyImpl: <\p{IsAlpha}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('IsAlpha') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars5.txt b/RegExpSupport/testData/psi/Namedchars5.txt new file mode 100644 index 000000000000..0d8667b67155 --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars5.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: <\p{InLATIN_1_SUPPLEMENT}> + RegExpBranchImpl: <\p{InLATIN_1_SUPPLEMENT}> + RegExpPropertyImpl: <\p{InLATIN_1_SUPPLEMENT}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('InLATIN_1_SUPPLEMENT') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars6.txt b/RegExpSupport/testData/psi/Namedchars6.txt new file mode 100644 index 000000000000..8f2d93fbe70d --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars6.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: <[a-e]?d\\e> + RegExpBranchImpl: <[a-e]?d\\e> + RegExpClosureImpl: <[a-e]?> + RegExpClassImpl: <[a-e]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: <\\> + PsiElement(ESC_CHARACTER)('\\') + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars7.txt b/RegExpSupport/testData/psi/Namedchars7.txt new file mode 100644 index 000000000000..cef306f4c780 --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars7.txt @@ -0,0 +1,33 @@ +REGEXP_FILE + RegExpPatternImpl: <((\w+)/)*(\w+)> + RegExpBranchImpl: <((\w+)/)*(\w+)> + RegExpClosureImpl: <((\w+)/)*> + RegExpGroupImpl: <((\w+)/)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(\w+)/> + RegExpBranchImpl: <(\w+)/> + RegExpGroupImpl: <(\w+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\w+> + RegExpBranchImpl: <\w+> + RegExpClosureImpl: <\w+> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpGroupImpl: <(\w+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\w+> + RegExpBranchImpl: <\w+> + RegExpClosureImpl: <\w+> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars8.txt b/RegExpSupport/testData/psi/Namedchars8.txt new file mode 100644 index 000000000000..cf1995eb3f59 --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars8.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: <\p{Digit}+> + RegExpBranchImpl: <\p{Digit}+> + RegExpClosureImpl: <\p{Digit}+> + RegExpPropertyImpl: <\p{Digit}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('Digit') + PsiElement(RBRACE)('}') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Namedchars9.txt b/RegExpSupport/testData/psi/Namedchars9.txt new file mode 100644 index 000000000000..45b307ed3e3e --- /dev/null +++ b/RegExpSupport/testData/psi/Namedchars9.txt @@ -0,0 +1,306 @@ +REGEXP_FILE + RegExpPatternImpl: <[:xdigit:]+> + RegExpBranchImpl: <[:xdigit:]+> + RegExpClosureImpl: <[:xdigit:]+> + RegExpClassImpl: <[:xdigit:]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <:xdigit:> + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('D') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('D') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Options1.txt b/RegExpSupport/testData/psi/Options1.txt new file mode 100644 index 000000000000..1182c7f8bc4b --- /dev/null +++ b/RegExpSupport/testData/psi/Options1.txt @@ -0,0 +1,175 @@ +REGEXP_FILE + RegExpPatternImpl: <(?i> + RegExpBranchImpl: <(?i> + RegExpSetOptionsImpl: <(?i> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('i') + PsiErrorElement:Unclosed options group + + PsiElement(BAD_CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('U') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('k') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('w') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('f') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('Z') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('b') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Options2.txt b/RegExpSupport/testData/psi/Options2.txt new file mode 100644 index 000000000000..a601ab167feb --- /dev/null +++ b/RegExpSupport/testData/psi/Options2.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: <(?idmsuxU)nice> + RegExpBranchImpl: <(?idmsuxU)nice> + RegExpSetOptionsImpl: <(?idmsuxU)> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('idmsuxU') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Options3.txt b/RegExpSupport/testData/psi/Options3.txt new file mode 100644 index 000000000000..bbcf2bfa36ef --- /dev/null +++ b/RegExpSupport/testData/psi/Options3.txt @@ -0,0 +1,27 @@ +REGEXP_FILE + RegExpPatternImpl: <(?idm-suxU)one(?suxU-idm)two> + RegExpBranchImpl: <(?idm-suxU)one(?suxU-idm)two> + RegExpSetOptionsImpl: <(?idm-suxU)> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('idm') + PsiElement(OPTIONS_OFF)('-suxU') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpSetOptionsImpl: <(?suxU-idm)> + PsiElement(SET_OPTIONS)('(?') + RegExpOptionsImpl: + PsiElement(OPTIONS_ON)('suxU') + PsiElement(OPTIONS_OFF)('-idm') + PsiElement(GROUP_END)(')') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('o') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers1.txt b/RegExpSupport/testData/psi/Quantifiers1.txt new file mode 100644 index 000000000000..f4aff98cf2be --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers1.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers10.txt b/RegExpSupport/testData/psi/Quantifiers10.txt new file mode 100644 index 000000000000..2b19e572a2fc --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers10.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiErrorElement:Dangling metacharacter + + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers11.txt b/RegExpSupport/testData/psi/Quantifiers11.txt new file mode 100644 index 000000000000..ed169e22e3a1 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers11.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers12.txt b/RegExpSupport/testData/psi/Quantifiers12.txt new file mode 100644 index 000000000000..394600c1ac4c --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers12.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{1,2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('1') + PsiElement(COMMA)(',') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers13.txt b/RegExpSupport/testData/psi/Quantifiers13.txt new file mode 100644 index 000000000000..a5ac28546b9a --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers13.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{2,1}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(COMMA)(',') + PsiElement(NUMBER)('1') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers14.txt b/RegExpSupport/testData/psi/Quantifiers14.txt new file mode 100644 index 000000000000..7c74b971d620 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers14.txt @@ -0,0 +1,159 @@ +REGEXP_FILE + RegExpPatternImpl: {0,1}> + RegExpBranchImpl: {0,1}> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpClosureImpl: <'?> + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpClosureImpl: <>{0,1}> + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpQuantifierImpl: <{0,1}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('0') + PsiElement(COMMA)(',') + PsiElement(NUMBER)('1') + PsiElement(RBRACE)('}') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers15.txt b/RegExpSupport/testData/psi/Quantifiers15.txt new file mode 100644 index 000000000000..d2165272ba7f --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers15.txt @@ -0,0 +1,158 @@ +REGEXP_FILE + RegExpPatternImpl: {1,}> + RegExpBranchImpl: {1,}> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpClosureImpl: <'+> + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpClosureImpl: <>{1,}> + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpQuantifierImpl: <{1,}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('1') + PsiElement(COMMA)(',') + PsiElement(RBRACE)('}') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers16.txt b/RegExpSupport/testData/psi/Quantifiers16.txt new file mode 100644 index 000000000000..4e621323ad7b --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers16.txt @@ -0,0 +1,158 @@ +REGEXP_FILE + RegExpPatternImpl: {0,}> + RegExpBranchImpl: {0,}> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpClosureImpl: <'*> + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: <'> + PsiElement(CHARACTER)(''') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpClosureImpl: <>{0,}> + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpQuantifierImpl: <{0,}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('0') + PsiElement(COMMA)(',') + PsiElement(RBRACE)('}') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers17.txt b/RegExpSupport/testData/psi/Quantifiers17.txt new file mode 100644 index 000000000000..aefd9173bc31 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers17.txt @@ -0,0 +1,120 @@ +REGEXP_FILE + RegExpPatternImpl: {1}> + RegExpBranchImpl: {1}> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('S') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpClosureImpl: <>{1}> + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpQuantifierImpl: <{1}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('1') + PsiElement(RBRACE)('}') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers18.txt b/RegExpSupport/testData/psi/Quantifiers18.txt new file mode 100644 index 000000000000..fc364c87786e --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers18.txt @@ -0,0 +1,132 @@ +REGEXP_FILE + RegExpPatternImpl: {3,3}> + RegExpBranchImpl: {3,3}> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('F') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpClosureImpl: <>{3,3}> + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpQuantifierImpl: <{3,3}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('3') + PsiElement(COMMA)(',') + PsiElement(NUMBER)('3') + PsiElement(RBRACE)('}') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers19.txt b/RegExpSupport/testData/psi/Quantifiers19.txt new file mode 100644 index 000000000000..869593ae10ac --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers19.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{> + PsiElement(LBRACE)('{') + PsiErrorElement:Number expected + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers2.txt b/RegExpSupport/testData/psi/Quantifiers2.txt new file mode 100644 index 000000000000..bef7a2d6c4e3 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers2.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers20.txt b/RegExpSupport/testData/psi/Quantifiers20.txt new file mode 100644 index 000000000000..46132df51f13 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers20.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <}> + PsiElement(CHARACTER)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers21.txt b/RegExpSupport/testData/psi/Quantifiers21.txt new file mode 100644 index 000000000000..c3ba25772444 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers21.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{}> + PsiElement(LBRACE)('{') + PsiErrorElement:Number expected + + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers3.txt b/RegExpSupport/testData/psi/Quantifiers3.txt new file mode 100644 index 000000000000..393aeab26930 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers3.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers4.txt b/RegExpSupport/testData/psi/Quantifiers4.txt new file mode 100644 index 000000000000..cf249b3e8001 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers4.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + PsiElement(QUEST)('?') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers5.txt b/RegExpSupport/testData/psi/Quantifiers5.txt new file mode 100644 index 000000000000..6b7a67d08ff9 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers5.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <+?> + PsiElement(PLUS)('+') + PsiElement(QUEST)('?') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers6.txt b/RegExpSupport/testData/psi/Quantifiers6.txt new file mode 100644 index 000000000000..309ca4cfc2dc --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers6.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*?> + PsiElement(STAR)('*') + PsiElement(QUEST)('?') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers7.txt b/RegExpSupport/testData/psi/Quantifiers7.txt new file mode 100644 index 000000000000..df7db303c019 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers7.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers8.txt b/RegExpSupport/testData/psi/Quantifiers8.txt new file mode 100644 index 000000000000..f00d1f12595b --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers8.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <++> + PsiElement(PLUS)('+') + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Quantifiers9.txt b/RegExpSupport/testData/psi/Quantifiers9.txt new file mode 100644 index 000000000000..5130a4b567e8 --- /dev/null +++ b/RegExpSupport/testData/psi/Quantifiers9.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*+> + PsiElement(STAR)('*') + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife1.txt b/RegExpSupport/testData/psi/RealLife1.txt new file mode 100644 index 000000000000..4cb35efdad63 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife1.txt @@ -0,0 +1,48 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <(true|false)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife10.txt b/RegExpSupport/testData/psi/RealLife10.txt new file mode 100644 index 000000000000..791dd5e75a83 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife10.txt @@ -0,0 +1,473 @@ +REGEXP_FILE + RegExpPatternImpl: <.*?(<(error|warning|info)(?: descr="((?:[^"\\]|\\")*)")?(?: type="([0-9A-Z_]+)")?(?: foreground="([0-9xa-f]+)")?(?: background="([0-9xa-f]+)")?(?: effectcolor="([0-9xa-f]+)")?(?: effecttype="([A-Z]+)")?(?: fonttype="([0-9]+)")?(/)?>)(.*)> + RegExpBranchImpl: <.*?(<(error|warning|info)(?: descr="((?:[^"\\]|\\")*)")?(?: type="([0-9A-Z_]+)")?(?: foreground="([0-9xa-f]+)")?(?: background="([0-9xa-f]+)")?(?: effectcolor="([0-9xa-f]+)")?(?: effecttype="([A-Z]+)")?(?: fonttype="([0-9]+)")?(/)?>)(.*)> + RegExpClosureImpl: <.*?> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*?> + PsiElement(STAR)('*') + PsiElement(QUEST)('?') + RegExpGroupImpl: <(<(error|warning|info)(?: descr="((?:[^"\\]|\\")*)")?(?: type="([0-9A-Z_]+)")?(?: foreground="([0-9xa-f]+)")?(?: background="([0-9xa-f]+)")?(?: effectcolor="([0-9xa-f]+)")?(?: effecttype="([A-Z]+)")?(?: fonttype="([0-9]+)")?(/)?>)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <<(error|warning|info)(?: descr="((?:[^"\\]|\\")*)")?(?: type="([0-9A-Z_]+)")?(?: foreground="([0-9xa-f]+)")?(?: background="([0-9xa-f]+)")?(?: effectcolor="([0-9xa-f]+)")?(?: effecttype="([A-Z]+)")?(?: fonttype="([0-9]+)")?(/)?>> + RegExpBranchImpl: <<(error|warning|info)(?: descr="((?:[^"\\]|\\")*)")?(?: type="([0-9A-Z_]+)")?(?: foreground="([0-9xa-f]+)")?(?: background="([0-9xa-f]+)")?(?: effectcolor="([0-9xa-f]+)")?(?: effecttype="([A-Z]+)")?(?: fonttype="([0-9]+)")?(/)?>> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpGroupImpl: <(error|warning|info)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: <(?: descr="((?:[^"\\]|\\")*)")?> + RegExpGroupImpl: <(?: descr="((?:[^"\\]|\\")*)")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: < descr="((?:[^"\\]|\\")*)"> + RegExpBranchImpl: < descr="((?:[^"\\]|\\")*)"> + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <((?:[^"\\]|\\")*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(?:[^"\\]|\\")*> + RegExpBranchImpl: <(?:[^"\\]|\\")*> + RegExpClosureImpl: <(?:[^"\\]|\\")*> + RegExpGroupImpl: <(?:[^"\\]|\\")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <[^"\\]|\\"> + RegExpBranchImpl: <[^"\\]> + RegExpClassImpl: <[^"\\]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpUnionImpl: <"\\> + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <\\> + PsiElement(ESC_CHARACTER)('\\') + PsiElement(CLASS_END)(']') + PsiElement(UNION)('|') + RegExpBranchImpl: <\\"> + RegExpCharImpl: <\\> + PsiElement(ESC_CHARACTER)('\\') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <(?: type="([0-9A-Z_]+)")?> + RegExpGroupImpl: <(?: type="([0-9A-Z_]+)")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: < type="([0-9A-Z_]+)"> + RegExpBranchImpl: < type="([0-9A-Z_]+)"> + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <([0-9A-Z_]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[0-9A-Z_]+> + RegExpBranchImpl: <[0-9A-Z_]+> + RegExpClosureImpl: <[0-9A-Z_]+> + RegExpClassImpl: <[0-9A-Z_]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <0-9A-Z_> + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <(?: foreground="([0-9xa-f]+)")?> + RegExpGroupImpl: <(?: foreground="([0-9xa-f]+)")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: < foreground="([0-9xa-f]+)"> + RegExpBranchImpl: < foreground="([0-9xa-f]+)"> + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <([0-9xa-f]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[0-9xa-f]+> + RegExpBranchImpl: <[0-9xa-f]+> + RegExpClosureImpl: <[0-9xa-f]+> + RegExpClassImpl: <[0-9xa-f]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <0-9xa-f> + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <(?: background="([0-9xa-f]+)")?> + RegExpGroupImpl: <(?: background="([0-9xa-f]+)")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: < background="([0-9xa-f]+)"> + RegExpBranchImpl: < background="([0-9xa-f]+)"> + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <([0-9xa-f]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[0-9xa-f]+> + RegExpBranchImpl: <[0-9xa-f]+> + RegExpClosureImpl: <[0-9xa-f]+> + RegExpClassImpl: <[0-9xa-f]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <0-9xa-f> + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <(?: effectcolor="([0-9xa-f]+)")?> + RegExpGroupImpl: <(?: effectcolor="([0-9xa-f]+)")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: < effectcolor="([0-9xa-f]+)"> + RegExpBranchImpl: < effectcolor="([0-9xa-f]+)"> + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <([0-9xa-f]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[0-9xa-f]+> + RegExpBranchImpl: <[0-9xa-f]+> + RegExpClosureImpl: <[0-9xa-f]+> + RegExpClassImpl: <[0-9xa-f]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <0-9xa-f> + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <(?: effecttype="([A-Z]+)")?> + RegExpGroupImpl: <(?: effecttype="([A-Z]+)")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: < effecttype="([A-Z]+)"> + RegExpBranchImpl: < effecttype="([A-Z]+)"> + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <([A-Z]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[A-Z]+> + RegExpBranchImpl: <[A-Z]+> + RegExpClosureImpl: <[A-Z]+> + RegExpClassImpl: <[A-Z]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <(?: fonttype="([0-9]+)")?> + RegExpGroupImpl: <(?: fonttype="([0-9]+)")> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: < fonttype="([0-9]+)"> + RegExpBranchImpl: < fonttype="([0-9]+)"> + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpGroupImpl: <([0-9]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[0-9]+> + RegExpBranchImpl: <[0-9]+> + RegExpClosureImpl: <[0-9]+> + RegExpClassImpl: <[0-9]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <(/)?> + RegExpGroupImpl: <(/)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.*> + RegExpBranchImpl: <.*> + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife2.txt b/RegExpSupport/testData/psi/RealLife2.txt new file mode 100644 index 000000000000..cf8e2116d8cb --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife2.txt @@ -0,0 +1,50 @@ +REGEXP_FILE + RegExpPatternImpl: <(?:\s)|(?:/\*.*\*/)|(?://[^\n]*)> + RegExpBranchImpl: <(?:\s)> + RegExpGroupImpl: <(?:\s)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\s> + RegExpBranchImpl: <\s> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + PsiElement(GROUP_END)(')') + PsiElement(UNION)('|') + RegExpBranchImpl: <(?:/\*.*\*/)> + RegExpGroupImpl: <(?:/\*.*\*/)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: <\*> + PsiElement(ESC_CHARACTER)('\*') + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: <\*> + PsiElement(ESC_CHARACTER)('\*') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(GROUP_END)(')') + PsiElement(UNION)('|') + RegExpBranchImpl: <(?://[^\n]*)> + RegExpGroupImpl: <(?://[^\n]*)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpClosureImpl: <[^\n]*> + RegExpClassImpl: <[^\n]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpCharImpl: <\n> + PsiElement(ESC_CTRL_CHARACTER)('\n') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife3.txt b/RegExpSupport/testData/psi/RealLife3.txt new file mode 100644 index 000000000000..7c8277968b62 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife3.txt @@ -0,0 +1,60 @@ +REGEXP_FILE + RegExpPatternImpl: <((?:\p{Alpha}\:)?[0-9 a-z_A-Z\-\\./]+)> + RegExpBranchImpl: <((?:\p{Alpha}\:)?[0-9 a-z_A-Z\-\\./]+)> + RegExpGroupImpl: <((?:\p{Alpha}\:)?[0-9 a-z_A-Z\-\\./]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <(?:\p{Alpha}\:)?[0-9 a-z_A-Z\-\\./]+> + RegExpBranchImpl: <(?:\p{Alpha}\:)?[0-9 a-z_A-Z\-\\./]+> + RegExpClosureImpl: <(?:\p{Alpha}\:)?> + RegExpGroupImpl: <(?:\p{Alpha}\:)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\p{Alpha}\:> + RegExpBranchImpl: <\p{Alpha}\:> + RegExpPropertyImpl: <\p{Alpha}> + PsiElement(PROPERTY)('\p') + PsiElement(LBRACE)('{') + PsiElement(NAME)('Alpha') + PsiElement(RBRACE)('}') + RegExpCharImpl: <\:> + PsiElement(REDUNDANT_ESCAPE)('\:') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[0-9 a-z_A-Z\-\\./]+> + RegExpClassImpl: <[0-9 a-z_A-Z\-\\./]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <0-9 a-z_A-Z\-\\./> + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('z') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharRangeImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('A') + PsiElement(MINUS)('-') + RegExpCharImpl: + PsiElement(CHARACTER)('Z') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + RegExpCharImpl: <\\> + PsiElement(ESC_CHARACTER)('\\') + RegExpCharImpl: <.> + PsiElement(CHARACTER)('.') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife4.txt b/RegExpSupport/testData/psi/RealLife4.txt new file mode 100644 index 000000000000..05b0fa800879 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife4.txt @@ -0,0 +1,25 @@ +REGEXP_FILE + RegExpPatternImpl: <^[\w\+\.\-]{2,}:> + RegExpBranchImpl: <^[\w\+\.\-]{2,}:> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpClosureImpl: <[\w\+\.\-]{2,}> + RegExpClassImpl: <[\w\+\.\-]> + PsiElement(CLASS_BEGIN)('[') + RegExpUnionImpl: <\w\+\.\-> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpCharImpl: <\+> + PsiElement(REDUNDANT_ESCAPE)('\+') + RegExpCharImpl: <\.> + PsiElement(REDUNDANT_ESCAPE)('\.') + RegExpCharImpl: <\-> + PsiElement(ESC_CHARACTER)('\-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <{2,}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('2') + PsiElement(COMMA)(',') + PsiElement(RBRACE)('}') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife5.txt b/RegExpSupport/testData/psi/RealLife5.txt new file mode 100644 index 000000000000..512b737b8ec1 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife5.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: <#(.*)$> + RegExpBranchImpl: <#(.*)$> + RegExpCharImpl: <#> + PsiElement(CHARACTER)('#') + RegExpGroupImpl: <(.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <.*> + RegExpBranchImpl: <.*> + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife6.txt b/RegExpSupport/testData/psi/RealLife6.txt new file mode 100644 index 000000000000..408b4e6bbcdc --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife6.txt @@ -0,0 +1,89 @@ +REGEXP_FILE + RegExpPatternImpl: <^(([^:]+)://)?([^:/]+)(:([0-9]+))?(/.*)> + RegExpBranchImpl: <^(([^:]+)://)?([^:/]+)(:([0-9]+))?(/.*)> + RegExpBoundaryImpl: <^> + PsiElement(CARET)('^') + RegExpClosureImpl: <(([^:]+)://)?> + RegExpGroupImpl: <(([^:]+)://)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <([^:]+)://> + RegExpBranchImpl: <([^:]+)://> + RegExpGroupImpl: <([^:]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[^:]+> + RegExpBranchImpl: <[^:]+> + RegExpClosureImpl: <[^:]+> + RegExpClassImpl: <[^:]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpGroupImpl: <([^:/]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[^:/]+> + RegExpBranchImpl: <[^:/]+> + RegExpClosureImpl: <[^:/]+> + RegExpClassImpl: <[^:/]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpUnionImpl: <:/> + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: <(:([0-9]+))?> + RegExpGroupImpl: <(:([0-9]+))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <:([0-9]+)> + RegExpBranchImpl: <:([0-9]+)> + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpGroupImpl: <([0-9]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[0-9]+> + RegExpBranchImpl: <[0-9]+> + RegExpClosureImpl: <[0-9]+> + RegExpClassImpl: <[0-9]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpGroupImpl: <(/.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife7.txt b/RegExpSupport/testData/psi/RealLife7.txt new file mode 100644 index 000000000000..f291adce8fa0 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife7.txt @@ -0,0 +1,87 @@ +REGEXP_FILE + RegExpPatternImpl: <(([^:]+)://)?([^:/]+)(:([0-9]+))?(/.*)> + RegExpBranchImpl: <(([^:]+)://)?([^:/]+)(:([0-9]+))?(/.*)> + RegExpClosureImpl: <(([^:]+)://)?> + RegExpGroupImpl: <(([^:]+)://)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <([^:]+)://> + RegExpBranchImpl: <([^:]+)://> + RegExpGroupImpl: <([^:]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[^:]+> + RegExpBranchImpl: <[^:]+> + RegExpClosureImpl: <[^:]+> + RegExpClassImpl: <[^:]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpGroupImpl: <([^:/]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[^:/]+> + RegExpBranchImpl: <[^:/]+> + RegExpClosureImpl: <[^:/]+> + RegExpClassImpl: <[^:/]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpUnionImpl: <:/> + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: <(:([0-9]+))?> + RegExpGroupImpl: <(:([0-9]+))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <:([0-9]+)> + RegExpBranchImpl: <:([0-9]+)> + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + RegExpGroupImpl: <([0-9]+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <[0-9]+> + RegExpBranchImpl: <[0-9]+> + RegExpClosureImpl: <[0-9]+> + RegExpClassImpl: <[0-9]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpGroupImpl: <(/.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife8.txt b/RegExpSupport/testData/psi/RealLife8.txt new file mode 100644 index 000000000000..7053cf876fd5 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife8.txt @@ -0,0 +1,53 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpClosureImpl: <[+-]?> + RegExpClassImpl: <[+-]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharImpl: <+> + PsiElement(CHARACTER)('+') + RegExpCharImpl: <-> + PsiElement(MINUS)('-') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <[0-9]+> + RegExpClassImpl: <[0-9]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + PsiElement(CLASS_END)(']') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpClassImpl: <[0-9]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + PsiElement(CLASS_END)(']') + RegExpClassImpl: <[0-9]> + PsiElement(CLASS_BEGIN)('[') + RegExpCharRangeImpl: <0-9> + RegExpCharImpl: <0> + PsiElement(CHARACTER)('0') + PsiElement(MINUS)('-') + RegExpCharImpl: <9> + PsiElement(CHARACTER)('9') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/RealLife9.txt b/RegExpSupport/testData/psi/RealLife9.txt new file mode 100644 index 000000000000..e7ae10cd5010 --- /dev/null +++ b/RegExpSupport/testData/psi/RealLife9.txt @@ -0,0 +1,32 @@ +REGEXP_FILE + RegExpPatternImpl: <\b(\w+)(\s+\1)+\b> + RegExpBranchImpl: <\b(\w+)(\s+\1)+\b> + RegExpBoundaryImpl: <\b> + PsiElement(BOUNDARY)('\b') + RegExpGroupImpl: <(\w+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\w+> + RegExpBranchImpl: <\w+> + RegExpClosureImpl: <\w+> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: <(\s+\1)+> + RegExpGroupImpl: <(\s+\1)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\s+\1> + RegExpBranchImpl: <\s+\1> + RegExpClosureImpl: <\s+> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpBackrefImpl: <\1> + PsiElement(BACKREF)('\1') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpBoundaryImpl: <\b> + PsiElement(BOUNDARY)('\b') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Regressions1.txt b/RegExpSupport/testData/psi/Regressions1.txt new file mode 100644 index 000000000000..e089d661466d --- /dev/null +++ b/RegExpSupport/testData/psi/Regressions1.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <(> + RegExpBranchImpl: <(> + RegExpGroupImpl: <(> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <> + RegExpBranchImpl: <> + + PsiErrorElement:Unclosed group + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Regressions2.txt b/RegExpSupport/testData/psi/Regressions2.txt new file mode 100644 index 000000000000..a264404ad05b --- /dev/null +++ b/RegExpSupport/testData/psi/Regressions2.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: <[^^]> + RegExpBranchImpl: <[^^]> + RegExpClassImpl: <[^^]> + PsiElement(CLASS_BEGIN)('[') + PsiElement(CARET)('^') + RegExpCharImpl: <^> + PsiElement(CARET)('^') + PsiElement(CLASS_END)(']') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Regressions3.txt b/RegExpSupport/testData/psi/Regressions3.txt new file mode 100644 index 000000000000..22b85c9bd3f3 --- /dev/null +++ b/RegExpSupport/testData/psi/Regressions3.txt @@ -0,0 +1,169 @@ +REGEXP_FILE + RegExpPatternImpl: > + RegExpBranchImpl: > + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('b') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Regressions4.txt b/RegExpSupport/testData/psi/Regressions4.txt new file mode 100644 index 000000000000..9ad7bb8447fd --- /dev/null +++ b/RegExpSupport/testData/psi/Regressions4.txt @@ -0,0 +1,2591 @@ +REGEXP_FILE + RegExpPatternImpl: <\s*@return(?:s)?\s*(?:(?:\{|:)?\s*(?(> + RegExpBranchImpl: <\s*@return(?:s)?\s*(?:(?:\{|:)?\s*(?(> + RegExpClosureImpl: <\s*> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: <@> + PsiElement(CHARACTER)('@') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpClosureImpl: <(?:s)?> + RegExpGroupImpl: <(?:s)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('s') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <\s*> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpGroupImpl: <(?:(?:\{|:)?\s*(?(> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <(?:\{|:)?\s*(?(> + RegExpBranchImpl: <(?:\{|:)?\s*(?(> + RegExpClosureImpl: <(?:\{|:)?> + RegExpGroupImpl: <(?:\{|:)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\{|:> + RegExpBranchImpl: <\{> + RegExpCharImpl: <\{> + PsiElement(ESC_CHARACTER)('\{') + PsiElement(UNION)('|') + RegExpBranchImpl: <:> + RegExpCharImpl: <:> + PsiElement(CHARACTER)(':') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: <\s*> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpPyCondRefImpl: <(?(> + PsiElement(PYTHON_COND_REF)('(?(') + PsiErrorElement:Group name or number expected + + PsiElement(BAD_CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('G') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('u') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('u') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('b') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CLASS_BEGIN)('[') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CARET)('^') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(REDUNDANT_ESCAPE)('\<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(REDUNDANT_ESCAPE)('\<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('}') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CLASS_END)(']') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('D') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Dangling metacharacter + + PsiElement(PLUS)('+') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('U') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(''') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(''') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(REDUNDANT_ESCAPE)('\<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('D') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Dangling metacharacter + + PsiElement(STAR)('*') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(REDUNDANT_ESCAPE)('\<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('}') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('D') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Dangling metacharacter + + PsiElement(QUEST)('?') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(REDUNDANT_ESCAPE)('\<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('D') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Dangling metacharacter + + PsiElement(STAR)('*') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('U') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(''') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(''') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('D') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Dangling metacharacter + + PsiElement(QUEST)('?') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(GROUP_BEGIN)('(') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('P') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('x') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('p') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(DOT)('.') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('D') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Dangling metacharacter + + PsiElement(STAR)('*') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('=') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('U') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('m') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('t') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('h') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('d') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('c') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('l') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('s') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('i') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('n') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('g') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(' ') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(''') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)(''') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('"') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('<') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('/') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('e') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('o') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('r') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple1.txt b/RegExpSupport/testData/psi/Simple1.txt new file mode 100644 index 000000000000..43e77768f3e7 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple1.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + RegExpPatternImpl: <|> + RegExpBranchImpl: <> + + PsiElement(UNION)('|') + RegExpBranchImpl: <> + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple10.txt b/RegExpSupport/testData/psi/Simple10.txt new file mode 100644 index 000000000000..f75747e5aaf2 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple10.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple11.txt b/RegExpSupport/testData/psi/Simple11.txt new file mode 100644 index 000000000000..a2e8a0148b13 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple11.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple12.txt b/RegExpSupport/testData/psi/Simple12.txt new file mode 100644 index 000000000000..26762e3391a9 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple12.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple13.txt b/RegExpSupport/testData/psi/Simple13.txt new file mode 100644 index 000000000000..80786d56d7ae --- /dev/null +++ b/RegExpSupport/testData/psi/Simple13.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple14.txt b/RegExpSupport/testData/psi/Simple14.txt new file mode 100644 index 000000000000..f0b6020b8c7e --- /dev/null +++ b/RegExpSupport/testData/psi/Simple14.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + PsiErrorElement:Dangling metacharacter + + PsiElement(STAR)('*') + PsiErrorElement:Pattern expected + + PsiElement(CHARACTER)('a') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple15.txt b/RegExpSupport/testData/psi/Simple15.txt new file mode 100644 index 000000000000..aefd9173bc31 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple15.txt @@ -0,0 +1,120 @@ +REGEXP_FILE + RegExpPatternImpl: {1}> + RegExpBranchImpl: {1}> + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('S') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpClosureImpl: <>{1}> + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpQuantifierImpl: <{1}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('1') + PsiElement(RBRACE)('}') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple16.txt b/RegExpSupport/testData/psi/Simple16.txt new file mode 100644 index 000000000000..c3ba25772444 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple16.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{}> + PsiElement(LBRACE)('{') + PsiErrorElement:Number expected + + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple17.txt b/RegExpSupport/testData/psi/Simple17.txt new file mode 100644 index 000000000000..869593ae10ac --- /dev/null +++ b/RegExpSupport/testData/psi/Simple17.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{> + PsiElement(LBRACE)('{') + PsiErrorElement:Number expected + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple18.txt b/RegExpSupport/testData/psi/Simple18.txt new file mode 100644 index 000000000000..46132df51f13 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple18.txt @@ -0,0 +1,7 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: <}> + PsiElement(CHARACTER)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple19.txt b/RegExpSupport/testData/psi/Simple19.txt new file mode 100644 index 000000000000..d1554dcad978 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple19.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{1,}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('1') + PsiElement(COMMA)(',') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple2.txt b/RegExpSupport/testData/psi/Simple2.txt new file mode 100644 index 000000000000..e5fa7ef68ef4 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple2.txt @@ -0,0 +1,30 @@ +REGEXP_FILE + RegExpPatternImpl: <(|\$.*)\.class> + RegExpBranchImpl: <(|\$.*)\.class> + RegExpGroupImpl: <(|\$.*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <|\$.*> + RegExpBranchImpl: <> + + PsiElement(UNION)('|') + RegExpBranchImpl: <\$.*> + RegExpCharImpl: <\$> + PsiElement(ESC_CHARACTER)('\$') + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') + RegExpCharImpl: <\.> + PsiElement(ESC_CHARACTER)('\.') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('s') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple20.txt b/RegExpSupport/testData/psi/Simple20.txt new file mode 100644 index 000000000000..394600c1ac4c --- /dev/null +++ b/RegExpSupport/testData/psi/Simple20.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{1,2}> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('1') + PsiElement(COMMA)(',') + PsiElement(NUMBER)('2') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple21.txt b/RegExpSupport/testData/psi/Simple21.txt new file mode 100644 index 000000000000..c9021407c61a --- /dev/null +++ b/RegExpSupport/testData/psi/Simple21.txt @@ -0,0 +1,16 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <{1,> + PsiElement(LBRACE)('{') + PsiElement(NUMBER)('1') + PsiElement(COMMA)(',') + PsiErrorElement:'}' or number expected + + PsiElement(NAME)('foo') + PsiErrorElement:Pattern expected + + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple22.txt b/RegExpSupport/testData/psi/Simple22.txt new file mode 100644 index 000000000000..cdbffb225074 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple22.txt @@ -0,0 +1,133 @@ +REGEXP_FILE + RegExpPatternImpl: <\;> + RegExpBranchImpl: <\;> + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: <=> + PsiElement(CHARACTER)('=') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: + PsiElement(CHARACTER)('R') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: <"> + PsiElement(CHARACTER)('"') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') + RegExpCharImpl: <\;> + PsiElement(REDUNDANT_ESCAPE)('\;') + RegExpCharImpl: <<> + PsiElement(CHARACTER)('<') + RegExpCharImpl: + PsiElement(CHARACTER)('/') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: <_> + PsiElement(CHARACTER)('_') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: <>> + PsiElement(CHARACTER)('>') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple3.txt b/RegExpSupport/testData/psi/Simple3.txt new file mode 100644 index 000000000000..13ee455bf4f9 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple3.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple4.txt b/RegExpSupport/testData/psi/Simple4.txt new file mode 100644 index 000000000000..481cf1456841 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple4.txt @@ -0,0 +1,47 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl: + PsiElement(CHARACTER)('u') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl:

+ PsiElement(CHARACTER)('p') + RegExpCharImpl: + PsiElement(CHARACTER)('l') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('o') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpCharImpl: + PsiElement(CHARACTER)('t') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple5.txt b/RegExpSupport/testData/psi/Simple5.txt new file mode 100644 index 000000000000..c658ccffb1cb --- /dev/null +++ b/RegExpSupport/testData/psi/Simple5.txt @@ -0,0 +1,13 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpCharImpl: + PsiElement(CHARACTER)('d') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple6.txt b/RegExpSupport/testData/psi/Simple6.txt new file mode 100644 index 000000000000..393aeab26930 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple6.txt @@ -0,0 +1,8 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple7.txt b/RegExpSupport/testData/psi/Simple7.txt new file mode 100644 index 000000000000..d8b9dd9b68d2 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple7.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple8.txt b/RegExpSupport/testData/psi/Simple8.txt new file mode 100644 index 000000000000..8d419d215cd2 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple8.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Simple9.txt b/RegExpSupport/testData/psi/Simple9.txt new file mode 100644 index 000000000000..2ac64e7167f4 --- /dev/null +++ b/RegExpSupport/testData/psi/Simple9.txt @@ -0,0 +1,14 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests1.txt b/RegExpSupport/testData/psi/Tests1.txt new file mode 100644 index 000000000000..3ec0b2cc4fda --- /dev/null +++ b/RegExpSupport/testData/psi/Tests1.txt @@ -0,0 +1,12 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiErrorElement:Unmatched closing ')' + + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests10.txt b/RegExpSupport/testData/psi/Tests10.txt new file mode 100644 index 000000000000..dfa7e1ebc6b0 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests10.txt @@ -0,0 +1,23 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpGroupImpl: <(b*c*)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests11.txt b/RegExpSupport/testData/psi/Tests11.txt new file mode 100644 index 000000000000..08fc4331cd39 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests11.txt @@ -0,0 +1,18 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests12.txt b/RegExpSupport/testData/psi/Tests12.txt new file mode 100644 index 000000000000..a33740f8b829 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests12.txt @@ -0,0 +1,68 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: < > + PsiElement(CHARACTER)(' ') + RegExpGroupImpl: <(giant|man|martian)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('m') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('r') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests13.txt b/RegExpSupport/testData/psi/Tests13.txt new file mode 100644 index 000000000000..68c7c836af6e --- /dev/null +++ b/RegExpSupport/testData/psi/Tests13.txt @@ -0,0 +1,57 @@ +REGEXP_FILE + RegExpPatternImpl: <(wee|week)(knights|knight)> + RegExpBranchImpl: <(wee|week)(knights|knight)> + RegExpGroupImpl: <(wee|week)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('w') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('k') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(knights|knight)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + RegExpCharImpl: + PsiElement(CHARACTER)('s') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('k') + RegExpCharImpl: + PsiElement(CHARACTER)('n') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpCharImpl: + PsiElement(CHARACTER)('t') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests14.txt b/RegExpSupport/testData/psi/Tests14.txt new file mode 100644 index 000000000000..2880eca2019f --- /dev/null +++ b/RegExpSupport/testData/psi/Tests14.txt @@ -0,0 +1,31 @@ +REGEXP_FILE + RegExpPatternImpl: <(a.*b)(a.*b)> + RegExpBranchImpl: <(a.*b)(a.*b)> + RegExpGroupImpl: <(a.*b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') + RegExpGroupImpl: <(a.*b)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <.*> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests15.txt b/RegExpSupport/testData/psi/Tests15.txt new file mode 100644 index 000000000000..694d3b1a5565 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests15.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: <(\s*\w+)?> + RegExpBranchImpl: <(\s*\w+)?> + RegExpClosureImpl: <(\s*\w+)?> + RegExpGroupImpl: <(\s*\w+)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: <\s*\w+> + RegExpBranchImpl: <\s*\w+> + RegExpClosureImpl: <\s*> + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpClosureImpl: <\w+> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests16.txt b/RegExpSupport/testData/psi/Tests16.txt new file mode 100644 index 000000000000..5bce576e1489 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests16.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <(?:a)> + RegExpBranchImpl: <(?:a)> + RegExpGroupImpl: <(?:a)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests17.txt b/RegExpSupport/testData/psi/Tests17.txt new file mode 100644 index 000000000000..08d3ec6292c6 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests17.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: <(?:\w)> + RegExpBranchImpl: <(?:\w)> + RegExpGroupImpl: <(?:\w)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\w> + RegExpBranchImpl: <\w> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests18.txt b/RegExpSupport/testData/psi/Tests18.txt new file mode 100644 index 000000000000..93c12fe4fcf2 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests18.txt @@ -0,0 +1,17 @@ +REGEXP_FILE + RegExpPatternImpl: <(?:\w\s\w)+> + RegExpBranchImpl: <(?:\w\s\w)+> + RegExpClosureImpl: <(?:\w\s\w)+> + RegExpGroupImpl: <(?:\w\s\w)> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <\w\s\w> + RegExpBranchImpl: <\w\s\w> + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + RegExpSimpleClassImpl: <\s> + PsiElement(CHAR_CLASS)('\s') + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests19.txt b/RegExpSupport/testData/psi/Tests19.txt new file mode 100644 index 000000000000..bd619487d2e0 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests19.txt @@ -0,0 +1,31 @@ +REGEXP_FILE + RegExpPatternImpl: <(a\w)(?:,(a\w))+> + RegExpBranchImpl: <(a\w)(?:,(a\w))+> + RegExpGroupImpl: <(a\w)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + PsiElement(GROUP_END)(')') + RegExpClosureImpl: <(?:,(a\w))+> + RegExpGroupImpl: <(?:,(a\w))> + PsiElement(NON_CAPT_GROUP)('(?:') + RegExpPatternImpl: <,(a\w)> + RegExpBranchImpl: <,(a\w)> + RegExpCharImpl: <,> + PsiElement(CHARACTER)(',') + RegExpGroupImpl: <(a\w)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpSimpleClassImpl: <\w> + PsiElement(CHAR_CLASS)('\w') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests2.txt b/RegExpSupport/testData/psi/Tests2.txt new file mode 100644 index 000000000000..e99957feb89b --- /dev/null +++ b/RegExpSupport/testData/psi/Tests2.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: <(abc> + RegExpBranchImpl: <(abc> + RegExpGroupImpl: <(abc> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiErrorElement:Unclosed group + \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests20.txt b/RegExpSupport/testData/psi/Tests20.txt new file mode 100644 index 000000000000..9b30d40ec3bc --- /dev/null +++ b/RegExpSupport/testData/psi/Tests20.txt @@ -0,0 +1,24 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpClosureImpl: <.*?> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <*?> + PsiElement(STAR)('*') + PsiElement(QUEST)('?') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: + PsiElement(CHARACTER)('z') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests21.txt b/RegExpSupport/testData/psi/Tests21.txt new file mode 100644 index 000000000000..ce624f977ce8 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests21.txt @@ -0,0 +1,24 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpClosureImpl: <.+?> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <+?> + PsiElement(PLUS)('+') + PsiElement(QUEST)('?') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('x') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('y') + RegExpCharImpl: + PsiElement(CHARACTER)('z') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests22.txt b/RegExpSupport/testData/psi/Tests22.txt new file mode 100644 index 000000000000..46b5f05f0ea5 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests22.txt @@ -0,0 +1,22 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <.+?> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <+?> + PsiElement(PLUS)('+') + PsiElement(QUEST)('?') + RegExpGroupImpl: <(c|d)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests23.txt b/RegExpSupport/testData/psi/Tests23.txt new file mode 100644 index 000000000000..079d16ea7e8b --- /dev/null +++ b/RegExpSupport/testData/psi/Tests23.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: <.+> + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpGroupImpl: <(c|d)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(GROUP_END)(')') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests24.txt b/RegExpSupport/testData/psi/Tests24.txt new file mode 100644 index 000000000000..4c8a34727a90 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests24.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <+?> + PsiElement(PLUS)('+') + PsiElement(QUEST)('?') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <+?> + PsiElement(PLUS)('+') + PsiElement(QUEST)('?') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <+?> + PsiElement(PLUS)('+') + PsiElement(QUEST)('?') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests3.txt b/RegExpSupport/testData/psi/Tests3.txt new file mode 100644 index 000000000000..d47de554e99b --- /dev/null +++ b/RegExpSupport/testData/psi/Tests3.txt @@ -0,0 +1,15 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests4.txt b/RegExpSupport/testData/psi/Tests4.txt new file mode 100644 index 000000000000..2b19e572a2fc --- /dev/null +++ b/RegExpSupport/testData/psi/Tests4.txt @@ -0,0 +1,11 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + PsiErrorElement:Dangling metacharacter + + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests5.txt b/RegExpSupport/testData/psi/Tests5.txt new file mode 100644 index 000000000000..f00d1f12595b --- /dev/null +++ b/RegExpSupport/testData/psi/Tests5.txt @@ -0,0 +1,9 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpQuantifierImpl: <++> + PsiElement(PLUS)('+') + PsiElement(PLUS)('+') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests6.txt b/RegExpSupport/testData/psi/Tests6.txt new file mode 100644 index 000000000000..2180089492ac --- /dev/null +++ b/RegExpSupport/testData/psi/Tests6.txt @@ -0,0 +1,10 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests7.txt b/RegExpSupport/testData/psi/Tests7.txt new file mode 100644 index 000000000000..adbdb8c49081 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests7.txt @@ -0,0 +1,20 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpCharImpl: + PsiElement(CHARACTER)('g') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests8.txt b/RegExpSupport/testData/psi/Tests8.txt new file mode 100644 index 000000000000..997288b58619 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests8.txt @@ -0,0 +1,21 @@ +REGEXP_FILE + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('a') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('d') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('e') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Tests9.txt b/RegExpSupport/testData/psi/Tests9.txt new file mode 100644 index 000000000000..3275d51aa449 --- /dev/null +++ b/RegExpSupport/testData/psi/Tests9.txt @@ -0,0 +1,52 @@ +REGEXP_FILE + RegExpPatternImpl: <(bc+d$|ef*g.|h?i(j|k))> + RegExpBranchImpl: <(bc+d$|ef*g.|h?i(j|k))> + RegExpGroupImpl: <(bc+d$|ef*g.|h?i(j|k))> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('b') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('c') + RegExpQuantifierImpl: <+> + PsiElement(PLUS)('+') + RegExpCharImpl: + PsiElement(CHARACTER)('d') + RegExpBoundaryImpl: <$> + PsiElement(DOLLAR)('$') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('e') + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('f') + RegExpQuantifierImpl: <*> + PsiElement(STAR)('*') + RegExpCharImpl: + PsiElement(CHARACTER)('g') + RegExpSimpleClassImpl: <.> + PsiElement(DOT)('.') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpClosureImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('h') + RegExpQuantifierImpl: + PsiElement(QUEST)('?') + RegExpCharImpl: + PsiElement(CHARACTER)('i') + RegExpGroupImpl: <(j|k)> + PsiElement(GROUP_BEGIN)('(') + RegExpPatternImpl: + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('j') + PsiElement(UNION)('|') + RegExpBranchImpl: + RegExpCharImpl: + PsiElement(CHARACTER)('k') + PsiElement(GROUP_END)(')') + PsiElement(GROUP_END)(')') \ No newline at end of file