diff --git a/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java index 05e873c08ab4..a7fbc5fad606 100644 --- a/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java +++ b/RegExpSupport/gen/org/intellij/lang/regexp/_RegExLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */ +/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ /* It's an automatically generated code. Do not modify it. */ package org.intellij.lang.regexp; @@ -16,7 +16,7 @@ import static org.intellij.lang.regexp.RegExpCapability.*; /** * This class is a scanner generated by - * JFlex 1.7.0-SNAPSHOT + * JFlex 1.7.0 * from the specification file regexp-lexer.flex */ class _RegExLexer implements FlexLexer { @@ -63,147 +63,132 @@ class _RegExLexer implements FlexLexer { /** * Translates characters to character classes + * Chosen bits are [11, 6, 4] + * Total runtime size is 14272 bytes */ - private static final String ZZ_CMAP_PACKED = - "\10\0\2\61\1\76\1\0\1\61\1\76\22\0\1\14\1\74\1\0"+ - "\1\75\1\16\1\0\1\72\1\64\1\2\1\3\1\20\1\21\1\56"+ - "\1\13\1\1\1\0\1\53\3\55\4\54\2\47\1\70\1\0\1\63"+ - "\1\71\1\73\1\17\1\0\1\30\1\30\1\37\1\35\1\45\1\46"+ - "\1\31\1\57\1\40\2\66\1\44\1\67\1\60\1\66\1\42\1\50"+ - "\1\65\1\34\1\66\1\43\1\33\1\33\1\33\1\66\1\32\1\6"+ - "\1\10\1\7\1\23\1\12\1\0\1\25\1\26\1\36\1\35\1\25"+ - "\1\25\1\27\1\57\1\40\1\66\1\62\1\43\1\66\1\24\1\66"+ - "\1\41\1\66\1\24\1\33\1\24\1\52\1\33\1\33\1\51\1\66"+ - "\1\31\1\4\1\22\1\5\54\0\1\11\12\0\1\11\4\0\1\11"+ - "\5\0\27\11\1\0\37\11\1\0\u01ca\11\4\0\14\11\16\0\5\11"+ - "\7\0\1\11\1\0\1\11\201\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\24\11"+ - "\1\0\123\11\1\0\213\11\10\0\246\11\1\0\46\11\2\0\1\11"+ - "\7\0\47\11\110\0\33\11\5\0\3\11\55\0\53\11\25\0\12\15"+ - "\4\0\2\11\1\0\143\11\1\0\1\11\17\0\2\11\7\0\2\11"+ - "\12\15\3\11\2\0\1\11\20\0\1\11\1\0\36\11\35\0\131\11"+ - "\13\0\1\11\16\0\12\15\41\11\11\0\2\11\4\0\1\11\5\0"+ - "\26\11\4\0\1\11\11\0\1\11\3\0\1\11\27\0\31\11\107\0"+ - "\25\11\117\0\66\11\3\0\1\11\22\0\1\11\7\0\12\11\4\0"+ - "\12\15\1\0\20\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\3\11\4\0\12\15\2\11\23\0\6\11\4\0\2\11"+ - "\2\0\26\11\1\0\7\11\1\0\2\11\1\0\2\11\1\0\2\11"+ - "\37\0\4\11\1\0\1\11\7\0\12\15\2\0\3\11\20\0\11\11"+ - "\1\0\3\11\1\0\26\11\1\0\7\11\1\0\2\11\1\0\5\11"+ - "\3\0\1\11\22\0\1\11\17\0\2\11\4\0\12\15\11\0\1\11"+ - "\13\0\10\11\2\0\2\11\2\0\26\11\1\0\7\11\1\0\2\11"+ - "\1\0\5\11\3\0\1\11\36\0\2\11\1\0\3\11\4\0\12\15"+ - "\1\0\1\11\21\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\26\0\1\11\25\0\12\15\25\0\10\11\1\0\3\11"+ - "\1\0\27\11\1\0\20\11\3\0\1\11\32\0\3\11\5\0\2\11"+ - "\4\0\12\15\25\0\10\11\1\0\3\11\1\0\27\11\1\0\12\11"+ - "\1\0\5\11\3\0\1\11\40\0\1\11\1\0\2\11\4\0\12\15"+ - "\1\0\2\11\22\0\10\11\1\0\3\11\1\0\51\11\2\0\1\11"+ - "\20\0\1\11\20\0\3\11\4\0\12\15\12\0\6\11\5\0\22\11"+ - "\3\0\30\11\1\0\11\11\1\0\1\11\2\0\7\11\37\0\12\15"+ - "\21\0\60\11\1\0\2\11\14\0\7\11\11\0\12\15\47\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\4\11\40\0\1\11\37\0\12\15\26\0\10\11"+ - "\1\0\44\11\33\0\5\11\163\0\53\11\24\0\1\11\12\15\6\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\12\15\6\0\46\11\1\0\1\11\5\0"+ - "\1\11\2\0\53\11\1\0\u014d\11\1\0\4\11\2\0\7\11\1\0"+ - "\1\11\1\0\4\11\2\0\51\11\1\0\4\11\2\0\41\11\1\0"+ - "\4\11\2\0\7\11\1\0\1\11\1\0\4\11\2\0\17\11\1\0"+ - "\71\11\1\0\4\11\2\0\103\11\45\0\20\11\20\0\126\11\2\0"+ - "\6\11\3\0\u026c\11\2\0\21\11\1\0\32\11\5\0\113\11\6\0"+ - "\10\11\7\0\15\11\1\0\4\11\16\0\22\11\16\0\22\11\16\0"+ - "\15\11\1\0\3\11\17\0\64\11\43\0\1\11\4\0\1\11\3\0"+ - "\12\15\46\0\12\15\6\0\130\11\10\0\51\11\1\0\1\11\5\0"+ - "\106\11\12\0\37\11\47\0\12\15\36\11\2\0\5\11\13\0\54\11"+ - "\4\0\32\11\6\0\12\15\46\0\27\11\11\0\65\11\53\0\12\15"+ - "\6\0\12\15\15\0\1\11\135\0\57\11\21\0\7\11\4\0\12\15"+ - "\51\0\36\11\15\0\2\11\12\15\54\11\32\0\44\11\34\0\12\15"+ - "\3\0\3\11\12\15\44\11\153\0\4\11\1\0\4\11\3\0\2\11"+ - "\11\0\300\11\100\0\u0116\11\2\0\6\11\2\0\46\11\2\0\6\11"+ - "\2\0\10\11\1\0\1\11\1\0\1\11\1\0\1\11\1\0\37\11"+ - "\2\0\65\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\4\0\15\11\5\0\3\11\1\0\7\11"+ - "\164\0\1\11\15\0\1\11\20\0\15\11\145\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\64\0\2\11\u0a7b\0\57\11\1\0\57\11\1\0\205\11"+ - "\6\0\4\11\3\0\2\11\14\0\46\11\1\0\1\11\5\0\1\11"+ - "\2\0\70\11\7\0\1\11\20\0\27\11\11\0\7\11\1\0\7\11"+ - "\1\0\7\11\1\0\7\11\1\0\7\11\1\0\7\11\1\0\7\11"+ - "\1\0\7\11\120\0\1\11\u01d5\0\2\11\52\0\5\11\5\0\2\11"+ - "\4\0\126\11\6\0\3\11\1\0\132\11\1\0\4\11\5\0\51\11"+ - "\3\0\136\11\21\0\33\11\65\0\20\11\u0200\0\u19b6\11\112\0\u51d6\11"+ - "\52\0\u048d\11\103\0\56\11\2\0\u010d\11\3\0\20\11\12\15\2\11"+ - "\24\0\57\11\20\0\37\11\2\0\106\11\61\0\11\11\2\0\147\11"+ - "\2\0\43\11\2\0\10\11\77\0\13\11\1\0\3\11\1\0\4\11"+ - "\1\0\27\11\35\0\64\11\16\0\62\11\34\0\12\15\30\0\6\11"+ - "\3\0\1\11\1\0\1\11\2\0\12\15\34\11\12\0\27\11\31\0"+ - "\35\11\7\0\57\11\34\0\1\11\12\15\6\0\5\11\1\0\12\11"+ - "\12\15\5\11\1\0\51\11\27\0\3\11\1\0\10\11\4\0\12\15"+ - "\6\0\27\11\3\0\1\11\3\0\62\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\2\0\13\11"+ - "\7\0\3\11\14\0\6\11\2\0\6\11\2\0\6\11\11\0\7\11"+ - "\1\0\7\11\1\0\53\11\1\0\12\11\12\0\163\11\15\0\12\15"+ - "\6\0\u2ba4\11\14\0\27\11\4\0\61\11\u2104\0\u016e\11\2\0\152\11"+ - "\46\0\7\11\14\0\5\11\5\0\1\11\1\0\12\11\1\0\15\11"+ - "\1\0\5\11\1\0\1\11\1\0\2\11\1\0\2\11\1\0\154\11"+ - "\41\0\u016b\11\22\0\100\11\2\0\66\11\50\0\14\11\164\0\5\11"+ - "\1\0\207\11\23\0\12\15\7\0\32\11\6\0\32\11\13\0\131\11"+ - "\3\0\6\11\2\0\6\11\2\0\6\11\2\0\3\11\43\0\14\11"+ - "\1\0\32\11\1\0\23\11\1\0\2\11\1\0\17\11\2\0\16\11"+ - "\42\0\173\11\u0185\0\35\11\3\0\61\11\57\0\40\11\20\0\21\11"+ - "\1\0\10\11\6\0\46\11\12\0\36\11\2\0\44\11\4\0\10\11"+ - "\60\0\236\11\2\0\12\15\126\0\50\11\10\0\64\11\234\0\u0137\11"+ - "\11\0\26\11\12\0\10\11\230\0\6\11\2\0\1\11\1\0\54\11"+ - "\1\0\2\11\3\0\1\11\2\0\27\11\12\0\27\11\11\0\37\11"+ - "\101\0\23\11\1\0\2\11\12\0\26\11\12\0\32\11\106\0\70\11"+ - "\6\0\2\11\100\0\1\11\17\0\4\11\1\0\3\11\1\0\33\11"+ - "\54\0\35\11\3\0\35\11\43\0\10\11\1\0\34\11\33\0\66\11"+ - "\12\0\26\11\12\0\23\11\15\0\22\11\156\0\111\11\67\0\63\11"+ - "\15\0\63\11\u0310\0\65\11\56\0\12\15\23\0\55\11\40\0\31\11"+ - "\7\0\12\15\11\0\44\11\17\0\12\15\20\0\43\11\3\0\1\11"+ - "\14\0\60\11\16\0\4\11\13\0\12\15\1\11\1\0\1\11\43\0"+ - "\22\11\1\0\31\11\124\0\7\11\1\0\1\11\1\0\4\11\1\0"+ - "\17\11\1\0\12\11\7\0\57\11\21\0\12\15\13\0\10\11\2\0"+ - "\2\11\2\0\26\11\1\0\7\11\1\0\2\11\1\0\5\11\3\0"+ - "\1\11\22\0\1\11\14\0\5\11\u011e\0\60\11\24\0\2\11\1\0"+ - "\1\11\10\0\12\15\246\0\57\11\51\0\4\11\44\0\60\11\24\0"+ - "\1\11\13\0\12\15\46\0\53\11\25\0\12\15\66\0\32\11\26\0"+ - "\12\15\u0166\0\100\11\12\15\25\0\1\11\u01c0\0\71\11\u0507\0\u039a\11"+ - "\346\0\304\11\u0abc\0\u042f\11\u0fd1\0\u0247\11\u21b9\0\u0239\11\7\0\37\11"+ - "\1\0\12\15\146\0\36\11\22\0\60\11\20\0\4\11\14\0\12\15"+ - "\11\0\25\11\5\0\23\11\u0370\0\105\11\13\0\1\11\102\0\15\11"+ - "\u4060\0\2\11\u0bfe\0\153\11\5\0\15\11\3\0\11\11\7\0\12\11"+ - "\u1766\0\125\11\1\0\107\11\1\0\2\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\101\11"+ - "\1\0\4\11\2\0\10\11\1\0\7\11\1\0\34\11\1\0\4\11"+ - "\1\0\5\11\1\0\1\11\3\0\7\11\1\0\u0154\11\2\0\31\11"+ - "\1\0\31\11\1\0\37\11\1\0\31\11\1\0\37\11\1\0\31\11"+ - "\1\0\37\11\1\0\31\11\1\0\37\11\1\0\31\11\1\0\10\11"+ - "\2\0\62\15\u1000\0\305\11\u053b\0\4\11\1\0\33\11\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\21\11\5\0\3\11\1\0\5\11\1\0\21\11"+ - "\u1144\0\ua6d7\11\51\0\u1035\11\13\0\336\11\2\0\u1682\11\u295e\0\u021e\11"+ - "\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05f0\0"; + 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)]; + } - /** - * Translates characters to character classes - */ - private static final int ZZ_SX = 0x0700; - private static final int ZZ_MX = 0x10000; - private static final int ZZ_LX = 0x110000; - private static char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED, ZZ_SX); - private static class M { static final char [] MAP = zzUnpackCMap(ZZ_CMAP_PACKED, ZZ_MX); } - private static class L { static final char [] MAP = zzUnpackCMap(ZZ_CMAP_PACKED, ZZ_LX); } + /* The ZZ_CMAP_Z table has 1088 entries */ + static final char ZZ_CMAP_Z[] = zzUnpackCMap( + "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ + "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ + "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ + "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ + "\53\4\14\1\54\12\11\1\55\u0381\11"); + + /* The ZZ_CMAP_Y table has 2944 entries */ + static final char ZZ_CMAP_Y[] = zzUnpackCMap( + "\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\101\1\35\1\55\1\102\1\1\1\57\1\52\1\103\1\77\1\35\1"+ + "\12\1\104\1\57\1\105\1\52\1\106\1\107\1\110\1\12\1\111\1\112\1\1\1\64\1\1"+ + "\1\24\2\12\1\113\1\112\1\114\2\1\1\115\1\116\1\117\1\120\1\121\1\122\2\1\1"+ + "\70\1\1\1\114\1\1\1\123\1\12\1\124\1\1\1\125\7\1\2\12\1\27\1\126\1\114\1\127"+ + "\1\130\1\131\1\132\1\114\2\12\1\133\2\12\1\134\24\12\1\135\1\136\2\12\1\135"+ + "\2\12\1\137\1\140\1\13\3\12\1\140\3\12\1\27\2\1\1\12\1\1\5\12\1\141\1\24\45"+ + "\12\1\142\1\12\1\24\1\27\4\12\1\27\1\143\1\144\1\15\1\12\1\15\1\12\1\15\1"+ + "\144\1\70\3\12\1\145\1\1\1\146\1\114\2\1\1\114\5\12\1\26\1\147\1\12\1\150"+ + "\4\12\1\37\1\12\1\151\2\1\1\64\1\12\1\152\1\153\2\12\1\154\1\12\1\76\1\114"+ + "\2\1\1\12\1\112\3\12\1\153\2\1\2\114\1\155\5\1\1\107\2\12\1\145\1\156\1\114"+ + "\2\1\1\157\1\12\1\160\1\41\2\12\1\37\1\1\2\12\1\145\1\1\1\161\1\41\1\12\1"+ + "\152\1\45\5\1\1\162\1\163\14\12\4\1\21\12\1\141\2\12\1\141\1\164\1\12\1\152"+ + "\3\12\1\165\1\166\1\167\1\124\1\166\7\1\1\170\1\1\1\124\6\1\1\171\1\172\1"+ + "\173\1\174\1\175\3\1\1\176\147\1\2\12\1\151\2\12\1\151\10\12\1\177\1\200\2"+ + "\12\1\133\3\12\1\201\1\1\1\12\1\112\4\202\4\1\1\126\35\1\1\203\2\1\1\204\1"+ + "\24\4\12\1\205\1\24\4\12\1\134\1\107\1\12\1\152\1\24\4\12\1\151\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\124\4\1\2\12\1\152"+ + "\20\12\1\124\1\12\1\206\1\1\2\12\1\151\1\126\1\12\1\152\4\12\1\37\2\1\1\207"+ + "\1\210\5\12\1\211\1\12\1\151\1\26\3\1\1\207\1\212\1\12\1\30\1\1\3\12\1\145"+ + "\1\210\2\12\1\145\1\1\1\114\1\1\1\213\1\41\1\12\1\37\1\12\1\112\1\1\1\12\1"+ + "\124\1\47\2\12\1\30\1\126\1\114\1\214\1\215\2\12\1\45\1\1\1\216\1\114\1\12"+ + "\1\217\3\12\1\220\1\221\1\222\1\27\1\65\1\223\1\224\1\202\2\12\1\134\1\37"+ + "\7\12\1\30\1\114\72\12\1\145\1\12\1\225\2\12\1\154\20\1\26\12\1\152\6\12\1"+ + "\76\2\1\1\112\1\226\1\55\1\227\1\230\6\12\1\15\1\1\1\157\25\12\1\152\1\1\4"+ + "\12\1\210\2\12\1\26\2\1\1\154\7\1\1\214\7\12\1\124\1\1\1\114\1\24\1\27\1\24"+ + "\1\27\1\231\4\12\1\151\1\232\1\233\2\1\1\234\1\12\1\13\1\235\2\152\2\1\7\12"+ + "\1\27\30\1\1\12\1\124\3\12\1\70\2\1\2\12\1\1\1\12\1\236\2\12\1\37\1\12\1\152"+ + "\2\12\1\237\3\1\11\12\1\152\1\114\2\12\1\237\1\12\1\154\2\12\1\26\3\12\1\145"+ + "\11\1\23\12\1\112\1\12\1\37\1\26\11\1\1\240\2\12\1\241\1\12\1\37\1\12\1\112"+ + "\1\12\1\151\4\1\1\12\1\242\1\12\1\37\1\12\1\76\4\1\3\12\1\243\4\1\1\70\1\244"+ + "\1\12\1\145\2\1\1\12\1\124\1\12\1\124\2\1\1\123\1\12\1\153\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"+ + "\157\2\12\1\26\2\1\1\64\1\1\1\157\2\12\2\1\1\12\1\45\1\114\1\157\1\12\1\112"+ + "\1\64\1\1\2\12\1\245\1\157\2\12\1\30\1\246\1\247\2\1\1\12\1\21\1\154\5\1\1"+ + "\250\1\251\1\45\2\12\1\151\1\1\1\114\1\72\1\54\1\55\1\67\1\1\1\252\1\15\11"+ + "\1\3\12\1\153\1\253\1\114\2\1\3\12\1\1\1\254\1\114\12\1\2\12\1\151\2\1\1\255"+ + "\2\1\3\12\1\1\1\256\1\114\2\1\2\12\1\27\1\1\1\114\3\1\1\12\1\76\1\1\1\114"+ + "\26\1\4\12\1\114\1\126\34\1\3\12\1\45\20\1\1\55\1\12\1\151\1\1\1\70\1\114"+ + "\1\1\1\210\1\12\67\1\71\12\1\76\16\1\14\12\1\145\53\1\2\12\1\151\75\1\44\12"+ + "\1\112\33\1\43\12\1\45\1\12\1\151\1\114\6\1\1\12\1\152\1\1\3\12\1\1\1\145"+ + "\1\114\1\157\1\257\1\12\67\1\4\12\1\153\1\70\3\1\1\157\4\1\1\70\1\1\76\12"+ + "\1\124\1\1\57\12\1\30\20\1\1\15\77\1\6\12\1\27\1\124\1\45\1\76\66\1\5\12\1"+ + "\214\3\12\1\144\1\260\1\261\1\262\3\12\1\263\1\264\1\12\1\265\1\266\1\35\24"+ + "\12\1\267\1\12\1\35\1\134\1\12\1\134\1\12\1\214\1\12\1\214\1\151\1\12\1\151"+ + "\1\12\1\55\1\12\1\55\1\12\1\270\3\271\14\12\1\153\3\1\4\12\1\145\1\114\112"+ + "\1\1\262\1\12\1\272\1\273\1\274\1\275\1\276\1\277\1\300\1\154\1\301\1\154"+ + "\24\1\55\12\1\112\2\1\103\12\1\153\15\12\1\152\150\12\1\15\25\1\41\12\1\152"+ + "\36\1"); + + /* The ZZ_CMAP_A table has 3104 entries */ + static final char ZZ_CMAP_A[] = zzUnpackCMap( + "\10\0\2\61\1\76\1\0\1\61\1\76\22\0\1\14\1\74\1\0\1\75\1\16\1\0\1\72\1\64\1"+ + "\2\1\3\1\20\1\21\1\56\1\13\1\1\1\0\1\53\3\55\4\54\2\47\1\70\1\0\1\63\1\71"+ + "\1\73\1\17\1\0\2\30\1\37\1\35\1\45\1\46\1\31\1\57\1\40\2\66\1\44\1\67\1\60"+ + "\1\66\1\42\1\50\1\65\1\34\1\66\1\43\3\33\1\66\1\32\1\6\1\10\1\7\1\23\1\12"+ + "\1\0\1\25\1\26\1\36\1\35\2\25\1\27\1\57\1\40\1\66\1\62\1\43\1\66\1\24\1\66"+ + "\1\41\1\66\1\24\1\33\1\24\1\52\2\33\1\51\1\66\1\31\1\4\1\22\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\1\0\10\11\6\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\1\11\4\0\10\11\1"+ + "\0\6\11\1\0\5\11\3\0\1\11\3\0\2\11\15\0\13\11\2\0\1\11\6\0\3\11\10\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\22\0\7\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\5\11\2\0\22\11\1\0\1\11\5\0\17"+ + "\11\1\0\16\11\2\0\5\11\13\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\7\0\4\11\11\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. @@ -319,80 +304,81 @@ class _RegExLexer implements FlexLexer { "\6\50\1\74\13\50\1\72\3\50\1\73\66\50\3\75"+ "\1\76\5\75\1\77\1\75\1\100\10\75\23\77\1\75"+ "\3\77\4\75\2\77\1\75\1\77\2\75\3\77\1\101"+ - "\6\75\76\14\1\102\11\75\1\103\12\75\23\103\1\75"+ - "\3\103\4\75\2\103\1\75\1\103\2\75\3\103\3\75"+ - "\1\104\14\75\1\103\12\75\23\103\1\75\3\103\4\75"+ - "\2\103\1\75\1\103\1\75\1\105\3\103\12\75\1\76"+ - "\5\75\1\103\12\75\23\103\1\75\3\103\4\75\2\103"+ - "\1\75\1\103\2\75\3\103\12\75\1\76\5\75\1\103"+ - "\3\75\1\53\6\75\23\103\1\53\3\103\3\53\1\75"+ - "\2\103\1\75\1\103\2\75\3\103\7\75\11\106\1\52"+ - "\11\106\1\44\23\52\1\106\3\52\4\106\2\52\1\106"+ - "\1\52\1\107\1\106\3\52\1\110\2\106\1\107\3\106"+ - "\1\111\1\112\7\111\1\113\12\111\23\113\1\111\3\113"+ - "\4\111\2\113\1\111\1\113\2\111\3\113\7\111\11\114"+ - "\1\115\12\114\23\115\1\114\3\115\4\114\2\115\1\114"+ - "\1\115\2\114\3\115\1\114\1\116\5\114\4\0\1\117"+ - "\210\0\1\120\74\0\1\121\31\0\1\121\3\0\3\121"+ - "\1\122\43\0\1\123\53\0\1\124\3\125\1\126\1\127"+ - "\1\125\1\124\1\125\2\124\1\130\1\131\1\124\6\125"+ - "\2\132\1\133\1\134\3\135\3\136\1\137\2\140\2\141"+ - "\3\142\1\143\1\144\1\145\1\146\1\147\1\150\2\144"+ - "\1\124\1\151\1\152\1\131\1\153\2\124\1\136\2\143"+ - "\6\124\1\131\45\0\1\154\33\0\2\52\5\0\5\52"+ - "\6\0\32\52\1\0\2\52\1\0\1\52\2\0\3\52"+ - "\24\0\1\53\31\0\1\53\3\0\3\53\22\0\1\155"+ - "\21\0\1\156\44\0\1\157\1\155\14\0\1\160\13\0"+ - "\1\161\24\0\1\162\27\0\1\163\21\0\1\164\44\0"+ - "\2\163\5\0\6\124\3\125\2\124\1\130\1\131\7\124"+ - "\3\132\4\143\3\136\1\137\2\140\2\141\3\142\1\143"+ - "\1\144\1\145\1\146\1\147\1\150\2\144\1\124\1\151"+ - "\1\152\1\131\1\143\2\124\3\143\6\124\1\131\72\0"+ - "\1\165\4\0\6\124\1\125\1\124\1\125\2\124\1\130"+ - "\1\131\7\124\2\132\5\143\3\136\1\137\2\140\2\141"+ - "\3\142\1\143\1\144\1\145\1\146\1\147\1\150\2\144"+ - "\1\124\1\151\1\152\1\131\1\143\2\124\3\143\6\124"+ - "\1\131\11\0\1\77\12\0\23\77\1\0\3\77\4\0"+ - "\2\77\1\0\1\77\2\0\3\77\20\0\1\100\12\0"+ - "\23\100\1\0\3\100\4\0\2\100\1\0\1\100\2\0"+ - "\3\100\20\0\5\103\6\0\32\103\1\0\2\103\1\0"+ - "\1\103\2\0\3\103\16\0\1\166\70\0\1\167\76\0"+ - "\1\167\5\0\1\170\70\0\1\167\7\0\1\171\1\0"+ - "\1\171\1\0\1\172\6\0\23\171\1\172\3\171\3\172"+ - "\1\0\2\171\1\0\1\171\2\0\3\171\100\0\1\167"+ - "\7\0\2\52\5\0\5\52\6\0\32\52\1\0\2\52"+ - "\1\0\1\52\2\0\3\52\1\0\1\167\14\0\1\173"+ - "\61\0\1\167\12\0\1\174\17\0\2\175\1\0\1\175"+ - "\4\0\3\175\5\0\3\175\3\0\3\175\23\0\1\176"+ - "\37\0\1\177\20\0\1\200\1\201\3\0\1\202\1\203"+ - "\1\0\1\204\1\205\1\206\6\0\1\207\7\0\1\121"+ - "\31\0\1\121\3\0\3\121\1\210\25\0\1\211\7\0"+ - "\1\212\31\0\1\212\3\0\3\212\36\0\1\213\31\0"+ - "\1\213\3\0\3\213\1\214\24\0\1\215\155\0\1\216"+ - "\1\217\12\0\77\220\47\0\1\221\3\0\3\221\25\0"+ - "\1\222\20\0\2\223\1\0\1\223\4\0\3\223\5\0"+ - "\3\223\3\0\3\223\25\0\1\224\20\0\2\225\1\0"+ - "\1\225\4\0\3\225\5\0\3\225\3\0\3\225\74\0"+ - "\1\226\1\227\1\226\104\0\1\230\1\231\21\0\1\232"+ - "\100\0\1\171\1\0\1\171\1\0\1\172\6\0\23\171"+ - "\1\172\3\171\3\172\1\0\2\171\1\0\1\171\2\0"+ - "\3\171\14\0\1\233\17\0\2\175\1\0\1\175\4\0"+ - "\3\175\5\0\3\175\3\0\3\175\104\0\1\234\5\0"+ - "\1\235\76\0\1\236\2\0\1\237\2\0\3\240\1\0"+ - "\73\240\5\0\1\207\7\0\1\210\31\0\1\210\3\0"+ - "\3\210\26\0\1\241\7\0\1\212\31\0\1\212\3\0"+ - "\3\212\26\0\1\242\7\0\1\213\31\0\1\213\3\0"+ - "\3\213\1\243\25\0\1\244\7\0\1\245\31\0\1\245"+ - "\3\0\3\245\50\0\1\246\116\0\1\247\3\0\3\247"+ - "\46\0\2\250\1\0\1\250\4\0\3\250\5\0\3\250"+ - "\3\0\3\250\46\0\2\251\1\0\1\251\4\0\3\251"+ - "\5\0\3\251\3\0\3\251\74\0\3\252\74\0\3\253"+ - "\21\0\3\240\1\254\73\240\5\0\1\242\7\0\1\243"+ - "\31\0\1\243\3\0\3\243\26\0\1\255\7\0\1\245"+ - "\31\0\1\245\3\0\3\245\26\0\1\135\116\0\2\256"+ - "\1\0\1\256\4\0\3\256\5\0\3\256\3\0\3\256"+ - "\74\0\3\257\46\0\2\260\1\0\1\260\4\0\3\260"+ - "\5\0\3\260\3\0\3\260\21\0"; + "\6\75\76\14\1\102\10\75\3\103\3\75\1\103\5\75"+ + "\23\103\1\75\3\103\4\75\2\103\1\75\1\103\2\75"+ + "\3\103\3\75\1\104\13\75\3\103\3\75\1\103\5\75"+ + "\23\103\1\75\3\103\4\75\2\103\1\75\1\103\1\75"+ + "\1\105\3\103\12\75\1\76\4\75\3\103\3\75\1\103"+ + "\5\75\23\103\1\75\3\103\4\75\2\103\1\75\1\103"+ + "\2\75\3\103\12\75\1\76\4\75\3\103\2\75\1\53"+ + "\1\103\5\75\23\103\1\53\3\103\3\53\1\75\2\103"+ + "\1\75\1\103\2\75\3\103\7\75\11\106\1\52\11\106"+ + "\1\44\23\52\1\106\3\52\4\106\2\52\1\106\1\52"+ + "\1\107\1\106\3\52\1\110\2\106\1\107\3\106\1\111"+ + "\1\112\7\111\1\113\12\111\23\113\1\111\3\113\4\111"+ + "\2\113\1\111\1\113\2\111\3\113\7\111\11\114\1\115"+ + "\12\114\23\115\1\114\3\115\4\114\2\115\1\114\1\115"+ + "\2\114\3\115\1\114\1\116\5\114\4\0\1\117\210\0"+ + "\1\120\74\0\1\121\31\0\1\121\3\0\3\121\1\122"+ + "\43\0\1\123\53\0\1\124\3\125\1\126\1\127\1\125"+ + "\1\124\1\125\2\124\1\130\1\131\1\124\6\125\2\132"+ + "\1\133\1\134\3\135\3\136\1\137\2\140\2\141\3\142"+ + "\1\143\1\144\1\145\1\146\1\147\1\150\2\144\1\124"+ + "\1\151\1\152\1\131\1\153\2\124\1\136\2\143\6\124"+ + "\1\131\45\0\1\154\33\0\2\52\5\0\5\52\6\0"+ + "\32\52\1\0\2\52\1\0\1\52\2\0\3\52\24\0"+ + "\1\53\31\0\1\53\3\0\3\53\22\0\1\155\21\0"+ + "\1\156\44\0\1\157\1\155\14\0\1\160\13\0\1\161"+ + "\24\0\1\162\27\0\1\163\21\0\1\164\44\0\2\163"+ + "\5\0\6\124\3\125\2\124\1\130\1\131\7\124\3\132"+ + "\4\143\3\136\1\137\2\140\2\141\3\142\1\143\1\144"+ + "\1\145\1\146\1\147\1\150\2\144\1\124\1\151\1\152"+ + "\1\131\1\143\2\124\3\143\6\124\1\131\72\0\1\165"+ + "\4\0\6\124\1\125\1\124\1\125\2\124\1\130\1\131"+ + "\7\124\2\132\5\143\3\136\1\137\2\140\2\141\3\142"+ + "\1\143\1\144\1\145\1\146\1\147\1\150\2\144\1\124"+ + "\1\151\1\152\1\131\1\143\2\124\3\143\6\124\1\131"+ + "\11\0\1\77\12\0\23\77\1\0\3\77\4\0\2\77"+ + "\1\0\1\77\2\0\3\77\20\0\1\100\12\0\23\100"+ + "\1\0\3\100\4\0\2\100\1\0\1\100\2\0\3\100"+ + "\17\0\7\103\5\0\32\103\1\0\2\103\1\0\1\103"+ + "\2\0\3\103\16\0\1\166\70\0\1\167\76\0\1\167"+ + "\5\0\1\170\70\0\1\167\7\0\1\171\1\0\1\171"+ + "\1\0\1\172\6\0\23\171\1\172\3\171\3\172\1\0"+ + "\2\171\1\0\1\171\2\0\3\171\100\0\1\167\7\0"+ + "\2\52\5\0\5\52\6\0\32\52\1\0\2\52\1\0"+ + "\1\52\2\0\3\52\1\0\1\167\14\0\1\173\61\0"+ + "\1\167\12\0\1\174\17\0\2\175\1\0\1\175\4\0"+ + "\3\175\5\0\3\175\3\0\3\175\23\0\1\176\37\0"+ + "\1\177\20\0\1\200\1\201\3\0\1\202\1\203\1\0"+ + "\1\204\1\205\1\206\6\0\1\207\7\0\1\121\31\0"+ + "\1\121\3\0\3\121\1\210\25\0\1\211\7\0\1\212"+ + "\31\0\1\212\3\0\3\212\36\0\1\213\31\0\1\213"+ + "\3\0\3\213\1\214\24\0\1\215\155\0\1\216\1\217"+ + "\12\0\77\220\47\0\1\221\3\0\3\221\25\0\1\222"+ + "\20\0\2\223\1\0\1\223\4\0\3\223\5\0\3\223"+ + "\3\0\3\223\25\0\1\224\20\0\2\225\1\0\1\225"+ + "\4\0\3\225\5\0\3\225\3\0\3\225\74\0\1\226"+ + "\1\227\1\226\104\0\1\230\1\231\21\0\1\232\100\0"+ + "\1\171\1\0\1\171\1\0\1\172\6\0\23\171\1\172"+ + "\3\171\3\172\1\0\2\171\1\0\1\171\2\0\3\171"+ + "\14\0\1\233\17\0\2\175\1\0\1\175\4\0\3\175"+ + "\5\0\3\175\3\0\3\175\104\0\1\234\5\0\1\235"+ + "\76\0\1\236\2\0\1\237\2\0\3\240\1\0\73\240"+ + "\5\0\1\207\7\0\1\210\31\0\1\210\3\0\3\210"+ + "\26\0\1\241\7\0\1\212\31\0\1\212\3\0\3\212"+ + "\26\0\1\242\7\0\1\213\31\0\1\213\3\0\3\213"+ + "\1\243\25\0\1\244\7\0\1\245\31\0\1\245\3\0"+ + "\3\245\50\0\1\246\116\0\1\247\3\0\3\247\46\0"+ + "\2\250\1\0\1\250\4\0\3\250\5\0\3\250\3\0"+ + "\3\250\46\0\2\251\1\0\1\251\4\0\3\251\5\0"+ + "\3\251\3\0\3\251\74\0\3\252\74\0\3\253\21\0"+ + "\3\240\1\254\73\240\5\0\1\242\7\0\1\243\31\0"+ + "\1\243\3\0\3\243\26\0\1\255\7\0\1\245\31\0"+ + "\1\245\3\0\3\245\26\0\1\135\116\0\2\256\1\0"+ + "\1\256\4\0\3\256\5\0\3\256\3\0\3\256\74\0"+ + "\3\257\46\0\2\260\1\0\1\260\4\0\3\260\5\0"+ + "\3\260\3\0\3\260\21\0"; private static int [] zzUnpackTrans() { int [] result = new int[5040]; @@ -596,14 +582,18 @@ class _RegExLexer implements FlexLexer { * @param packed the packed character translation table * @return the unpacked character translation table */ - private static char [] zzUnpackCMap(String packed, int limit) { - char [] map = new char[limit]; + private static char [] zzUnpackCMap(String packed) { + int size = 0; + for (int i = 0, length = packed.length(); i < length; i += 2) { + size += packed.charAt(i); + } + char[] map = new char[size]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2590 && j < limit) { + while (i < packed.length()) { int count = packed.charAt(i++); char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0 && j < limit); + do map[j++] = value; while (--count > 0); } return map; } @@ -746,7 +736,6 @@ class _RegExLexer implements FlexLexer { int zzMarkedPosL; int zzEndReadL = zzEndRead; CharSequence zzBufferL = zzBuffer; - char [] zzCMapL = ZZ_CMAP; int [] zzTransL = ZZ_TRANS; int [] zzRowMapL = ZZ_ROWMAP; @@ -798,8 +787,7 @@ class _RegExLexer implements FlexLexer { zzCurrentPosL += Character.charCount(zzInput); } } - if (zzInput >= zzCMapL.length) ZZ_CMAP = zzCMapL = zzInput >= ZZ_MX ? L.MAP : M.MAP; - int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -824,242 +812,301 @@ class _RegExLexer implements FlexLexer { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: { yypopstate(); return RegExpTT.COMMENT; - } + } + // fall through case 113: break; case 2: { return RegExpTT.CHARACTER; - } + } + // fall through case 114: break; case 3: { return RegExpTT.DOT; - } + } + // fall through case 115: break; case 4: { capturingGroupCount++; return RegExpTT.GROUP_BEGIN; - } + } + // fall through case 116: break; case 5: { return RegExpTT.GROUP_END; - } + } + // fall through case 117: break; case 6: { if (allowDanglingMetacharacters != Boolean.TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } return RegExpTT.CHARACTER; - } + } + // fall through case 118: break; case 7: { return (allowDanglingMetacharacters != Boolean.FALSE) ? RegExpTT.CHARACTER : RegExpTT.RBRACE; - } + } + // fall through case 119: break; case 8: { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; - } + } + // fall through case 120: break; case 9: { return allowDanglingMetacharacters == Boolean.FALSE ? RegExpTT.CLASS_END : RegExpTT.CHARACTER; - } + } + // fall through case 121: break; case 10: { return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } + } + // fall through case 122: break; case 11: { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CHARACTER; - } + } + // fall through case 123: break; case 12: { return RegExpTT.DOLLAR; - } + } + // fall through case 124: break; case 13: { return RegExpTT.QUEST; - } + } + // fall through case 125: break; case 14: { return RegExpTT.STAR; - } + } + // fall through case 126: break; case 15: { return RegExpTT.PLUS; - } + } + // fall through case 127: break; case 16: { return RegExpTT.UNION; - } + } + // fall through case 128: break; case 17: { return RegExpTT.CARET; - } + } + // fall through case 129: break; case 18: { return commentMode ? com.intellij.psi.TokenType.WHITE_SPACE : RegExpTT.CTRL_CHARACTER; - } + } + // fall through case 130: break; case 19: { if (commentMode) { yypushstate(COMMENT); return RegExpTT.COMMENT; } else return RegExpTT.CHARACTER; - } + } + // fall through case 131: break; case 20: { yypopstate(); yypushback(1); - } + } + // fall through case 132: break; case 21: { yypopstate(); return RegExpTT.RBRACE; - } + } + // fall through case 133: break; case 22: { return RegExpTT.NAME; - } + } + // fall through case 134: break; case 23: { return RegExpTT.NUMBER; - } + } + // fall through case 135: break; case 24: { return RegExpTT.COMMA; - } + } + // fall through case 136: break; case 25: { yybegin(CLASS1); return RegExpTT.CARET; - } + } + // fall through case 137: break; case 26: { states.set(states.size() - 1, CLASS2); return RegExpTT.CHARACTER; - } + } + // fall through case 138: break; case 27: { yypushback(1); yybegin(CLASS2); - } + } + // fall through case 139: break; case 28: { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; - } + } + // fall through case 140: break; case 29: { if (allowEmptyCharacterClass) { yypopstate(); return RegExpTT.CLASS_END; } yybegin(CLASS2); return RegExpTT.CHARACTER; - } + } + // fall through case 141: break; case 30: { if (commentMode) return com.intellij.psi.TokenType.WHITE_SPACE; yypushback(1); yybegin(CLASS2); - } + } + // fall through case 142: break; case 31: { if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; - } + } + // fall through case 143: break; case 32: { yypopstate(); return RegExpTT.CLASS_END; - } + } + // fall through case 144: break; case 33: { return RegExpTT.MINUS; - } + } + // fall through case 145: break; case 34: { yypopstate(); yypushstate(EMBRACED); return RegExpTT.LBRACE; - } + } + // fall through case 146: break; case 35: { yypopstate(); return RegExpTT.CATEGORY_SHORT_HAND; - } + } + // fall through case 147: break; case 36: { yybegin(YYINITIAL); return RegExpTT.BAD_CHARACTER; - } + } + // fall through case 148: break; case 37: { yybegin(YYINITIAL); return RegExpTT.GROUP_END; - } + } + // fall through case 149: break; case 38: { handleOptions(); return RegExpTT.OPTIONS_ON; - } + } + // fall through case 150: break; case 39: { handleOptions(); return RegExpTT.OPTIONS_OFF; - } + } + // fall through case 151: break; case 40: { yybegin(YYINITIAL); return RegExpTT.COLON; - } + } + // fall through case 152: break; case 41: { yybegin(YYINITIAL); return RegExpTT.GT; - } + } + // fall through case 153: break; case 42: { yybegin(YYINITIAL); return RegExpTT.QUOTE; - } + } + // fall through case 154: break; case 43: { return RegExpTT.BAD_CHARACTER; - } + } + // fall through case 155: break; case 44: { return allowMysqlBracketExpressions ? RegExpTT.NAME : RegExpTT.BAD_CHARACTER; - } + } + // fall through case 156: break; case 45: { yypopstate(); return (yycharat(-1) == 'u') ? StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN : RegExpTT.BAD_HEX_VALUE; - } + } + // fall through case 157: break; case 46: { yybegin(OPTIONS); return RegExpTT.SET_OPTIONS; - } + } + // fall through case 158: break; case 47: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; - } + } + // fall through case 159: break; case 48: { return RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 160: break; case 49: { return RegExpTT.ESC_CHARACTER; - } + } + // fall through case 161: break; case 50: { return (allowDanglingMetacharacters != Boolean.TRUE) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 162: break; case 51: { return (allowDanglingMetacharacters == Boolean.FALSE) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 163: break; case 52: { return (yystate() == CLASS2) ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 164: break; case 53: { return commentMode ? RegExpTT.ESC_CTRL_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 165: break; case 54: { return RegExpTT.ESC_CTRL_CHARACTER; - } + } + // fall through case 166: break; case 55: { return RegExpTT.BOUNDARY; - } + } + // fall through case 167: break; case 56: { return RegExpTT.CHAR_CLASS; - } + } + // fall through case 168: break; case 57: { if (xmlSchemaMode) return RegExpTT.CHAR_CLASS; else return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } + } + // fall through case 169: break; case 58: { yypushstate(PROP); return RegExpTT.PROPERTY; - } + } + // fall through case 170: break; case 59: { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; - } + } + // fall through case 171: break; case 60: { String text = yytext().toString().substring(1); @@ -1102,68 +1149,82 @@ class _RegExLexer implements FlexLexer { } return RegExpTT.BACKREF; } - } + } + // fall through case 172: break; case 61: { yypushstate(QUOTED); return RegExpTT.QUOTE_BEGIN; - } + } + // fall through case 173: break; case 62: { return RegExpTT.BAD_HEX_VALUE; - } + } + // fall through case 174: break; case 63: { return allowTransformationEscapes ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; - } + } + // fall through case 175: break; case 64: { return (allowOctalNoLeadingZero ? RegExpTT.OCT_CHAR : RegExpTT.BAD_OCT_VALUE); - } + } + // fall through case 176: break; case 65: { return (allowHexDigitClass || allowHorizontalWhitespaceClass ? RegExpTT.CHAR_CLASS : StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN); - } + } + // fall through case 177: break; case 66: { yypushstate(NAMED); return RegExpTT.NAMED_CHARACTER; - } + } + // fall through case 178: break; case 67: { yypopstate(); return RegExpTT.QUOTE_END; - } + } + // fall through case 179: break; case 68: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { yybegin(CLASS2); if (allowMysqlBracketExpressions) { yypushback(1); } else if (allowNestedCharacterClasses) { yypushstate(CLASS1); return RegExpTT.CLASS_BEGIN; } else { return RegExpTT.CHARACTER; } - } + } + // fall through case 180: break; case 69: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { yybegin(CLASS2); if (allowNestedCharacterClasses) { yypushstate(NEGATED_CLASS); return RegExpTT.CLASS_BEGIN; } return RegExpTT.CHARACTER; - } + } + // fall through case 181: break; case 70: // 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; } - } + } + // fall through case 182: break; case 71: { yybegin(CLASS2); return allowEmptyCharacterClass ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 183: break; case 72: { yybegin(CLASS2); return RegExpTT.ESC_CHARACTER; - } + } + // fall through case 184: break; case 73: { yypushstate(QUOTED_CLASS1); return RegExpTT.QUOTE_BEGIN; - } + } + // fall through case 185: break; case 74: { char c = yycharat(1); @@ -1180,189 +1241,228 @@ class _RegExLexer implements FlexLexer { yypushback(1); return allowNestedCharacterClasses ? RegExpTT.CLASS_BEGIN : RegExpTT.CHARACTER; } - } + } + // fall through case 186: break; case 75: // 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; - } + } + // fall through case 187: break; case 76: { if (allowNestedCharacterClasses) return RegExpTT.ANDAND; else yypushback(1); return RegExpTT.CHARACTER; - } + } + // fall through case 188: break; case 77: { yybegin(CLASS2); return RegExpTT.BRACKET_EXPRESSION_END; - } + } + // fall through case 189: break; case 78: { yybegin(CLASS2); return RegExpTT.MYSQL_CHAR_END; - } + } + // fall through case 190: break; case 79: { yybegin(CLASS2); return RegExpTT.MYSQL_CHAR_EQ_END; - } + } + // fall through case 191: break; case 80: { yybegin(PY_COND_REF); return RegExpTT.PYTHON_COND_REF; - } + } + // fall through case 192: break; case 81: { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_NAMED_GROUP; - } + } + // fall through case 193: break; case 82: { yybegin(QUOTED_NAMED_GROUP); capturingGroupCount++; return RegExpTT.RUBY_QUOTED_NAMED_GROUP; - } + } + // fall through case 194: break; case 83: { return RegExpTT.NON_CAPT_GROUP; - } + } + // fall through case 195: break; case 84: { return RegExpTT.POS_LOOKAHEAD; - } + } + // fall through case 196: break; case 85: { return RegExpTT.ATOMIC_GROUP; - } + } + // fall through case 197: break; case 86: { return RegExpTT.NEG_LOOKAHEAD; - } + } + // fall through case 198: break; case 87: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; - } + } + // fall through case 199: break; case 88: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { if (allowOmitBothNumbersInQuantifiers || allowDanglingMetacharacters != Boolean.TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else return RegExpTT.CHARACTER; - } + } + // fall through case 200: break; case 89: { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_CALL; - } + } + // fall through case 201: break; case 90: { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_CALL; - } + } + // fall through case 202: break; case 91: { if (xmlSchemaMode) { yypushback(1); return RegExpTT.CHAR_CLASS; } else return RegExpTT.CTRL; - } + } + // fall through case 203: break; case 92: // 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; - } + } + // fall through case 204: break; case 93: { if (allowOneHexCharEscape) { return RegExpTT.HEX_CHAR; } else { yypushback(1); return RegExpTT.BAD_HEX_VALUE; } - } + } + // fall through case 205: break; case 94: // 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; - } + } + // fall through case 206: break; case 95: { yypushback(yylength() - 2); return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; - } + } + // fall through case 207: break; case 96: { return RegExpTT.OCT_CHAR; - } + } + // fall through case 208: break; case 97: { yybegin(NAMED_GROUP); return RegExpTT.RUBY_NAMED_GROUP_REF; - } + } + // fall through case 209: break; case 98: { yybegin(QUOTED_NAMED_GROUP); return RegExpTT.RUBY_QUOTED_NAMED_GROUP_REF; - } + } + // fall through case 210: break; case 99: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { return RegExpTT.CHARACTER; - } + } + // fall through case 211: break; case 100: { yypopstate(); return (yycharat(-1) == 'u') ? RegExpTT.UNICODE_CHAR : RegExpTT.HEX_CHAR; - } + } + // fall through case 212: break; case 101: { yybegin(NAMED_GROUP); capturingGroupCount++; return RegExpTT.PYTHON_NAMED_GROUP; - } + } + // fall through case 213: break; case 102: { yybegin(PY_NAMED_GROUP_REF); return RegExpTT.PYTHON_NAMED_GROUP_REF; - } + } + // fall through case 214: break; case 103: { return RegExpTT.POS_LOOKBEHIND; - } + } + // fall through case 215: break; case 104: { return RegExpTT.NEG_LOOKBEHIND; - } + } + // fall through case 216: break; case 105: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1); { if (allowOmitNumbersInQuantifiers || allowDanglingMetacharacters != Boolean.TRUE) { yypushstate(QUANTIFIER); return RegExpTT.LBRACE; } else return RegExpTT.CHARACTER; - } + } + // fall through case 217: break; case 106: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); { return RegExpTT.ESC_CHARACTER; - } + } + // fall through case 218: break; case 107: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); { return allowOmitBothNumbersInQuantifiers ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 219: break; case 108: { return RegExpTT.HEX_CHAR; - } + } + // fall through case 220: break; case 109: { return RegExpTT.COMMENT; - } + } + // fall through case 221: break; case 110: // lookahead expression with fixed base length zzMarkedPos = Character.offsetByCodePoints (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2); { return allowOmitNumbersInQuantifiers ? RegExpTT.ESC_CHARACTER : RegExpTT.REDUNDANT_ESCAPE; - } + } + // fall through case 222: break; case 111: { if (allowOctalNoLeadingZero) yypushback(1); return RegExpTT.OCT_CHAR; - } + } + // fall through case 223: break; case 112: { return RegExpTT.UNICODE_CHAR; - } + } + // fall through case 224: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHost.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHost.java index f21add85d2ee..3bc8820404bf 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHost.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHost.java @@ -41,7 +41,7 @@ public interface RegExpLanguageHost { } boolean supportsExtendedHexCharacter(RegExpChar regExpChar); - default boolean isValidGroupName(String name, @NotNull PsiElement context) { + default boolean isValidGroupName(String name, @NotNull RegExpGroup group) { for (int i = 0, length = name.length(); i < length; i++) { final char c = name.charAt(i); if (!AsciiUtil.isLetterOrDigit(c) && c != '_') { diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHosts.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHosts.java index 8f1977230d59..f9735609bac5 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHosts.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpLanguageHosts.java @@ -117,9 +117,9 @@ public final class RegExpLanguageHosts extends ClassExtension