diff --git a/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java index a40b7f433304..bd99b5944414 100644 --- a/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java +++ b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java @@ -7,7 +7,7 @@ import com.intellij.lexer.FlexLexer; import com.intellij.psi.StringEscapesTokenTypes; import com.intellij.psi.tree.IElementType; -import java.util.ArrayList; +import com.intellij.util.containers.IntArrayList; import java.util.EnumSet; @SuppressWarnings("ALL") @@ -30,10 +30,10 @@ class _RegExLexer implements FlexLexer { public static final int QUOTED = 2; public static final int EMBRACED = 4; public static final int QUANTIFIER = 6; - public static final int CLASS1 = 8; - public static final int NEGATE_CLASS1 = 10; - public static final int CLASS2 = 12; - public static final int NEGATE_CLASS2 = 14; + public static final int NEGATED_CLASS = 8; + public static final int QUOTED_CLASS1 = 10; + public static final int CLASS1 = 12; + public static final int CLASS2 = 14; public static final int PROP = 16; public static final int NAMED = 18; public static final int OPTIONS = 20; @@ -60,7 +60,7 @@ class _RegExLexer implements FlexLexer { /** * Translates characters to character classes * Chosen bits are [11, 6, 4] - * Total runtime size is 13792 bytes + * Total runtime size is 13728 bytes */ public static int ZZ_CMAP(int ch) { return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; @@ -76,112 +76,111 @@ class _RegExLexer implements FlexLexer { /* The ZZ_CMAP_Y table has 2752 entries */ static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ - "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ - "\1\13\1\26\1\25\1\13\1\27\4\1\1\13\1\30\1\31\2\1\2\13\1\30\1\1\1\32\1\25\5"+ - "\13\1\33\1\34\1\35\1\1\1\36\1\13\1\1\1\37\5\13\1\40\1\41\1\42\1\13\1\30\1"+ - "\43\1\13\1\44\1\45\1\1\1\13\1\46\4\1\1\13\1\47\4\1\1\50\2\13\1\51\1\1\1\52"+ - "\1\53\1\25\1\54\1\55\1\56\1\57\1\60\1\61\1\53\1\16\1\62\1\55\1\56\1\63\1\1"+ - "\1\64\1\65\1\66\1\67\1\22\1\56\1\70\1\1\1\71\1\53\1\72\1\73\1\55\1\56\1\70"+ - "\1\1\1\61\1\53\1\41\1\74\1\75\1\76\1\77\1\1\1\71\1\65\1\1\1\100\1\36\1\56"+ - "\1\51\1\1\1\101\1\53\1\1\1\100\1\36\1\56\1\102\1\1\1\60\1\53\1\103\1\100\1"+ - "\36\1\13\1\104\1\60\1\105\1\53\1\106\1\107\1\110\1\13\1\111\1\112\1\1\1\65"+ - "\1\1\1\25\2\13\1\113\1\112\1\114\2\1\1\115\1\116\1\117\1\120\1\121\1\122\2"+ - "\1\1\71\1\1\1\114\1\1\1\123\1\13\1\124\1\1\1\125\7\1\2\13\1\30\1\105\1\114"+ - "\1\126\1\127\1\130\1\131\1\114\2\13\1\132\2\13\1\133\24\13\1\134\1\135\2\13"+ - "\1\134\2\13\1\136\1\137\1\14\3\13\1\137\3\13\1\30\2\1\1\13\1\1\5\13\1\140"+ - "\1\25\45\13\1\141\1\13\1\25\1\30\4\13\1\30\1\142\1\143\1\16\1\13\1\16\1\13"+ - "\1\16\1\143\1\71\3\13\1\144\1\1\1\145\1\114\2\1\1\114\5\13\1\27\2\13\1\146"+ - "\4\13\1\40\1\13\1\147\2\1\1\65\1\13\1\150\1\47\2\13\1\151\1\13\1\77\1\114"+ - "\2\1\1\13\1\112\3\13\1\47\2\1\2\114\1\152\5\1\1\107\2\13\1\144\1\153\1\114"+ - "\2\1\1\154\1\13\1\155\1\42\2\13\1\40\1\1\2\13\1\144\1\1\1\156\1\42\1\13\1"+ - "\150\6\1\1\157\1\160\14\13\4\1\21\13\1\140\2\13\1\140\1\161\1\13\1\150\3\13"+ - "\1\162\1\163\1\164\1\124\1\163\2\1\1\165\4\1\1\166\1\1\1\124\6\1\1\167\1\170"+ - "\1\171\1\172\1\173\3\1\1\174\147\1\2\13\1\147\2\13\1\147\10\13\1\175\1\176"+ - "\2\13\1\132\3\13\1\177\1\1\1\13\1\112\4\200\4\1\1\105\35\1\1\201\2\1\1\202"+ - "\1\25\4\13\1\203\1\25\4\13\1\133\1\107\1\13\1\150\1\25\4\13\1\147\1\1\1\13"+ - "\1\30\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1\40\2\1\10\13\1\124\4\1\2\13\1"+ - "\150\20\13\1\124\1\13\1\204\1\1\2\13\1\147\1\105\1\13\1\150\4\13\1\40\2\1"+ - "\1\205\1\206\5\13\1\207\1\13\1\150\1\27\3\1\1\205\1\210\1\13\1\31\1\1\3\13"+ - "\1\144\1\206\2\13\1\144\1\1\1\114\1\1\1\211\1\42\1\13\1\40\1\13\1\112\1\1"+ - "\1\13\1\124\1\50\2\13\1\31\1\105\1\114\1\212\1\213\2\13\1\46\1\1\1\214\1\114"+ - "\1\13\1\215\3\13\1\216\1\217\1\220\1\30\1\66\1\221\1\222\1\200\2\13\1\133"+ - "\1\40\7\13\1\31\1\114\72\13\1\144\1\13\1\223\2\13\1\151\20\1\26\13\1\150\6"+ - "\13\1\77\2\1\1\112\1\224\1\56\1\225\1\226\6\13\1\16\1\1\1\154\25\13\1\150"+ - "\1\1\4\13\1\206\2\13\1\27\2\1\1\151\7\1\1\212\7\13\1\124\1\1\1\114\1\25\1"+ - "\30\1\25\1\30\1\227\4\13\1\147\1\230\1\231\2\1\1\232\1\13\1\14\1\233\2\150"+ - "\2\1\7\13\1\30\30\1\1\13\1\124\3\13\1\71\2\1\2\13\1\1\1\13\1\234\2\13\1\40"+ - "\1\13\1\150\2\13\1\235\3\1\11\13\1\150\1\114\5\1\2\13\1\27\3\13\1\144\11\1"+ - "\23\13\1\112\1\13\1\40\1\27\11\1\1\236\2\13\1\237\1\13\1\40\1\13\1\112\1\13"+ - "\1\147\4\1\1\13\1\240\1\13\1\40\1\13\1\77\4\1\3\13\1\241\4\1\1\71\1\242\1"+ - "\13\1\144\2\1\1\13\1\124\1\13\1\124\2\1\1\123\1\13\1\47\1\1\3\13\1\40\1\13"+ - "\1\40\1\13\1\31\1\13\1\16\6\1\4\13\1\46\3\1\3\13\1\31\3\13\1\31\60\1\1\154"+ - "\2\13\1\27\2\1\1\65\1\1\1\154\2\13\2\1\1\13\1\46\1\114\1\154\1\13\1\112\1"+ - "\65\1\1\2\13\1\243\1\154\2\13\1\31\1\244\1\245\2\1\1\13\1\22\1\151\5\1\1\246"+ - "\1\247\1\46\2\13\1\147\1\1\1\114\1\73\1\55\1\56\1\70\1\1\1\250\1\16\21\1\3"+ - "\13\1\1\1\251\1\114\12\1\2\13\1\147\2\1\1\252\2\1\3\13\1\1\1\253\1\114\2\1"+ - "\2\13\1\30\1\1\1\114\3\1\1\13\1\77\1\1\1\114\26\1\4\13\1\114\1\105\34\1\3"+ - "\13\1\46\20\1\71\13\1\77\16\1\14\13\1\144\53\1\2\13\1\147\75\1\44\13\1\112"+ - "\33\1\43\13\1\46\1\13\1\147\1\114\6\1\1\13\1\150\1\1\3\13\1\1\1\144\1\114"+ - "\1\154\1\254\1\13\67\1\4\13\1\47\1\71\3\1\1\154\6\1\1\16\77\1\6\13\1\30\1"+ - "\124\1\46\1\77\66\1\5\13\1\212\3\13\1\143\1\255\1\256\1\257\3\13\1\260\1\261"+ - "\1\13\1\262\1\263\1\36\24\13\1\264\1\13\1\36\1\133\1\13\1\133\1\13\1\212\1"+ - "\13\1\212\1\147\1\13\1\147\1\13\1\56\1\13\1\56\1\13\1\265\3\266\14\13\1\47"+ - "\123\1\1\257\1\13\1\267\1\270\1\271\1\272\1\273\1\274\1\275\1\151\1\276\1"+ - "\151\24\1\55\13\1\112\2\1\103\13\1\47\15\13\1\150\150\13\1\16\25\1\41\13\1"+ - "\150\36\1"); + "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\2\1\1\10\1\11\1\12\1\13\1\12\1\13\34\12\1"+ + "\14\1\15\1\16\10\1\1\17\1\20\1\12\1\21\4\12\1\22\10\12\1\23\12\12\1\24\1\12"+ + "\1\25\1\24\1\12\1\26\4\1\1\12\1\27\1\30\2\1\2\12\1\27\1\1\1\31\1\24\5\12\1"+ + "\32\1\33\1\34\1\1\1\35\1\12\1\1\1\36\5\12\1\37\1\40\1\41\1\12\1\27\1\42\1"+ + "\12\1\43\1\44\1\1\1\12\1\45\4\1\1\12\1\46\4\1\1\47\2\12\1\50\1\1\1\51\1\52"+ + "\1\24\1\53\1\54\1\55\1\56\1\57\1\60\1\52\1\15\1\61\1\54\1\55\1\62\1\1\1\63"+ + "\1\64\1\65\1\66\1\21\1\55\1\67\1\1\1\70\1\52\1\71\1\72\1\54\1\55\1\67\1\1"+ + "\1\60\1\52\1\40\1\73\1\74\1\75\1\76\1\1\1\70\1\64\1\1\1\77\1\35\1\55\1\50"+ + "\1\1\1\100\1\52\1\1\1\77\1\35\1\55\1\101\1\1\1\57\1\52\1\102\1\77\1\35\1\12"+ + "\1\103\1\57\1\104\1\52\1\105\1\106\1\107\1\12\1\110\1\111\1\1\1\64\1\1\1\24"+ + "\2\12\1\112\1\111\1\113\2\1\1\114\1\115\1\116\1\117\1\120\1\121\2\1\1\70\1"+ + "\1\1\113\1\1\1\122\1\12\1\123\1\1\1\124\7\1\2\12\1\27\1\104\1\113\1\125\1"+ + "\126\1\127\1\130\1\113\2\12\1\131\2\12\1\132\24\12\1\133\1\134\2\12\1\133"+ + "\2\12\1\135\1\136\1\13\3\12\1\136\3\12\1\27\2\1\1\12\1\1\5\12\1\137\1\24\45"+ + "\12\1\140\1\12\1\24\1\27\4\12\1\27\1\141\1\142\1\15\1\12\1\15\1\12\1\15\1"+ + "\142\1\70\3\12\1\143\1\1\1\144\1\113\2\1\1\113\5\12\1\26\2\12\1\145\4\12\1"+ + "\37\1\12\1\146\2\1\1\64\1\12\1\147\1\46\2\12\1\150\1\12\1\76\1\113\2\1\1\12"+ + "\1\111\3\12\1\46\2\1\2\113\1\151\5\1\1\106\2\12\1\143\1\152\1\113\2\1\1\153"+ + "\1\12\1\154\1\41\2\12\1\37\1\1\2\12\1\143\1\1\1\155\1\41\1\12\1\147\6\1\1"+ + "\156\1\157\14\12\4\1\21\12\1\137\2\12\1\137\1\160\1\12\1\147\3\12\1\161\1"+ + "\162\1\163\1\123\1\162\7\1\1\164\1\1\1\123\6\1\1\165\1\166\1\167\1\170\1\171"+ + "\3\1\1\172\147\1\2\12\1\146\2\12\1\146\10\12\1\173\1\174\2\12\1\131\3\12\1"+ + "\175\1\1\1\12\1\111\4\176\4\1\1\104\35\1\1\177\2\1\1\200\1\24\4\12\1\201\1"+ + "\24\4\12\1\132\1\106\1\12\1\147\1\24\4\12\1\146\1\1\1\12\1\27\3\1\1\12\40"+ + "\1\133\12\1\37\4\1\135\12\1\37\2\1\10\12\1\123\4\1\2\12\1\147\20\12\1\123"+ + "\1\12\1\202\1\1\2\12\1\146\1\104\1\12\1\147\4\12\1\37\2\1\1\203\1\204\5\12"+ + "\1\205\1\12\1\147\1\26\3\1\1\203\1\206\1\12\1\30\1\1\3\12\1\143\1\204\2\12"+ + "\1\143\1\1\1\113\1\1\1\207\1\41\1\12\1\37\1\12\1\111\1\1\1\12\1\123\1\47\2"+ + "\12\1\30\1\104\1\113\1\210\1\211\2\12\1\45\1\1\1\212\1\113\1\12\1\213\3\12"+ + "\1\214\1\215\1\216\1\27\1\65\1\217\1\220\1\176\2\12\1\132\1\37\7\12\1\30\1"+ + "\113\72\12\1\143\1\12\1\221\2\12\1\150\20\1\26\12\1\147\6\12\1\76\2\1\1\111"+ + "\1\222\1\55\1\223\1\224\6\12\1\15\1\1\1\153\25\12\1\147\1\1\4\12\1\204\2\12"+ + "\1\26\2\1\1\150\7\1\1\210\7\12\1\123\1\1\1\113\1\24\1\27\1\24\1\27\1\225\4"+ + "\12\1\146\1\226\1\227\2\1\1\230\1\12\1\13\1\231\2\147\2\1\7\12\1\27\30\1\1"+ + "\12\1\123\3\12\1\70\2\1\2\12\1\1\1\12\1\232\2\12\1\37\1\12\1\147\2\12\1\233"+ + "\3\1\11\12\1\147\1\113\5\1\2\12\1\26\3\12\1\143\11\1\23\12\1\111\1\12\1\37"+ + "\1\26\11\1\1\234\2\12\1\235\1\12\1\37\1\12\1\111\1\12\1\146\4\1\1\12\1\236"+ + "\1\12\1\37\1\12\1\76\4\1\3\12\1\237\4\1\1\70\1\240\1\12\1\143\2\1\1\12\1\123"+ + "\1\12\1\123\2\1\1\122\1\12\1\46\1\1\3\12\1\37\1\12\1\37\1\12\1\30\1\12\1\15"+ + "\6\1\4\12\1\45\3\1\3\12\1\30\3\12\1\30\60\1\1\153\2\12\1\26\2\1\1\64\1\1\1"+ + "\153\2\12\2\1\1\12\1\45\1\113\1\153\1\12\1\111\1\64\1\1\2\12\1\241\1\153\2"+ + "\12\1\30\1\242\1\243\2\1\1\12\1\21\1\150\5\1\1\244\1\245\1\45\2\12\1\146\1"+ + "\1\1\113\1\72\1\54\1\55\1\67\1\1\1\246\1\15\21\1\3\12\1\1\1\247\1\113\12\1"+ + "\2\12\1\146\2\1\1\250\2\1\3\12\1\1\1\251\1\113\2\1\2\12\1\27\1\1\1\113\3\1"+ + "\1\12\1\76\1\1\1\113\26\1\4\12\1\113\1\104\34\1\3\12\1\45\20\1\71\12\1\76"+ + "\16\1\14\12\1\143\53\1\2\12\1\146\75\1\44\12\1\111\33\1\43\12\1\45\1\12\1"+ + "\146\1\113\6\1\1\12\1\147\1\1\3\12\1\1\1\143\1\113\1\153\1\252\1\12\67\1\4"+ + "\12\1\46\1\70\3\1\1\153\6\1\1\15\77\1\6\12\1\27\1\123\1\45\1\76\66\1\5\12"+ + "\1\210\3\12\1\142\1\253\1\254\1\255\3\12\1\256\1\257\1\12\1\260\1\261\1\35"+ + "\24\12\1\262\1\12\1\35\1\132\1\12\1\132\1\12\1\210\1\12\1\210\1\146\1\12\1"+ + "\146\1\12\1\55\1\12\1\55\1\12\1\263\3\264\14\12\1\46\123\1\1\255\1\12\1\265"+ + "\1\266\1\267\1\270\1\271\1\272\1\273\1\150\1\274\1\150\24\1\55\12\1\111\2"+ + "\1\103\12\1\46\15\12\1\147\150\12\1\15\25\1\41\12\1\147\36\1"); - /* The ZZ_CMAP_A table has 3056 entries */ + /* The ZZ_CMAP_A table has 3024 entries */ static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\10\0\2\60\1\70\1\71\1\72\1\70\22\0\1\14\1\77\1\0\1\100\1\17\1\0\1\74\1\63"+ - "\1\2\1\3\1\21\1\22\1\67\1\13\1\1\1\0\1\53\3\55\4\54\2\47\1\73\1\0\1\62\1\76"+ - "\1\75\1\20\1\0\2\30\1\37\1\35\1\45\1\46\1\31\1\56\1\40\2\65\1\44\1\66\1\57"+ + "\10\0\2\60\1\76\1\0\1\60\1\76\22\0\1\14\1\74\1\0\1\75\1\17\1\0\1\71\1\63\1"+ + "\2\1\3\1\21\1\22\1\67\1\13\1\1\1\0\1\53\3\55\4\54\2\47\1\70\1\0\1\62\1\73"+ + "\1\72\1\20\1\0\2\30\1\37\1\35\1\45\1\46\1\31\1\56\1\40\2\65\1\44\1\66\1\57"+ "\1\65\1\42\1\50\1\64\1\34\1\65\1\43\3\33\1\65\1\32\1\6\1\10\1\7\1\16\1\12"+ "\1\0\1\25\1\26\1\36\1\35\2\25\1\27\1\56\1\40\1\65\1\61\1\43\1\65\1\24\1\65"+ - "\1\41\1\65\1\24\1\33\1\24\1\52\2\33\1\51\1\65\1\31\1\4\1\23\1\5\7\0\1\71\24"+ - "\0\1\11\12\0\1\11\4\0\1\11\5\0\27\11\1\0\12\11\4\0\14\11\16\0\5\11\7\0\1\11"+ - "\1\0\1\11\1\0\5\11\1\0\2\11\2\0\4\11\1\0\1\11\6\0\1\11\1\0\3\11\1\0\1\11\1"+ - "\0\4\11\1\0\23\11\1\0\13\11\10\0\6\11\1\0\26\11\2\0\1\11\6\0\10\11\10\0\13"+ - "\11\5\0\3\11\15\0\12\15\4\0\6\11\1\0\1\11\17\0\2\11\7\0\2\11\12\15\3\11\2"+ - "\0\2\11\1\0\16\11\15\0\11\11\13\0\1\11\16\0\12\15\6\11\4\0\2\11\4\0\1\11\5"+ - "\0\6\11\4\0\1\11\11\0\1\11\3\0\1\11\7\0\11\11\7\0\5\11\17\0\26\11\3\0\1\11"+ - "\2\0\1\11\7\0\12\11\4\0\12\15\1\11\4\0\10\11\2\0\2\11\2\0\26\11\1\0\7\11\1"+ - "\0\1\11\3\0\4\11\3\0\1\11\20\0\1\11\15\0\2\11\1\0\1\11\5\0\6\11\4\0\2\11\1"+ - "\0\2\11\1\0\2\11\1\0\2\11\17\0\4\11\1\0\1\11\7\0\12\15\2\0\3\11\20\0\11\11"+ - "\1\0\2\11\1\0\2\11\1\0\5\11\3\0\1\11\2\0\1\11\30\0\1\11\13\0\10\11\2\0\1\11"+ - "\3\0\1\11\1\0\6\11\3\0\3\11\1\0\4\11\3\0\2\11\1\0\1\11\1\0\2\11\3\0\2\11\3"+ - "\0\3\11\3\0\14\11\13\0\10\11\1\0\2\11\10\0\3\11\5\0\4\11\1\0\5\11\3\0\1\11"+ - "\3\0\2\11\15\0\13\11\2\0\1\11\21\0\1\11\12\0\6\11\5\0\22\11\3\0\10\11\1\0"+ - "\11\11\1\0\1\11\2\0\7\11\11\0\1\11\1\0\2\11\14\0\12\15\7\0\2\11\1\0\1\11\2"+ - "\0\2\11\1\0\1\11\2\0\1\11\6\0\4\11\1\0\7\11\1\0\3\11\1\0\1\11\1\0\1\11\2\0"+ - "\2\11\1\0\4\11\1\0\2\11\11\0\1\11\2\0\5\11\1\0\1\11\11\0\12\15\2\0\14\11\1"+ - "\0\24\11\13\0\5\11\3\0\6\11\4\0\4\11\3\0\1\11\3\0\2\11\7\0\3\11\4\0\15\11"+ - "\14\0\1\11\1\0\6\11\1\0\1\11\5\0\1\11\2\0\13\11\1\0\15\11\1\0\4\11\2\0\7\11"+ - "\1\0\1\11\1\0\4\11\2\0\1\11\1\0\4\11\2\0\7\11\1\0\1\11\1\0\4\11\2\0\16\11"+ - "\2\0\6\11\2\0\15\11\2\0\1\11\1\0\10\11\7\0\15\11\1\0\6\11\23\0\1\11\4\0\1"+ - "\11\3\0\11\11\1\0\1\11\5\0\17\11\1\0\16\11\2\0\14\11\13\0\1\11\15\0\7\11\7"+ - "\0\16\11\15\0\2\11\12\15\3\0\3\11\11\0\4\11\1\0\4\11\3\0\2\11\11\0\10\11\1"+ - "\0\1\11\1\0\1\11\1\0\1\11\1\0\6\11\1\0\7\11\1\0\1\11\3\0\3\11\1\0\7\11\3\0"+ - "\4\11\2\0\6\11\14\0\2\71\7\0\1\11\15\0\1\11\2\0\1\11\4\0\1\11\2\0\12\11\1"+ - "\0\1\11\3\0\5\11\6\0\1\11\1\0\1\11\1\0\1\11\1\0\4\11\1\0\13\11\2\0\4\11\5"+ - "\0\5\11\4\0\1\11\4\0\2\11\13\0\5\11\6\0\4\11\3\0\2\11\14\0\10\11\7\0\10\11"+ - "\1\0\7\11\6\0\2\11\12\0\5\11\5\0\2\11\3\0\7\11\6\0\3\11\12\15\2\11\13\0\11"+ - "\11\2\0\27\11\2\0\7\11\1\0\3\11\1\0\4\11\1\0\4\11\2\0\6\11\3\0\1\11\1\0\1"+ - "\11\2\0\5\11\1\0\12\11\12\15\5\11\1\0\3\11\1\0\10\11\4\0\7\11\3\0\1\11\3\0"+ - "\2\11\1\0\1\11\3\0\2\11\2\0\5\11\2\0\1\11\1\0\1\11\30\0\3\11\3\0\6\11\2\0"+ - "\6\11\2\0\6\11\11\0\7\11\4\0\5\11\3\0\5\11\5\0\1\11\1\0\10\11\1\0\5\11\1\0"+ - "\1\11\1\0\2\11\1\0\2\11\1\0\12\11\6\0\12\11\2\0\6\11\2\0\6\11\2\0\6\11\2\0"+ - "\3\11\3\0\14\11\1\0\16\11\1\0\2\11\1\0\2\11\1\0\10\11\6\0\4\11\4\0\16\11\2"+ - "\0\1\11\1\0\14\11\1\0\2\11\3\0\1\11\2\0\4\11\1\0\2\11\12\0\10\11\6\0\6\11"+ - "\1\0\3\11\1\0\12\11\3\0\1\11\12\0\4\11\13\0\12\15\1\11\1\0\1\11\3\0\7\11\1"+ - "\0\1\11\1\0\4\11\1\0\17\11\1\0\2\11\14\0\3\11\4\0\2\11\1\0\1\11\20\0\4\11"+ - "\10\0\1\11\13\0\10\11\5\0\3\11\2\0\1\11\2\0\2\11\2\0\4\11\1\0\14\11\1\0\1"+ - "\11\1\0\7\11\1\0\21\11\1\0\4\11\2\0\10\11\1\0\7\11\1\0\14\11\1\0\4\11\1\0"+ - "\5\11\1\0\1\11\3\0\14\11\2\0\13\11\1\0\10\11\2\0\22\15\1\0\2\11\1\0\1\11\2"+ - "\0\1\11\1\0\12\11\1\0\4\11\1\0\1\11\1\0\1\11\6\0\1\11\4\0\1\11\1\0\1\11\1"+ - "\0\1\11\1\0\3\11\1\0\2\11\1\0\1\11\2\0\1\11\1\0\1\11\1\0\1\11\1\0\1\11\1\0"+ - "\1\11\1\0\2\11\1\0\1\11\2\0\4\11\1\0\7\11\1\0\4\11\1\0\4\11\1\0\1\11\1\0\12"+ - "\11\1\0\5\11\1\0\3\11\1\0\5\11\1\0\5\11"); + "\1\41\1\65\1\24\1\33\1\24\1\52\2\33\1\51\1\65\1\31\1\4\1\23\1\5\14\0\1\11"+ + "\12\0\1\11\4\0\1\11\5\0\27\11\1\0\12\11\4\0\14\11\16\0\5\11\7\0\1\11\1\0\1"+ + "\11\1\0\5\11\1\0\2\11\2\0\4\11\1\0\1\11\6\0\1\11\1\0\3\11\1\0\1\11\1\0\4\11"+ + "\1\0\23\11\1\0\13\11\10\0\6\11\1\0\26\11\2\0\1\11\6\0\10\11\10\0\13\11\5\0"+ + "\3\11\15\0\12\15\4\0\6\11\1\0\1\11\17\0\2\11\7\0\2\11\12\15\3\11\2\0\2\11"+ + "\1\0\16\11\15\0\11\11\13\0\1\11\16\0\12\15\6\11\4\0\2\11\4\0\1\11\5\0\6\11"+ + "\4\0\1\11\11\0\1\11\3\0\1\11\7\0\11\11\7\0\5\11\17\0\26\11\3\0\1\11\2\0\1"+ + "\11\7\0\12\11\4\0\12\15\1\11\4\0\10\11\2\0\2\11\2\0\26\11\1\0\7\11\1\0\1\11"+ + "\3\0\4\11\3\0\1\11\20\0\1\11\15\0\2\11\1\0\1\11\5\0\6\11\4\0\2\11\1\0\2\11"+ + "\1\0\2\11\1\0\2\11\17\0\4\11\1\0\1\11\7\0\12\15\2\0\3\11\20\0\11\11\1\0\2"+ + "\11\1\0\2\11\1\0\5\11\3\0\1\11\2\0\1\11\30\0\1\11\13\0\10\11\2\0\1\11\3\0"+ + "\1\11\1\0\6\11\3\0\3\11\1\0\4\11\3\0\2\11\1\0\1\11\1\0\2\11\3\0\2\11\3\0\3"+ + "\11\3\0\14\11\13\0\10\11\1\0\2\11\10\0\3\11\5\0\4\11\1\0\5\11\3\0\1\11\3\0"+ + "\2\11\15\0\13\11\2\0\1\11\21\0\1\11\12\0\6\11\5\0\22\11\3\0\10\11\1\0\11\11"+ + "\1\0\1\11\2\0\7\11\11\0\1\11\1\0\2\11\14\0\12\15\7\0\2\11\1\0\1\11\2\0\2\11"+ + "\1\0\1\11\2\0\1\11\6\0\4\11\1\0\7\11\1\0\3\11\1\0\1\11\1\0\1\11\2\0\2\11\1"+ + "\0\4\11\1\0\2\11\11\0\1\11\2\0\5\11\1\0\1\11\11\0\12\15\2\0\14\11\1\0\24\11"+ + "\13\0\5\11\3\0\6\11\4\0\4\11\3\0\1\11\3\0\2\11\7\0\3\11\4\0\15\11\14\0\1\11"+ + "\1\0\6\11\1\0\1\11\5\0\1\11\2\0\13\11\1\0\15\11\1\0\4\11\2\0\7\11\1\0\1\11"+ + "\1\0\4\11\2\0\1\11\1\0\4\11\2\0\7\11\1\0\1\11\1\0\4\11\2\0\16\11\2\0\6\11"+ + "\2\0\15\11\2\0\1\11\1\0\10\11\7\0\15\11\1\0\6\11\23\0\1\11\4\0\1\11\3\0\11"+ + "\11\1\0\1\11\5\0\17\11\1\0\16\11\2\0\14\11\13\0\1\11\15\0\7\11\7\0\16\11\15"+ + "\0\2\11\12\15\3\0\3\11\11\0\4\11\1\0\4\11\3\0\2\11\11\0\10\11\1\0\1\11\1\0"+ + "\1\11\1\0\1\11\1\0\6\11\1\0\7\11\1\0\1\11\3\0\3\11\1\0\7\11\3\0\4\11\2\0\6"+ + "\11\5\0\1\11\15\0\1\11\2\0\1\11\4\0\1\11\2\0\12\11\1\0\1\11\3\0\5\11\6\0\1"+ + "\11\1\0\1\11\1\0\1\11\1\0\4\11\1\0\13\11\2\0\4\11\5\0\5\11\4\0\1\11\4\0\2"+ + "\11\13\0\5\11\6\0\4\11\3\0\2\11\14\0\10\11\7\0\10\11\1\0\7\11\6\0\2\11\12"+ + "\0\5\11\5\0\2\11\3\0\7\11\6\0\3\11\12\15\2\11\13\0\11\11\2\0\27\11\2\0\7\11"+ + "\1\0\3\11\1\0\4\11\1\0\4\11\2\0\6\11\3\0\1\11\1\0\1\11\2\0\5\11\1\0\12\11"+ + "\12\15\5\11\1\0\3\11\1\0\10\11\4\0\7\11\3\0\1\11\3\0\2\11\1\0\1\11\3\0\2\11"+ + "\2\0\5\11\2\0\1\11\1\0\1\11\30\0\3\11\3\0\6\11\2\0\6\11\2\0\6\11\11\0\7\11"+ + "\4\0\5\11\3\0\5\11\5\0\1\11\1\0\10\11\1\0\5\11\1\0\1\11\1\0\2\11\1\0\2\11"+ + "\1\0\12\11\6\0\12\11\2\0\6\11\2\0\6\11\2\0\6\11\2\0\3\11\3\0\14\11\1\0\16"+ + "\11\1\0\2\11\1\0\2\11\1\0\10\11\6\0\4\11\4\0\16\11\2\0\1\11\1\0\14\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\1\0\2\11\12\0\10\11\6\0\6\11\1\0\3\11\1\0\12\11\3"+ + "\0\1\11\12\0\4\11\13\0\12\15\1\11\1\0\1\11\3\0\7\11\1\0\1\11\1\0\4\11\1\0"+ + "\17\11\1\0\2\11\14\0\3\11\4\0\2\11\1\0\1\11\20\0\4\11\10\0\1\11\13\0\10\11"+ + "\5\0\3\11\2\0\1\11\2\0\2\11\2\0\4\11\1\0\14\11\1\0\1\11\1\0\7\11\1\0\21\11"+ + "\1\0\4\11\2\0\10\11\1\0\7\11\1\0\14\11\1\0\4\11\1\0\5\11\1\0\1\11\3\0\14\11"+ + "\2\0\13\11\1\0\10\11\2\0\22\15\1\0\2\11\1\0\1\11\2\0\1\11\1\0\12\11\1\0\4"+ + "\11\1\0\1\11\1\0\1\11\6\0\1\11\4\0\1\11\1\0\1\11\1\0\1\11\1\0\3\11\1\0\2\11"+ + "\1\0\1\11\2\0\1\11\1\0\1\11\1\0\1\11\1\0\1\11\1\0\1\11\1\0\2\11\1\0\1\11\2"+ + "\0\4\11\1\0\7\11\1\0\4\11\1\0\4\11\1\0\1\11\1\0\12\11\1\0\5\11\1\0\3\11\1"+ + "\0\5\11\1\0\5\11"); /** * Translates DFA states to action switch labels. @@ -191,23 +190,23 @@ class _RegExLexer implements FlexLexer { private static final String ZZ_ACTION_PACKED_0 = "\13\0\1\1\6\0\1\2\1\3\1\4\1\5\1\6"+ "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\20\1\21\1\22\1\23\1\2\1\24\1\25"+ - "\1\26\1\27\1\30\1\31\1\32\1\31\1\33\1\34"+ - "\1\35\1\12\1\36\1\37\1\2\1\12\1\40\1\41"+ - "\1\24\1\42\1\43\1\44\1\45\1\46\1\47\1\1"+ - "\1\26\1\50\1\51\2\52\1\53\1\54\2\0\1\55"+ - "\1\0\1\56\1\57\1\60\1\61\1\62\1\63\1\64"+ - "\1\65\1\66\1\67\1\12\1\67\1\70\2\71\1\72"+ - "\1\73\1\12\1\74\1\75\1\76\1\77\1\100\1\101"+ - "\1\102\1\12\1\103\1\104\1\105\1\0\1\106\1\107"+ - "\1\110\2\53\1\111\1\0\1\112\1\113\1\114\1\115"+ - "\1\116\1\0\1\117\1\0\1\120\2\0\1\121\1\122"+ - "\1\123\1\74\1\124\1\125\1\126\1\127\2\130\1\131"+ - "\1\132\1\133\1\134\1\135\1\136\1\137\1\140\2\0"+ - "\1\74\1\141\1\127\2\130\1\142\1\127\1\143\1\144"; + "\1\17\1\20\1\21\1\22\1\2\1\23\1\24\1\25"+ + "\1\26\1\27\1\30\2\31\1\32\1\33\1\34\1\32"+ + "\1\35\1\36\1\37\1\12\1\40\1\2\1\41\1\12"+ + "\1\42\1\43\1\44\1\45\1\46\1\47\1\1\1\25"+ + "\1\50\1\51\2\52\1\53\1\54\2\0\1\55\1\56"+ + "\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66"+ + "\1\12\1\66\1\67\2\70\1\71\1\72\1\12\1\73"+ + "\1\74\1\75\1\76\1\77\1\100\1\101\1\12\1\102"+ + "\1\103\1\104\1\105\1\106\1\107\1\110\1\111\1\112"+ + "\2\53\1\113\1\0\1\114\1\115\1\116\1\117\1\120"+ + "\1\0\1\121\2\0\1\122\1\123\1\124\1\73\1\125"+ + "\1\126\1\127\1\130\2\131\1\132\1\133\1\134\1\135"+ + "\1\136\1\137\1\140\2\0\1\73\1\141\1\130\2\131"+ + "\1\142\1\130\1\143\1\144"; private static int [] zzUnpackAction() { - int [] result = new int[151]; + int [] result = new int[148]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -232,28 +231,28 @@ class _RegExLexer implements FlexLexer { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\101\0\202\0\303\0\u0104\0\u0145\0\u0186\0\u01c7"+ - "\0\u0208\0\u0249\0\u028a\0\u02cb\0\u030c\0\u034d\0\u038e\0\u03cf"+ - "\0\u0410\0\u0451\0\u0492\0\u0492\0\u04d3\0\u0492\0\u0514\0\u0492"+ - "\0\u0555\0\u0492\0\u0596\0\u0492\0\u0492\0\u0492\0\u0492\0\u0492"+ - "\0\u0492\0\u0492\0\u0492\0\u0492\0\u05d7\0\u0492\0\u0492\0\u0618"+ - "\0\u0659\0\u0492\0\u0492\0\u0492\0\u069a\0\u0492\0\u06db\0\u0492"+ - "\0\u071c\0\u0492\0\u0492\0\u075d\0\u079e\0\u0492\0\u0492\0\u0555"+ - "\0\u0492\0\u0492\0\u0492\0\u07df\0\u0820\0\u0492\0\u0492\0\u0861"+ - "\0\u0492\0\u0492\0\u0492\0\u08a2\0\u08e3\0\u0924\0\u0965\0\u09a6"+ - "\0\u0492\0\u09e7\0\u0a28\0\u0492\0\u0492\0\u0492\0\u0492\0\u0492"+ - "\0\u0492\0\u0492\0\u0492\0\u0a69\0\u0aaa\0\u0492\0\u0492\0\u0aeb"+ - "\0\u0492\0\u0492\0\u0492\0\u0492\0\u0b2c\0\u0492\0\u0b6d\0\u0bae"+ - "\0\u0bef\0\u0492\0\u0492\0\u0c30\0\u0492\0\u0492\0\u0492\0\u0c71"+ - "\0\u0492\0\u0492\0\u0492\0\u0492\0\u0cb2\0\u0492\0\u0cf3\0\u0d34"+ - "\0\u0492\0\u0492\0\u0492\0\u0492\0\u0d75\0\u0492\0\u0db6\0\u0492"+ - "\0\u0df7\0\u0e38\0\u0492\0\u0492\0\u0492\0\u0e79\0\u0492\0\u0eba"+ - "\0\u0492\0\u0efb\0\u0f3c\0\u0f7d\0\u0492\0\u0492\0\u0492\0\u0492"+ - "\0\u0492\0\u0492\0\u0492\0\u0492\0\u0fbe\0\u0fff\0\u0492\0\u0492"+ - "\0\u1040\0\u1081\0\u0492\0\u0492\0\u10c2\0\u0492\0\u0492"; + "\0\0\0\77\0\176\0\275\0\374\0\u013b\0\u017a\0\u01b9"+ + "\0\u01f8\0\u0237\0\u0276\0\u02b5\0\u02f4\0\u0333\0\u0372\0\u03b1"+ + "\0\u03f0\0\u042f\0\u046e\0\u046e\0\u04ad\0\u046e\0\u04ec\0\u046e"+ + "\0\u052b\0\u046e\0\u056a\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e"+ + "\0\u046e\0\u046e\0\u046e\0\u05a9\0\u046e\0\u046e\0\u05e8\0\u0627"+ + "\0\u046e\0\u046e\0\u046e\0\u05a9\0\u046e\0\u0666\0\u046e\0\u06a5"+ + "\0\u046e\0\u06e4\0\u046e\0\u0723\0\u046e\0\u0762\0\u046e\0\u07a1"+ + "\0\u046e\0\u046e\0\u046e\0\u07e0\0\u081f\0\u046e\0\u046e\0\u085e"+ + "\0\u046e\0\u046e\0\u046e\0\u089d\0\u08dc\0\u091b\0\u095a\0\u0999"+ + "\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e"+ + "\0\u046e\0\u09d8\0\u0a17\0\u046e\0\u046e\0\u0a56\0\u046e\0\u046e"+ + "\0\u046e\0\u046e\0\u0a95\0\u046e\0\u0ad4\0\u0b13\0\u0b52\0\u046e"+ + "\0\u046e\0\u0b91\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e"+ + "\0\u046e\0\u046e\0\u046e\0\u046e\0\u0bd0\0\u046e\0\u0c0f\0\u0c4e"+ + "\0\u046e\0\u046e\0\u046e\0\u046e\0\u0c8d\0\u046e\0\u0ccc\0\u0d0b"+ + "\0\u046e\0\u046e\0\u046e\0\u0d4a\0\u046e\0\u0d89\0\u046e\0\u0dc8"+ + "\0\u0e07\0\u0e46\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e\0\u046e"+ + "\0\u046e\0\u0e85\0\u0ec4\0\u046e\0\u046e\0\u0f03\0\u0f42\0\u046e"+ + "\0\u046e\0\u0f81\0\u046e\0\u046e"; private static int [] zzUnpackRowMap() { - int [] result = new int[151]; + int [] result = new int[148]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -278,82 +277,78 @@ class _RegExLexer implements FlexLexer { private static final String ZZ_TRANS_PACKED_0 = "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+ "\1\33\3\23\1\34\1\23\1\35\1\36\1\37\1\40"+ - "\1\41\1\42\34\23\1\43\7\23\1\43\1\23\1\43"+ - "\5\23\1\44\10\23\1\45\70\23\5\46\1\47\3\46"+ - "\1\50\4\46\1\35\5\46\23\50\1\46\3\50\3\46"+ - "\2\50\1\46\1\50\2\46\3\50\17\46\1\47\7\46"+ - "\1\51\31\46\1\51\3\46\3\51\11\46\1\52\11\46"+ - "\7\53\1\54\1\55\57\53\3\0\24\53\1\56\51\53"+ - "\3\0\6\53\6\23\1\57\1\60\1\61\2\23\1\62"+ - "\44\23\1\63\7\23\1\63\1\23\1\63\1\23\1\64"+ - "\4\23\6\53\1\31\1\53\1\65\5\53\1\66\51\53"+ - "\1\43\1\23\1\43\6\53\4\46\1\67\1\46\1\70"+ - "\1\46\1\65\21\46\1\71\1\46\1\71\2\46\1\71"+ - "\2\46\1\71\1\46\1\71\12\46\1\71\6\46\1\71"+ - "\16\46\1\67\1\46\1\70\1\46\1\65\70\46\3\72"+ - "\1\73\5\72\1\74\1\72\1\75\10\72\23\74\1\72"+ - "\3\74\3\72\2\74\1\72\1\74\2\72\3\74\4\72"+ - "\1\76\5\72\70\14\1\77\10\14\11\72\1\100\12\72"+ - "\23\100\1\72\3\100\3\72\2\100\1\72\1\100\2\72"+ - "\3\100\6\72\1\101\14\72\1\100\12\72\23\100\1\72"+ - "\3\100\3\72\2\100\1\72\1\100\1\72\1\102\3\100"+ - "\15\72\1\73\5\72\1\100\12\72\23\100\1\72\3\100"+ - "\3\72\2\100\1\72\1\100\2\72\3\100\15\72\1\73"+ - "\5\72\1\100\3\72\1\51\6\72\23\100\1\51\3\100"+ - "\3\51\2\100\1\72\1\100\2\72\3\100\12\72\11\103"+ - "\1\50\4\103\1\35\5\103\23\50\1\103\3\50\3\103"+ - "\2\50\1\103\1\50\2\103\3\50\4\103\1\104\5\103"+ - "\4\0\1\105\215\0\1\106\75\0\1\107\31\0\1\107"+ - "\3\0\3\107\11\0\1\110\20\0\1\111\1\112\5\0"+ - "\1\113\62\0\1\114\3\115\1\116\1\117\1\120\1\114"+ - "\1\120\2\114\1\121\1\122\1\114\1\120\5\115\2\123"+ - "\1\124\1\125\3\126\3\127\1\130\2\131\2\132\3\133"+ - "\1\134\1\135\1\136\1\137\1\140\1\141\2\135\1\142"+ - "\1\143\1\122\1\144\2\114\1\127\2\134\1\114\1\122"+ - "\1\114\1\122\6\114\45\0\1\145\35\0\2\50\5\0"+ - "\5\50\6\0\34\50\1\0\1\50\2\0\3\50\27\0"+ - "\1\51\31\0\1\51\3\0\3\51\32\0\1\146\100\0"+ - "\1\147\1\150\5\0\1\113\54\0\1\151\5\0\1\114"+ - "\3\115\1\116\1\117\3\120\2\114\1\121\1\122\1\114"+ - "\1\120\5\115\3\123\4\134\3\127\1\130\2\131\2\132"+ - "\3\133\1\134\1\135\1\136\1\137\1\140\1\141\2\135"+ - "\1\142\1\143\1\122\1\134\2\114\3\134\1\114\1\122"+ - "\1\114\1\122\6\114\74\0\1\152\4\0\1\114\3\115"+ - "\1\116\1\117\1\120\1\114\1\120\2\114\1\121\1\122"+ - "\1\114\1\120\5\115\2\123\5\134\3\127\1\130\2\131"+ - "\2\132\3\133\1\134\1\135\1\136\1\137\1\140\1\141"+ - "\2\135\1\142\1\143\1\122\1\134\2\114\3\134\1\114"+ - "\1\122\1\114\1\122\6\114\11\0\1\74\12\0\23\74"+ + "\1\41\1\42\34\23\1\34\14\23\1\43\1\34\10\23"+ + "\1\44\66\23\5\45\1\46\3\45\1\47\4\45\1\35"+ + "\5\45\23\47\1\45\3\47\3\45\2\47\1\45\1\47"+ + "\2\45\3\47\15\45\1\46\7\45\1\50\31\45\1\50"+ + "\3\45\3\50\11\45\1\51\7\45\16\0\1\52\60\0"+ + "\10\53\1\54\66\53\6\55\1\56\1\57\1\60\3\55"+ + "\1\61\43\55\1\61\15\55\1\61\6\23\1\62\1\63"+ + "\1\64\2\23\1\65\1\34\43\23\1\34\10\23\1\66"+ + "\4\23\1\34\4\45\1\67\3\45\1\70\21\45\1\71"+ + "\1\45\1\71\2\45\1\71\2\45\1\71\1\45\1\71"+ + "\12\45\1\71\6\45\1\71\14\45\1\67\3\45\1\70"+ + "\66\45\3\72\1\73\5\72\1\74\1\72\1\75\10\72"+ + "\23\74\1\72\3\74\3\72\2\74\1\72\1\74\2\72"+ + "\3\74\1\72\1\76\6\72\76\14\1\77\11\72\1\100"+ + "\12\72\23\100\1\72\3\100\3\72\2\100\1\72\1\100"+ + "\2\72\3\100\3\72\1\101\15\72\1\100\12\72\23\100"+ + "\1\72\3\100\3\72\2\100\1\72\1\100\1\72\1\102"+ + "\3\100\13\72\1\73\5\72\1\100\12\72\23\100\1\72"+ + "\3\100\3\72\2\100\1\72\1\100\2\72\3\100\13\72"+ + "\1\73\5\72\1\100\3\72\1\50\6\72\23\100\1\50"+ + "\3\100\3\50\2\100\1\72\1\100\2\72\3\100\10\72"+ + "\11\103\1\47\4\103\1\35\5\103\23\47\1\103\3\47"+ + "\3\103\2\47\1\103\1\47\2\103\3\47\1\103\1\104"+ + "\6\103\4\0\1\105\211\0\1\106\73\0\1\107\31\0"+ + "\1\107\3\0\3\107\11\0\1\110\25\0\1\111\60\0"+ + "\1\112\3\113\1\114\1\115\1\116\1\112\1\116\2\112"+ + "\1\117\1\120\1\112\1\116\5\113\2\121\1\122\1\123"+ + "\3\124\3\125\1\126\2\127\2\130\3\131\1\132\1\133"+ + "\1\134\1\135\1\136\1\137\2\133\1\140\1\141\1\120"+ + "\1\142\2\112\1\125\2\132\7\112\1\120\45\0\1\143"+ + "\33\0\2\47\5\0\5\47\6\0\34\47\1\0\1\47"+ + "\2\0\3\47\25\0\1\50\31\0\1\50\3\0\3\50"+ + "\37\0\1\144\51\0\1\145\15\0\1\146\40\0\1\147"+ + "\44\0\1\150\51\0\1\151\6\0\1\112\3\113\1\114"+ + "\1\115\3\116\2\112\1\117\1\120\1\112\1\116\5\113"+ + "\3\121\4\132\3\125\1\126\2\127\2\130\3\131\1\132"+ + "\1\133\1\134\1\135\1\136\1\137\2\133\1\140\1\141"+ + "\1\120\1\132\2\112\3\132\7\112\1\120\71\0\1\152"+ + "\5\0\1\112\3\113\1\114\1\115\1\116\1\112\1\116"+ + "\2\112\1\117\1\120\1\112\1\116\5\113\2\121\5\132"+ + "\3\125\1\126\2\127\2\130\3\131\1\132\1\133\1\134"+ + "\1\135\1\136\1\137\2\133\1\140\1\141\1\120\1\132"+ + "\2\112\3\132\7\112\1\120\11\0\1\74\12\0\23\74"+ "\1\0\3\74\3\0\2\74\1\0\1\74\2\0\3\74"+ - "\23\0\1\75\12\0\23\75\1\0\3\75\3\0\2\75"+ - "\1\0\1\75\2\0\3\75\23\0\5\100\6\0\34\100"+ - "\1\0\1\100\2\0\3\100\21\0\1\153\76\0\1\154"+ + "\21\0\1\75\12\0\23\75\1\0\3\75\3\0\2\75"+ + "\1\0\1\75\2\0\3\75\21\0\5\100\6\0\34\100"+ + "\1\0\1\100\2\0\3\100\17\0\1\153\74\0\1\154"+ "\17\0\2\155\1\0\1\155\4\0\3\155\5\0\3\155"+ - "\3\0\3\155\25\0\1\156\37\0\1\157\17\0\1\160"+ - "\1\161\7\0\1\162\1\0\1\162\1\163\1\164\1\165"+ - "\5\0\1\166\7\0\1\107\31\0\1\107\3\0\3\107"+ - "\11\0\1\167\26\0\1\167\31\0\1\167\3\0\3\167"+ - "\32\0\1\111\100\0\1\170\1\171\74\0\1\172\156\0"+ - "\1\173\1\174\15\0\101\175\47\0\1\176\3\0\3\176"+ - "\27\0\1\177\20\0\2\200\1\0\1\200\4\0\3\200"+ - "\5\0\3\200\3\0\3\200\27\0\1\201\20\0\2\202"+ - "\1\0\1\202\4\0\3\202\5\0\3\202\3\0\3\202"+ - "\76\0\1\203\1\204\1\203\105\0\1\205\1\206\24\0"+ - "\1\207\76\0\1\210\17\0\2\155\1\0\1\155\4\0"+ - "\3\155\5\0\3\155\3\0\3\155\105\0\1\211\13\0"+ - "\1\212\100\0\1\213\1\214\1\0\3\215\1\0\75\215"+ - "\5\0\1\166\7\0\1\167\31\0\1\167\3\0\3\167"+ - "\32\0\1\170\120\0\1\216\120\0\1\217\3\0\3\217"+ - "\50\0\2\220\1\0\1\220\4\0\3\220\5\0\3\220"+ - "\3\0\3\220\50\0\2\221\1\0\1\221\4\0\3\221"+ - "\5\0\3\221\3\0\3\221\76\0\3\222\76\0\3\223"+ - "\23\0\3\215\1\224\75\215\5\0\1\126\120\0\2\225"+ - "\1\0\1\225\4\0\3\225\5\0\3\225\3\0\3\225"+ - "\76\0\3\226\50\0\2\227\1\0\1\227\4\0\3\227"+ - "\5\0\3\227\3\0\3\227\23\0"; + "\3\0\3\155\23\0\1\156\37\0\1\157\17\0\1\160"+ + "\1\161\4\0\1\162\1\0\1\162\1\163\1\164\1\165"+ + "\6\0\1\166\7\0\1\107\31\0\1\107\3\0\3\107"+ + "\11\0\1\167\24\0\1\167\31\0\1\167\3\0\3\167"+ + "\25\0\1\170\154\0\1\171\1\172\13\0\77\173\47\0"+ + "\1\174\3\0\3\174\25\0\1\175\20\0\2\176\1\0"+ + "\1\176\4\0\3\176\5\0\3\176\3\0\3\176\25\0"+ + "\1\177\20\0\2\200\1\0\1\200\4\0\3\200\5\0"+ + "\3\200\3\0\3\200\74\0\1\201\1\202\1\201\103\0"+ + "\1\203\1\204\20\0\1\205\17\0\2\155\1\0\1\155"+ + "\4\0\3\155\5\0\3\155\3\0\3\155\103\0\1\206"+ + "\10\0\1\207\76\0\1\210\1\211\2\0\3\212\1\0"+ + "\73\212\5\0\1\166\7\0\1\167\31\0\1\167\3\0"+ + "\3\167\50\0\1\213\116\0\1\214\3\0\3\214\46\0"+ + "\2\215\1\0\1\215\4\0\3\215\5\0\3\215\3\0"+ + "\3\215\46\0\2\216\1\0\1\216\4\0\3\216\5\0"+ + "\3\216\3\0\3\216\74\0\3\217\74\0\3\220\21\0"+ + "\3\212\1\221\73\212\5\0\1\124\116\0\2\222\1\0"+ + "\1\222\4\0\3\222\5\0\3\222\3\0\3\222\74\0"+ + "\3\223\46\0\2\224\1\0\1\224\4\0\3\224\5\0"+ + "\3\224\3\0\3\224\21\0"; private static int [] zzUnpackTrans() { - int [] result = new int[4355]; + int [] result = new int[4032]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -392,17 +387,17 @@ class _RegExLexer implements FlexLexer { private static final String ZZ_ATTRIBUTE_PACKED_0 = "\13\0\1\1\6\0\2\11\1\1\1\11\1\1\1\11"+ - "\1\1\1\11\1\1\11\11\1\1\2\11\2\1\3\11"+ - "\1\1\1\11\1\1\1\11\1\1\2\11\2\1\2\11"+ - "\1\1\3\11\2\1\2\11\1\1\3\11\3\1\2\0"+ - "\1\11\1\0\1\1\10\11\2\1\2\11\1\1\4\11"+ - "\1\1\1\11\3\1\2\11\1\1\3\11\1\0\4\11"+ - "\1\1\1\11\1\0\1\1\4\11\1\0\1\11\1\0"+ - "\1\11\2\0\3\11\1\1\1\11\1\1\1\11\3\1"+ - "\10\11\2\0\2\11\2\1\2\11\1\1\2\11"; + "\1\1\1\11\1\1\10\11\1\1\2\11\2\1\3\11"+ + "\1\1\1\11\1\1\1\11\1\1\1\11\1\1\1\11"+ + "\1\1\1\11\1\1\1\11\1\1\3\11\2\1\2\11"+ + "\1\1\3\11\3\1\2\0\11\11\2\1\2\11\1\1"+ + "\4\11\1\1\1\11\3\1\2\11\1\1\12\11\1\1"+ + "\1\11\1\0\1\1\4\11\1\0\1\11\2\0\3\11"+ + "\1\1\1\11\1\1\1\11\3\1\7\11\2\0\2\11"+ + "\2\1\2\11\1\1\2\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[151]; + int [] result = new int[148]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -459,7 +454,7 @@ class _RegExLexer implements FlexLexer { /* user code: */ // This adds support for nested states. I'm no JFlex pro, so maybe this is overkill, but it works quite well. - final ArrayList states = new ArrayList<>(); + final IntArrayList states = new IntArrayList(); // This was an idea to use the regex implementation for XML schema regexes (which use a slightly different syntax) // as well, but is currently unfinished as it requires to tweak more places than just the lexer. @@ -804,7 +799,7 @@ class _RegExLexer implements FlexLexer { } case 107: break; case 8: - { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; yypushstate(CLASS2); return RegExpTT.CLASS_BEGIN; + { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } case 108: break; case 9: @@ -816,7 +811,7 @@ class _RegExLexer implements FlexLexer { } case 110: break; case 11: - { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; + { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; } case 111: break; case 12: @@ -844,67 +839,63 @@ class _RegExLexer implements FlexLexer { } case 117: break; case 18: - { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; + { if (commentMode) { yypushstate(COMMENT); return RegExpTT.COMMENT; } else return RegExpTT.CHARACTER; } case 118: break; case 19: - { if (commentMode) { yypushstate(COMMENT); return RegExpTT.COMMENT; } else return RegExpTT.CHARACTER; + { yypopstate(); yypushback(1); } case 119: break; case 20: - { yypopstate(); yypushback(1); + { yypopstate(); return RegExpTT.RBRACE; } case 120: break; case 21: - { yypopstate(); return RegExpTT.RBRACE; + { return RegExpTT.NAME; } case 121: break; case 22: - { return RegExpTT.NAME; + { return RegExpTT.NUMBER; } case 122: break; case 23: - { return RegExpTT.NUMBER; + { return RegExpTT.COMMA; } case 123: break; case 24: - { return RegExpTT.COMMA; + { yybegin(CLASS1); return RegExpTT.CARET; } case 124: break; case 25: - { assert false : yytext(); + { states.set(states.size() - 1, CLASS2); return RegExpTT.CHARACTER; } case 125: break; case 26: - { yybegin(CLASS2); return RegExpTT.CHARACTER; + { yypushback(1); yybegin(CLASS2); } case 126: break; case 27: - { yybegin(CLASS1); return RegExpTT.CARET; + { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; } case 127: break; case 28: - { if (allowNestedCharacterClasses) { - yypushstate(CLASS2); - return RegExpTT.CLASS_BEGIN; - } - return RegExpTT.CHARACTER; + { if (allowEmptyCharacterClass) { yypopstate(); return RegExpTT.CLASS_END; } yybegin(CLASS2); return RegExpTT.CHARACTER; } case 128: break; case 29: - { yypopstate(); return RegExpTT.CLASS_END; + { if (commentMode) return com.intellij.psi.TokenType.WHITE_SPACE; yypushback(1); yybegin(CLASS2); } case 129: break; case 30: - { return RegExpTT.MINUS; + { if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; } case 130: break; case 31: - { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.ESC_CHARACTER; + { yypopstate(); return RegExpTT.CLASS_END; } case 131: break; case 32: - { yybegin(CLASS2); return RegExpTT.CARET; + { return RegExpTT.MINUS; } case 132: break; case 33: @@ -959,70 +950,62 @@ class _RegExLexer implements FlexLexer { // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; - if (allowEmptyCharacterClass) yypushstate(CLASS2); else yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; + { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } case 145: break; case 46: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; yypushstate(NEGATE_CLASS2); return RegExpTT.CLASS_BEGIN; + { return RegExpTT.REDUNDANT_ESCAPE; } case 146: break; case 47: - { return RegExpTT.REDUNDANT_ESCAPE; + { return (yystate() == CLASS2) ? RegExpTT.REDUNDANT_ESCAPE : RegExpTT.ESC_CHARACTER; } case 147: break; case 48: - { return (yystate() == CLASS2) ? RegExpTT.REDUNDANT_ESCAPE : RegExpTT.ESC_CHARACTER; + { return (allowDanglingMetacharacters != Boolean.TRUE && yystate() != CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } case 148: break; case 49: - { return (allowDanglingMetacharacters != Boolean.TRUE && yystate() != CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + { return (allowDanglingMetacharacters == Boolean.FALSE && yystate() != CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } case 149: break; case 50: - { return (allowDanglingMetacharacters == Boolean.FALSE && yystate() != CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + { return RegExpTT.ESC_CHARACTER; } case 150: break; case 51: - { return RegExpTT.ESC_CHARACTER; + { return (yystate() == CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } case 151: break; case 52: - { return (yystate() == CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + { return commentMode ? RegExpTT.ESC_CTRL_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } case 152: break; case 53: - { return commentMode ? RegExpTT.CHARACTER : RegExpTT.REDUNDANT_ESCAPE; + { return RegExpTT.ESC_CTRL_CHARACTER; } case 153: break; case 54: - { return RegExpTT.ESC_CTRL_CHARACTER; + { return RegExpTT.BOUNDARY; } case 154: break; case 55: - { return RegExpTT.BOUNDARY; + { return RegExpTT.CHAR_CLASS; } case 155: break; case 56: - { return RegExpTT.CHAR_CLASS; + { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } case 156: break; case 57: - { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; + { yypushstate(PROP); return RegExpTT.PROPERTY; } case 157: break; case 58: - { yypushstate(PROP); return RegExpTT.PROPERTY; + { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } case 158: break; case 59: - { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } - case 159: break; - case 60: { String text = yytext().toString().substring(1); if (allowOctalNoLeadingZero) { if (Integer.parseInt(text) <= capturingGroupCount && yystate() != CLASS2) return RegExpTT.BACKREF; @@ -1064,162 +1047,157 @@ class _RegExLexer implements FlexLexer { return RegExpTT.BACKREF; } } + case 159: break; + case 60: + { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; + } case 160: break; case 61: - { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; + { return RegExpTT.BAD_HEX_VALUE; } case 161: break; case 62: - { return RegExpTT.BAD_HEX_VALUE; + { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; } case 162: break; case 63: - { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; + { return (allowOctalNoLeadingZero ? RegExpTT.OCT_CHAR : RegExpTT.BAD_OCT_VALUE); } case 163: break; case 64: - { return (allowOctalNoLeadingZero ? RegExpTT.OCT_CHAR : RegExpTT.BAD_OCT_VALUE); + { return (allowHexDigitClass || allowHorizontalWhitespaceClass ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN); } case 164: break; case 65: - { return (allowHexDigitClass || allowHorizontalWhitespaceClass ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN); + { yypushstate(NAMED); return RegExpTT.NAMED_CHARACTER; } case 165: break; case 66: - { yypushstate(NAMED); return RegExpTT.NAMED_CHARACTER; + { yypopstate(); return RegExpTT.QUOTE_END; } case 166: break; case 67: - { yypopstate(); return RegExpTT.QUOTE_END; - } - case 167: break; - case 68: - { yybegin(CLASS2); return RegExpTT.REDUNDANT_ESCAPE; - } - case 168: break; - case 69: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowNestedCharacterClasses) { - yypushstate(CLASS1); - return RegExpTT.CLASS_BEGIN; - } - return RegExpTT.CHARACTER; + { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; + } + case 167: break; + case 68: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + { yybegin(CLASS2); if (allowPosixBracketExpressions) { yypushback(1); } else if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } else { return RegExpTT.CHARACTER; } + } + case 168: break; + case 69: + { yybegin(CLASS2); return allowEmptyCharacterClass ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } case 169: break; case 70: + { yypushstate(QUOTED_CLASS1); return RegExpTT.QUOTE_BEGIN; + } + case 170: break; + case 71: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); + { if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; + } + case 171: break; + case 72: { if (allowPosixBracketExpressions) { yybegin(BRACKET_EXPRESSION); return RegExpTT.BRACKET_EXPRESSION_BEGIN; } else { yypushback(1); - return RegExpTT.CHARACTER; + return allowNestedCharacterClasses ? RegExpTT.CLASS_BEGIN : RegExpTT.CHARACTER; } } - case 170: break; - case 71: - { if (allowNestedCharacterClasses) return RegExpTT.ANDAND; else yypushback(1); return RegExpTT.CHARACTER; - } - case 171: break; - case 72: - { yybegin(CLASS2); return RegExpTT.BRACKET_EXPRESSION_END; - } case 172: break; case 73: - { yybegin(PY_COND_REF); return RegExpTT.PYTHON_COND_REF; + { if (allowNestedCharacterClasses) return RegExpTT.ANDAND; else yypushback(1); return RegExpTT.CHARACTER; } case 173: break; case 74: - { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_NAMED_GROUP; + { yybegin(CLASS2); return RegExpTT.BRACKET_EXPRESSION_END; } case 174: break; case 75: - { yybegin(QUOTED_NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_QUOTED_NAMED_GROUP; + { yybegin(PY_COND_REF); return RegExpTT.PYTHON_COND_REF; } case 175: break; case 76: - { return RegExpTT.NON_CAPT_GROUP; + { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_NAMED_GROUP; } case 176: break; case 77: - { return RegExpTT.POS_LOOKAHEAD; + { yybegin(QUOTED_NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_QUOTED_NAMED_GROUP; } case 177: break; case 78: - { return RegExpTT.NEG_LOOKAHEAD; + { return RegExpTT.NON_CAPT_GROUP; } case 178: break; case 79: + { return RegExpTT.POS_LOOKAHEAD; + } + case 179: break; + case 80: + { return RegExpTT.NEG_LOOKAHEAD; + } + case 180: break; + case 81: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } - case 179: break; - case 80: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; - if (allowEmptyCharacterClass) yypushstate(CLASS2); else yypushstate(NEGATE_CLASS1); return RegExpTT.CLASS_BEGIN; - } - case 180: break; - case 81: - { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_CALL; - } case 181: break; case 82: - { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_CALL; + { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_CALL; } case 182: break; case 83: - { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL; + { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_CALL; } case 183: break; case 84: + { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL; + } + case 184: break; + case 85: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); { if (allowExtendedUnicodeCharacter) yypushstate(EMBRACED_HEX); else return RegExpTT.BAD_HEX_VALUE; } - case 184: break; - case 85: - { if (allowOneHexCharEscape) { return RegExpTT.HEX_CHAR; } else { yypushback(1); return RegExpTT.BAD_HEX_VALUE; } - } case 185: break; case 86: + { if (allowOneHexCharEscape) { return RegExpTT.HEX_CHAR; } else { yypushback(1); return RegExpTT.BAD_HEX_VALUE; } + } + case 186: break; + case 87: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); { if (allowExtendedUnicodeCharacter) yypushstate(EMBRACED_HEX); else return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; } - case 186: break; - case 87: - { yypushback(yylength() - 2); return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; - } case 187: break; case 88: - { return RegExpTT.OCT_CHAR; + { yypushback(yylength() - 2); return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; } case 188: break; case 89: - { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_REF; + { return RegExpTT.OCT_CHAR; } case 189: break; case 90: - { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_REF; + { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_REF; } case 190: break; case 91: - // lookahead expression with fixed base length - zzMarkedPos = Character.offsetByCodePoints - (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); - { if (allowNestedCharacterClasses) { - yypushstate(CLASS1); - return RegExpTT.CLASS_BEGIN; - } - return RegExpTT.CHARACTER; + { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_REF; } case 191: break; case 92: diff --git a/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex b/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex index 167bb5f399a8..6fd70655d1b6 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex +++ b/RegExpSupport/src/org/intellij/lang/regexp/regexp-lexer.flex @@ -5,7 +5,7 @@ import com.intellij.lexer.FlexLexer; import com.intellij.psi.StringEscapesTokenTypes; import com.intellij.psi.tree.IElementType; -import java.util.ArrayList; +import com.intellij.util.containers.IntArrayList; import java.util.EnumSet; @SuppressWarnings("ALL") @@ -19,7 +19,7 @@ import java.util.EnumSet; %{ // This adds support for nested states. I'm no JFlex pro, so maybe this is overkill, but it works quite well. - final ArrayList states = new ArrayList<>(); + final IntArrayList states = new IntArrayList(); // This was an idea to use the regex implementation for XML schema regexes (which use a slightly different syntax) // as well, but is currently unfinished as it requires to tweak more places than just the lexer. @@ -94,10 +94,10 @@ import java.util.EnumSet; %xstate QUOTED %xstate EMBRACED %xstate QUANTIFIER +%xstate NEGATED_CLASS +%xstate QUOTED_CLASS1 %xstate CLASS1 -%xstate NEGATE_CLASS1 %state CLASS2 -%state NEGATE_CLASS2 %state PROP %state NAMED %xstate OPTIONS @@ -137,10 +137,10 @@ HEX_CHAR=[0-9a-fA-F] %% -"\\Q" { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; } +{ESCAPE} "Q" { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; } { - "\\E" { yypopstate(); return RegExpTT.QUOTE_END; } + {ESCAPE} "E" { yypopstate(); return RegExpTT.QUOTE_END; } {ANY} { return RegExpTT.CHARACTER; } } @@ -232,7 +232,7 @@ HEX_CHAR=[0-9a-fA-F] {ESCAPE} [hH] { return (allowHexDigitClass || allowHorizontalWhitespaceClass ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN); } {ESCAPE} "N" { yypushstate(NAMED); return RegExpTT.NAMED_CHARACTER; } {ESCAPE} {TRANSFORMATION} { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } -{ESCAPE} [\n\b\t\r\f ] { return commentMode ? RegExpTT.CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } +{ESCAPE} [\n\b\t\r\f ] { return commentMode ? RegExpTT.ESC_CTRL_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } { {ESCAPE} {RBRACKET} { return RegExpTT.ESC_CHARACTER; } @@ -286,69 +286,47 @@ HEX_CHAR=[0-9a-fA-F] {ANY} { yypopstate(); yypushback(1); } } - { - {LBRACKET} { if (allowNestedCharacterClasses) { - yypushstate(CLASS2); - return RegExpTT.CLASS_BEGIN; - } - return RegExpTT.CHARACTER; - } - - {LBRACKET} / {RBRACKET} { if (allowNestedCharacterClasses) { - yypushstate(CLASS1); - return RegExpTT.CLASS_BEGIN; - } - return RegExpTT.CHARACTER; - } - - {LBRACKET} / {ESCAPE} {RBRACKET} { if (allowNestedCharacterClasses) { - yypushstate(CLASS1); - return RegExpTT.CLASS_BEGIN; - } - return RegExpTT.CHARACTER; - } + { + {LBRACKET} / "^" { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } + {LBRACKET} { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } } -{LBRACKET} / ({RBRACKET} | {ESCAPE} {RBRACKET}) { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; - if (allowEmptyCharacterClass) yypushstate(CLASS2); else yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } - -{LBRACKET} / "^" ({RBRACKET} | {ESCAPE} {RBRACKET}) { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; - if (allowEmptyCharacterClass) yypushstate(CLASS2); else yypushstate(NEGATE_CLASS1); return RegExpTT.CLASS_BEGIN; } - -{LBRACKET} / "^" { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; yypushstate(NEGATE_CLASS2); return RegExpTT.CLASS_BEGIN; } -{LBRACKET} { if (yystate() == CLASS2 && !allowNestedCharacterClasses) return RegExpTT.CHARACTER; yypushstate(CLASS2); return RegExpTT.CLASS_BEGIN; } - /* []abc] is legal. The first ] is treated as literal character */ + { + "^" { yybegin(CLASS1); return RegExpTT.CARET; } +} + + { + "\\E" { yypopstate(); return RegExpTT.QUOTE_END; } + {ANY} { states.set(states.size() - 1, CLASS2); return RegExpTT.CHARACTER; } +} + { - {ESCAPE} {RBRACKET} { yybegin(CLASS2); return RegExpTT.REDUNDANT_ESCAPE; } - {RBRACKET} { yybegin(CLASS2); return RegExpTT.CHARACTER; } - . { assert false : yytext(); } -} - - { - "^" { yybegin(CLASS1); return RegExpTT.CARET; } - . { assert false : yytext(); } -} - - { - "^" { yybegin(CLASS2); return RegExpTT.CARET; } - . { assert false : yytext(); } + {ESCAPE} "Q" { yypushstate(QUOTED_CLASS1); return RegExpTT.QUOTE_BEGIN; } + {ESCAPE} {RBRACKET} { yybegin(CLASS2); return allowEmptyCharacterClass ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; } + {RBRACKET} { if (allowEmptyCharacterClass) { yypopstate(); return RegExpTT.CLASS_END; } yybegin(CLASS2); return RegExpTT.CHARACTER; } + {LBRACKET} / ":" { yybegin(CLASS2); if (allowPosixBracketExpressions) { yypushback(1); } else if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } else { return RegExpTT.CHARACTER; } } + {LBRACKET} / "^" { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; } + {LBRACKET} { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; } + [\n\b\t\r\f ] { if (commentMode) return com.intellij.psi.TokenType.WHITE_SPACE; yypushback(1); yybegin(CLASS2); } + {ANY} { yypushback(1); yybegin(CLASS2); } } { - {LBRACKET} ":" { if (allowPosixBracketExpressions) { + {LBRACKET} ":" { if (allowPosixBracketExpressions) { yybegin(BRACKET_EXPRESSION); return RegExpTT.BRACKET_EXPRESSION_BEGIN; } else { yypushback(1); - return RegExpTT.CHARACTER; + return allowNestedCharacterClasses ? RegExpTT.CLASS_BEGIN : RegExpTT.CHARACTER; } } + {LBRACKET} / "^" { if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; } + {LBRACKET} { if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; } {RBRACKET} { yypopstate(); return RegExpTT.CLASS_END; } - "&&" { if (allowNestedCharacterClasses) return RegExpTT.ANDAND; else yypushback(1); return RegExpTT.CHARACTER; } "-" { return RegExpTT.MINUS; } - [\n\b\t\r\f] { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.ESC_CHARACTER; } + [\n\b\t\r\f ] { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; } {ANY} { return RegExpTT.CHARACTER; } } @@ -434,7 +412,6 @@ HEX_CHAR=[0-9a-fA-F] [^\r\n]*[\r\n]? { yypopstate(); return RegExpTT.COMMENT; } } -" " { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; } -[\n\b\t\r\f] { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; } +[\n\b\t\r\f ] { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; } {ANY} { return RegExpTT.CHARACTER; } diff --git a/RegExpSupport/test/org/intellij/lang/regexp/RegExpLexerTest.java b/RegExpSupport/test/org/intellij/lang/regexp/RegExpLexerTest.java index 6e9826018d7e..96ff581eaa16 100644 --- a/RegExpSupport/test/org/intellij/lang/regexp/RegExpLexerTest.java +++ b/RegExpSupport/test/org/intellij/lang/regexp/RegExpLexerTest.java @@ -39,8 +39,7 @@ public class RegExpLexerTest extends LexerTestCase { public void testQE() { final RegExpLexer lexer = new RegExpLexer(EnumSet.noneOf(RegExpCapability.class)); doTest("\\Q\r\n\\E", "QUOTE_BEGIN ('\\Q')\n" + - "CHARACTER ('\n" + - "')\n" + + "CHARACTER ('\n')\n" + "CHARACTER ('\\n')\n" + "QUOTE_END ('\\E')", lexer); } @@ -343,6 +342,68 @@ public class RegExpLexerTest extends LexerTestCase { doTest("[]]", "CLASS_BEGIN ('[')\n" + "CHARACTER (']')\n" + "CLASS_END (']')", lexer); + doTest("[\\]]", "CLASS_BEGIN ('[')\n" + + "REDUNDANT_ESCAPE ('\\]')\n" + + "CLASS_END (']')", lexer); + doTest("[[]]]", "CLASS_BEGIN ('[')\n" + + "CLASS_BEGIN ('[')\n" + + "CHARACTER (']')\n" + + "CLASS_END (']')\n" + + "CLASS_END (']')", lexer); + doTest("[ \\]]", "CLASS_BEGIN ('[')\n" + + "CTRL_CHARACTER (' ')\n" + + "ESC_CHARACTER ('\\]')\n" + + "CLASS_END (']')", lexer); + doTest("[\\Q\\E]]", "CLASS_BEGIN ('[')\n" + + "QUOTE_BEGIN ('\\Q')\n" + + "QUOTE_END ('\\E')\n" + + "CHARACTER (']')\n" + + "CLASS_END (']')", lexer); + doTest("[\\Q+\\E]]", "CLASS_BEGIN ('[')\n" + + "QUOTE_BEGIN ('\\Q')\n" + + "CHARACTER ('+')\n" + + "QUOTE_END ('\\E')\n" + + "CLASS_END (']')\n" + + "CHARACTER (']')", lexer); + doTest("[^\\Q\\E]]", "CLASS_BEGIN ('[')\n" + + "CARET ('^')\n" + + "QUOTE_BEGIN ('\\Q')\n" + + "QUOTE_END ('\\E')\n" + + "CHARACTER (']')\n" + + "CLASS_END (']')", lexer); + doTest("[^\\Q+\\E]]", "CLASS_BEGIN ('[')\n" + + "CARET ('^')\n" + + "QUOTE_BEGIN ('\\Q')\n" + + "CHARACTER ('+')\n" + + "QUOTE_END ('\\E')\n" + + "CLASS_END (']')\n" + + "CHARACTER (']')", lexer); + final RegExpLexer lexer2 = new RegExpLexer(EnumSet.of(COMMENT_MODE)); + doTest("[ \t\n]]", "CLASS_BEGIN ('[')\n" + + "WHITE_SPACE (' ')\n" + + "WHITE_SPACE ('\t')\n" + + "WHITE_SPACE ('\\n')\n" + + "CHARACTER (']')\n" + + "CLASS_END (']')", lexer2); + doTest("[\\ ]", "CLASS_BEGIN ('[')\n" + + "ESC_CTRL_CHARACTER ('\\ ')\n" + + "CLASS_END (']')", lexer2); + final RegExpLexer lexer3 = new RegExpLexer(EnumSet.of(ALLOW_EMPTY_CHARACTER_CLASS)); + doTest("[]]", "CLASS_BEGIN ('[')\n" + + "CLASS_END (']')\n" + + "CHARACTER (']')", lexer3); + doTest("[[]]]", "CLASS_BEGIN ('[')\n" + + "CHARACTER ('[')\n" + + "CLASS_END (']')\n" + + "CHARACTER (']')\n" + + "CHARACTER (']')", lexer3); + doTest("[\\]]", "CLASS_BEGIN ('[')\n" + + "ESC_CHARACTER ('\\]')\n" + + "CLASS_END (']')", lexer3); + doTest("[ \\]]", "CLASS_BEGIN ('[')\n" + + "CTRL_CHARACTER (' ')\n" + + "ESC_CHARACTER ('\\]')\n" + + "CLASS_END (']')", lexer3); } public void testBoundaries() { @@ -381,7 +442,7 @@ public class RegExpLexerTest extends LexerTestCase { "CHARACTER ('<')\n" + "CHARACTER ('a')\n" + "CHARACTER ('>')\n" + - "CHARACTER (' ')\n" + + "CTRL_CHARACTER (' ')\n" + "CHARACTER ('(')\n" + "CHARACTER ('?')\n" + "CHARACTER ('<')\n" + @@ -475,6 +536,32 @@ public class RegExpLexerTest extends LexerTestCase { "CLASS_END (']')", lexer); } + public void testControlCharacters() { + final RegExpLexer lexer = new RegExpLexer(EnumSet.noneOf(RegExpCapability.class)); + doTest("\\n\\b\\t\\r\\f[\\n\\b\\t\\r\\f]", "ESC_CTRL_CHARACTER ('\\n')\n" + + "BOUNDARY ('\\b')\n" + + "ESC_CTRL_CHARACTER ('\\t')\n" + + "ESC_CTRL_CHARACTER ('\\r')\n" + + "ESC_CTRL_CHARACTER ('\\f')\n" + + "CLASS_BEGIN ('[')\n" + + "ESC_CTRL_CHARACTER ('\\n')\n" + + "ESC_CTRL_CHARACTER ('\\b')\n" + + "ESC_CTRL_CHARACTER ('\\t')\n" + + "ESC_CTRL_CHARACTER ('\\r')\n" + + "ESC_CTRL_CHARACTER ('\\f')\n" + + "CLASS_END (']')", lexer); + doTest("\n\t\r\f[\n\t\r\f]", "CTRL_CHARACTER ('\\n')\n" + + "CTRL_CHARACTER ('\t')\n" + + "CTRL_CHARACTER ('\n')\n" + + "CTRL_CHARACTER ('\f')\n" + + "CLASS_BEGIN ('[')\n" + + "CTRL_CHARACTER ('\\n')\n" + + "CTRL_CHARACTER ('\t')\n" + + "CTRL_CHARACTER ('\n')\n" + + "CTRL_CHARACTER ('\f')\n" + + "CLASS_END (']')", lexer); + } + @Override protected Lexer createLexer() { return null; diff --git a/RegExpSupport/testData/psi/Bug10.txt b/RegExpSupport/testData/psi/Bug10.txt index 6031e9ced829..019f209404a7 100644 --- a/RegExpSupport/testData/psi/Bug10.txt +++ b/RegExpSupport/testData/psi/Bug10.txt @@ -4,14 +4,14 @@ REGEXP_FILE RegExpSimpleClassImpl: <\h> PsiElement(CHAR_CLASS)('\h') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpSimpleClassImpl: <\H> PsiElement(CHAR_CLASS)('\H') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpSimpleClassImpl: <\v> PsiElement(CHAR_CLASS)('\v') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpSimpleClassImpl: <\V> PsiElement(CHAR_CLASS)('\V') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Bug7.txt b/RegExpSupport/testData/psi/Bug7.txt index 79230871ff42..6e2e178565cb 100644 --- a/RegExpSupport/testData/psi/Bug7.txt +++ b/RegExpSupport/testData/psi/Bug7.txt @@ -9,10 +9,10 @@ REGEXP_FILE RegExpCharImpl: PsiElement(CHARACTER)('a') RegExpCharImpl: <\ > - PsiElement(CHARACTER)('\ ') + PsiElement(ESC_CTRL_CHARACTER)('\ ') RegExpCharImpl: PsiElement(CHARACTER)('b') RegExpCharImpl: <\ > - PsiElement(CHARACTER)('\ ') + PsiElement(ESC_CTRL_CHARACTER)('\ ') RegExpCharImpl: PsiElement(CHARACTER)('c') \ No newline at end of file diff --git a/RegExpSupport/testData/psi/Groups13.txt b/RegExpSupport/testData/psi/Groups13.txt index 858a7c2d2d8a..fc2ce4b1d02d 100644 --- a/RegExpSupport/testData/psi/Groups13.txt +++ b/RegExpSupport/testData/psi/Groups13.txt @@ -16,7 +16,7 @@ REGEXP_FILE RegExpCharImpl: <,> PsiElement(CHARACTER)(',') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpGroupImpl: <(.*)> PsiElement(GROUP_BEGIN)('(') RegExpPatternImpl: <.*> diff --git a/RegExpSupport/testData/psi/Parse1.txt b/RegExpSupport/testData/psi/Parse1.txt index 0a63cef9d31e..3a4936257769 100644 --- a/RegExpSupport/testData/psi/Parse1.txt +++ b/RegExpSupport/testData/psi/Parse1.txt @@ -8,11 +8,11 @@ REGEXP_FILE RegExpCharImpl: <3> PsiElement(CHARACTER)('3') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') PsiElement(UNION)('|') RegExpBranchImpl: < 456> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: <4> PsiElement(CHARACTER)('4') RegExpCharImpl: <5> diff --git a/RegExpSupport/testData/psi/RealLife10.txt b/RegExpSupport/testData/psi/RealLife10.txt index 791dd5e75a83..811876949485 100644 --- a/RegExpSupport/testData/psi/RealLife10.txt +++ b/RegExpSupport/testData/psi/RealLife10.txt @@ -60,7 +60,7 @@ REGEXP_FILE RegExpPatternImpl: < descr="((?:[^"\\]|\\")*)"> RegExpBranchImpl: < descr="((?:[^"\\]|\\")*)"> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('d') RegExpCharImpl: @@ -114,7 +114,7 @@ REGEXP_FILE RegExpPatternImpl: < type="([0-9A-Z_]+)"> RegExpBranchImpl: < type="([0-9A-Z_]+)"> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('t') RegExpCharImpl: @@ -164,7 +164,7 @@ REGEXP_FILE RegExpPatternImpl: < foreground="([0-9xa-f]+)"> RegExpBranchImpl: < foreground="([0-9xa-f]+)"> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('f') RegExpCharImpl: @@ -226,7 +226,7 @@ REGEXP_FILE RegExpPatternImpl: < background="([0-9xa-f]+)"> RegExpBranchImpl: < background="([0-9xa-f]+)"> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('b') RegExpCharImpl: @@ -288,7 +288,7 @@ REGEXP_FILE RegExpPatternImpl: < effectcolor="([0-9xa-f]+)"> RegExpBranchImpl: < effectcolor="([0-9xa-f]+)"> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('e') RegExpCharImpl: @@ -352,7 +352,7 @@ REGEXP_FILE RegExpPatternImpl: < effecttype="([A-Z]+)"> RegExpBranchImpl: < effecttype="([A-Z]+)"> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('e') RegExpCharImpl: @@ -405,7 +405,7 @@ REGEXP_FILE RegExpPatternImpl: < fonttype="([0-9]+)"> RegExpBranchImpl: < fonttype="([0-9]+)"> RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('f') RegExpCharImpl: diff --git a/RegExpSupport/testData/psi/RealLife3.txt b/RegExpSupport/testData/psi/RealLife3.txt index 7c8277968b62..3d8425df89c7 100644 --- a/RegExpSupport/testData/psi/RealLife3.txt +++ b/RegExpSupport/testData/psi/RealLife3.txt @@ -31,7 +31,7 @@ REGEXP_FILE RegExpCharImpl: <9> PsiElement(CHARACTER)('9') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharRangeImpl: RegExpCharImpl: PsiElement(CHARACTER)('a') diff --git a/RegExpSupport/testData/psi/RealLife8.txt b/RegExpSupport/testData/psi/RealLife8.txt index 7053cf876fd5..4b5e52b5f906 100644 --- a/RegExpSupport/testData/psi/RealLife8.txt +++ b/RegExpSupport/testData/psi/RealLife8.txt @@ -8,7 +8,7 @@ REGEXP_FILE RegExpCharImpl: PsiElement(CHARACTER)('d') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpClosureImpl: <[+-]?> RegExpClassImpl: <[+-]> PsiElement(CLASS_BEGIN)('[') diff --git a/RegExpSupport/testData/psi/Simple4.txt b/RegExpSupport/testData/psi/Simple4.txt index 481cf1456841..591f6c2a4172 100644 --- a/RegExpSupport/testData/psi/Simple4.txt +++ b/RegExpSupport/testData/psi/Simple4.txt @@ -18,7 +18,7 @@ REGEXP_FILE RegExpCharImpl: PsiElement(CHARACTER)('e') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('w') RegExpCharImpl: @@ -30,13 +30,13 @@ REGEXP_FILE RegExpCharImpl: PsiElement(CHARACTER)('s') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('o') RegExpCharImpl: PsiElement(CHARACTER)('f') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('t') RegExpCharImpl: diff --git a/RegExpSupport/testData/psi/Tests12.txt b/RegExpSupport/testData/psi/Tests12.txt index a33740f8b829..52f7a8d83209 100644 --- a/RegExpSupport/testData/psi/Tests12.txt +++ b/RegExpSupport/testData/psi/Tests12.txt @@ -4,17 +4,17 @@ REGEXP_FILE RegExpCharImpl: PsiElement(CHARACTER)('i') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('a') RegExpCharImpl: PsiElement(CHARACTER)('m') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('a') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpCharImpl: PsiElement(CHARACTER)('g') RegExpCharImpl: @@ -26,7 +26,7 @@ REGEXP_FILE RegExpCharImpl: PsiElement(CHARACTER)('n') RegExpCharImpl: < > - PsiElement(CHARACTER)(' ') + PsiElement(CTRL_CHARACTER)(' ') RegExpGroupImpl: <(giant|man|martian)> PsiElement(GROUP_BEGIN)('(') RegExpPatternImpl: