diff --git a/src/main/gen/com/amazon/ion/plugin/intellij/IonLexer.java b/src/main/gen/com/amazon/ion/plugin/intellij/IonLexer.java index 3f3c3a3..633b356 100644 --- a/src/main/gen/com/amazon/ion/plugin/intellij/IonLexer.java +++ b/src/main/gen/com/amazon/ion/plugin/intellij/IonLexer.java @@ -1,20 +1,16 @@ -/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ +// Generated by JFlex 1.9.2 http://jflex.de/ (tweaked for IntelliJ platform) +// source: Ion.flex package com.amazon.ion.plugin.intellij; -import com.intellij.lexer.FlexLexer; import com.intellij.psi.tree.IElementType; import com.amazon.ion.plugin.intellij.psi.IonTypes; +import com.intellij.lexer.FlexLexer; import com.intellij.psi.TokenType; import static com.amazon.ion.plugin.intellij.helpers.ContentCorrectnessHelper.*; -/** - * This class is a scanner generated by - * JFlex 1.7.0 - * from the specification file Ion.flex - */ public class IonLexer implements FlexLexer { /** This character denotes the end of file */ @@ -41,73 +37,111 @@ public class IonLexer implements FlexLexer { * at the beginning of a line * l is of the form l = 2*k, k a non negative integer */ - private static final int ZZ_LEXSTATE[] = { + private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9 }; - /** - * Translates characters to character classes - * Chosen bits are [9, 6, 6] - * Total runtime size is 1568 bytes + /** + * Top-level table for translating characters to character classes */ - public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[ZZ_CMAP_Z[ch>>12]|((ch>>6)&0x3f)]<<6)|(ch&0x3f)]; + private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); + + private static final String ZZ_CMAP_TOP_PACKED_0 = + "\1\0\37\u0100\1\u0200\267\u0100\10\u0300\u1020\u0100"; + + private static int [] zzUnpackcmap_top() { + int [] result = new int[4352]; + int offset = 0; + offset = zzUnpackcmap_top(ZZ_CMAP_TOP_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackcmap_top(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; } - /* The ZZ_CMAP_Z table has 272 entries */ - static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\100\1\200\u010d\100"); - /* The ZZ_CMAP_Y table has 192 entries */ - static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\175\3\1\4\77\3"); + /** + * Second-level tables for translating characters to character classes + */ + private static final int [] ZZ_CMAP_BLOCKS = zzUnpackcmap_blocks(); + + private static final String ZZ_CMAP_BLOCKS_PACKED_0 = + "\11\0\1\1\1\2\1\3\1\1\1\2\22\0\1\4"+ + "\1\5\1\6\1\5\1\7\1\5\1\10\1\11\1\12"+ + "\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22"+ + "\1\23\10\24\1\25\1\5\1\26\1\27\1\30\2\5"+ + "\3\31\1\32\1\33\1\31\15\34\1\35\5\34\1\36"+ + "\1\37\1\40\1\41\1\5\1\42\1\5\1\43\1\44"+ + "\1\45\1\46\1\47\1\50\1\51\1\34\1\52\2\34"+ + "\1\53\1\54\1\55\1\56\1\57\1\34\1\60\1\61"+ + "\1\62\1\63\2\34\1\64\1\65\1\34\1\66\1\67"+ + "\1\70\1\5\6\0\1\3\u01a2\0\2\3\326\0\u0100\3"; + + private static int [] zzUnpackcmap_blocks() { + int [] result = new int[1024]; + int offset = 0; + offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); + return result; + } - /* The ZZ_CMAP_A table has 320 entries */ - static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\2\1\1\1\67\1\2\1\1\22\0\1\2\1\27\1\64\1\27\1\26\1\27\1\25\1\63\1\14"+ - "\1\15\1\4\1\17\1\7\1\20\1\30\1\3\1\54\1\60\10\6\1\16\1\27\1\22\1\21\1\23\2"+ - "\27\3\55\1\56\1\57\1\55\15\61\1\65\5\61\1\66\1\12\1\62\1\13\1\27\1\5\1\27"+ - "\1\36\1\42\1\46\1\45\1\34\1\35\1\51\1\61\1\44\2\61\1\37\1\47\1\41\1\43\1\50"+ - "\1\61\1\32\1\40\1\31\1\33\2\61\1\53\1\52\1\61\1\10\1\24\1\11\1\27\6\0\1\67"+ - "\242\0\2\67\26\0"); + private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } - /** + /** * Translates DFA states to action switch labels. */ private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\12\0\1\1\1\2\1\1\1\3\1\4\1\5\1\6"+ - "\1\7\1\10\3\1\3\3\1\4\1\11\1\12\1\13"+ - "\1\14\1\15\1\16\1\14\1\17\1\20\1\21\1\22"+ - "\1\23\1\24\1\25\2\1\3\21\1\22\1\26\1\27"+ - "\2\14\1\30\1\31\2\32\1\33\10\32\1\34\1\35"+ - "\1\34\1\1\2\34\1\1\1\2\1\3\1\4\1\5"+ - "\1\6\1\7\1\10\3\1\3\3\1\4\1\11\1\12"+ - "\1\0\2\36\1\37\2\40\1\41\1\42\1\0\1\4"+ - "\1\43\1\0\1\43\1\44\1\45\1\0\2\4\4\3"+ - "\3\0\1\46\1\14\1\0\1\22\1\47\1\0\1\47"+ - "\1\50\1\0\2\22\4\21\2\0\1\14\1\0\4\34"+ - "\1\51\1\34\1\0\1\4\1\43\1\0\1\43\1\44"+ - "\1\45\1\0\2\4\4\3\5\0\1\4\2\43\1\0"+ - "\1\43\1\0\3\3\1\43\1\52\1\53\1\54\1\14"+ - "\1\55\1\22\2\47\1\0\1\47\1\0\3\21\1\47"+ - "\1\56\1\57\1\14\1\60\5\34\1\0\1\4\2\43"+ - "\1\0\1\43\1\0\3\3\1\43\1\52\1\53\1\61"+ - "\1\0\1\42\1\4\1\0\1\43\1\62\1\63\1\14"+ - "\1\22\1\0\1\47\1\64\1\65\1\14\2\34\1\66"+ - "\1\4\1\0\1\43\1\62\1\63\1\66\1\42\1\0"+ - "\1\67\2\0\1\70\1\0\2\14\2\34\1\0\1\67"+ - "\1\0\1\66\26\0\2\14\1\34\45\0\2\14\1\34"+ - "\26\0\1\63\12\0\1\65\1\0\1\14\11\0\1\63"+ - "\15\0\1\14\6\0\2\67\3\0\2\70\3\0\1\14"+ - "\2\67\5\0\1\67\3\0\1\70\3\0\1\67\12\0"+ - "\1\67\1\0\1\70\1\0\1\67\7\0\1\67\1\0"+ - "\1\70\1\0\1\67\1\0"; + "\12\0\1\1\1\2\1\3\1\4\1\5\1\6\1\1"+ + "\1\7\2\1\2\10\1\1\1\11\3\4\1\12\1\13"+ + "\1\14\1\15\1\16\1\17\1\15\1\20\1\21\1\22"+ + "\1\23\1\24\2\1\2\25\1\26\3\22\1\27\2\15"+ + "\1\30\1\31\1\15\3\32\1\33\7\32\1\34\4\35"+ + "\2\1\1\2\1\0\1\3\1\4\1\5\1\6\1\1"+ + "\1\7\1\1\2\10\1\1\1\11\3\4\1\12\1\36"+ + "\1\37\1\36\1\40\1\41\1\40\2\0\2\10\1\0"+ + "\1\42\1\43\1\10\1\43\3\0\1\44\4\4\1\45"+ + "\1\0\1\46\1\15\2\0\2\25\1\47\1\25\1\47"+ + "\2\0\4\22\1\50\1\0\1\15\5\35\1\51\3\0"+ + "\2\10\1\43\1\10\1\43\3\0\1\44\4\4\1\45"+ + "\1\52\3\0\1\43\1\10\1\43\1\0\1\43\1\53"+ + "\1\54\1\4\1\43\2\4\1\55\1\15\1\56\1\0"+ + "\1\47\1\25\1\47\1\0\1\47\1\57\1\22\1\47"+ + "\2\22\1\60\1\15\5\35\1\0\1\61\1\0\1\43"+ + "\1\10\1\43\1\0\1\43\1\53\1\54\1\4\1\43"+ + "\2\4\1\43\1\0\1\42\1\10\1\0\1\62\1\63"+ + "\1\15\1\47\1\25\1\0\1\64\1\65\1\15\2\35"+ + "\2\66\1\43\1\10\1\0\1\62\1\63\1\42\1\0"+ + "\1\67\2\0\1\70\1\0\2\15\2\35\1\66\1\0"+ + "\1\67\27\0\2\15\1\35\45\0\2\15\1\35\23\0"+ + "\1\62\12\0\1\64\4\0\1\15\6\0\1\62\20\0"+ + "\1\15\6\0\2\67\3\0\2\70\3\0\1\15\2\67"+ + "\5\0\1\67\3\0\1\70\3\0\1\67\13\0\1\67"+ + "\1\0\1\70\1\0\1\67\7\0\1\67\1\0\1\70"+ + "\1\0\1\67"; private static int [] zzUnpackAction() { - int [] result = new int[427]; + int [] result = new int[428]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -126,69 +160,69 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { } - /** + /** * Translates a state to a row index in the transition table */ private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\70\0\160\0\250\0\340\0\u0118\0\u0150\0\u0188"+ - "\0\u01c0\0\u01f8\0\u0230\0\u0268\0\u02a0\0\u02d8\0\u0310\0\u0230"+ - "\0\u0348\0\u0230\0\u0230\0\u0380\0\u03b8\0\u03f0\0\u0428\0\u0460"+ - "\0\u0498\0\u04d0\0\u0508\0\u0230\0\u0230\0\u0540\0\u0230\0\u0578"+ - "\0\u05b0\0\u05e8\0\u0230\0\u0620\0\u0658\0\u0690\0\u0230\0\u0230"+ - "\0\u06c8\0\u0700\0\u0738\0\u0770\0\u07a8\0\u07e0\0\u0818\0\u0230"+ - "\0\u0850\0\u0888\0\u08c0\0\u0230\0\u02a0\0\u0230\0\u0230\0\u08f8"+ - "\0\u0930\0\u0968\0\u09a0\0\u09d8\0\u0a10\0\u02d8\0\u0a48\0\u0a80"+ - "\0\u0ab8\0\u0af0\0\u0b28\0\u0b60\0\u0b98\0\u0bd0\0\u0c08\0\u0c40"+ - "\0\u0c78\0\u0bd0\0\u0cb0\0\u0bd0\0\u0bd0\0\u0ce8\0\u0d20\0\u0d58"+ - "\0\u0d90\0\u0dc8\0\u0e00\0\u0e38\0\u0e70\0\u0bd0\0\u0bd0\0\u0ea8"+ - "\0\u0ee0\0\u0230\0\u0f18\0\u0f50\0\u0508\0\u0f88\0\u0fc0\0\u0ff8"+ - "\0\u1030\0\u1068\0\u10a0\0\u0230\0\u0230\0\u10d8\0\u1110\0\u1148"+ - "\0\u1180\0\u11b8\0\u11f0\0\u1228\0\u1260\0\u1298\0\u12d0\0\u0230"+ - "\0\u1308\0\u1340\0\u1378\0\u13b0\0\u13e8\0\u1420\0\u0230\0\u1458"+ - "\0\u1490\0\u14c8\0\u1500\0\u1538\0\u1570\0\u15a8\0\u15e0\0\u1618"+ - "\0\u1650\0\u1688\0\u16c0\0\u16f8\0\u1730\0\u1768\0\u0230\0\u17a0"+ - "\0\u17d8\0\u1810\0\u1848\0\u1880\0\u18b8\0\u0bd0\0\u0bd0\0\u18f0"+ - "\0\u1928\0\u1960\0\u1998\0\u19d0\0\u1a08\0\u1a40\0\u1a78\0\u1ab0"+ - "\0\u1ae8\0\u1b20\0\u1b58\0\u1b90\0\u1bc8\0\u1c00\0\u1c38\0\u1c70"+ - "\0\u1ca8\0\u1ce0\0\u1d18\0\u1d50\0\u02d8\0\u1260\0\u1298\0\u0230"+ - "\0\u1d88\0\u0230\0\u1dc0\0\u1df8\0\u1e30\0\u1e68\0\u1ea0\0\u1ed8"+ - "\0\u1f10\0\u1f48\0\u1f80\0\u0620\0\u15e0\0\u0230\0\u1fb8\0\u0230"+ - "\0\u1ff0\0\u2028\0\u2060\0\u2098\0\u20d0\0\u2108\0\u2140\0\u2178"+ - "\0\u21b0\0\u21e8\0\u2220\0\u2258\0\u2290\0\u22c8\0\u2300\0\u0c40"+ - "\0\u1a78\0\u1ab0\0\u2338\0\u2370\0\u1b20\0\u23a8\0\u1c00\0\u0230"+ - "\0\u02d8\0\u23e0\0\u2418\0\u2450\0\u1e30\0\u0230\0\u0620\0\u2488"+ - "\0\u24c0\0\u24f8\0\u2530\0\u2338\0\u2568\0\u21b0\0\u0bd0\0\u0c40"+ - "\0\u25a0\0\u25d8\0\u0230\0\u2610\0\u2648\0\u2680\0\u26b8\0\u26f0"+ - "\0\u2728\0\u2760\0\u2798\0\u27d0\0\u2808\0\u2840\0\u2878\0\u28b0"+ - "\0\u0230\0\u28e8\0\u2920\0\u2958\0\u2990\0\u29c8\0\u2a00\0\u2a38"+ - "\0\u2a70\0\u2aa8\0\u2ae0\0\u2b18\0\u2b50\0\u2b88\0\u2bc0\0\u2bf8"+ - "\0\u2c30\0\u2c68\0\u2ca0\0\u2cd8\0\u2d10\0\u2d48\0\u2d80\0\u2db8"+ - "\0\u2df0\0\u2e28\0\u2e60\0\u2e98\0\u2ed0\0\u2f08\0\u2f40\0\u2f78"+ - "\0\u2fb0\0\u2fe8\0\u3020\0\u3058\0\u3090\0\u30c8\0\u3100\0\u3138"+ - "\0\u3170\0\u31a8\0\u31e0\0\u3218\0\u3250\0\u3288\0\u32c0\0\u32f8"+ - "\0\u3330\0\u3368\0\u33a0\0\u33d8\0\u3410\0\u3448\0\u3480\0\u34b8"+ - "\0\u34f0\0\u3528\0\u3560\0\u3598\0\u35d0\0\u3608\0\u3640\0\u3678"+ - "\0\u36b0\0\u36e8\0\u3720\0\u3758\0\u3790\0\u37c8\0\u3800\0\u3838"+ - "\0\u3870\0\u38a8\0\u38e0\0\u3918\0\u3950\0\u3988\0\u39c0\0\u39f8"+ - "\0\u3a30\0\u3a68\0\u3aa0\0\u3ad8\0\u3b10\0\u3b48\0\u3b80\0\u3bb8"+ - "\0\u0230\0\u3bf0\0\u3c28\0\u3c60\0\u3c98\0\u3cd0\0\u3d08\0\u3d40"+ - "\0\u3d78\0\u3db0\0\u3de8\0\u0230\0\u3e20\0\u3e58\0\u3e90\0\u3ec8"+ - "\0\u3f00\0\u3f38\0\u3f70\0\u3fa8\0\u3fe0\0\u4018\0\u4050\0\u0bd0"+ - "\0\u4088\0\u40c0\0\u40f8\0\u4130\0\u4168\0\u41a0\0\u41d8\0\u4210"+ - "\0\u4248\0\u4280\0\u42b8\0\u42f0\0\u4328\0\u4360\0\u4398\0\u43d0"+ - "\0\u4408\0\u4440\0\u4478\0\u44b0\0\u44e8\0\u4520\0\u4558\0\u4590"+ - "\0\u45c8\0\u4600\0\u4638\0\u4670\0\u46a8\0\u46e0\0\u4718\0\u4750"+ - "\0\u4788\0\u47c0\0\u47f8\0\u4830\0\u4868\0\u48a0\0\u0230\0\u48d8"+ - "\0\u4910\0\u4948\0\u0230\0\u4980\0\u49b8\0\u49f0\0\u0bd0\0\u4a28"+ - "\0\u4a60\0\u4a98\0\u4ad0\0\u4b08\0\u4b40\0\u4b78\0\u4bb0\0\u4be8"+ - "\0\u4c20\0\u4c58\0\u4c90\0\u4cc8\0\u4d00\0\u4d38\0\u4d70\0\u4da8"+ - "\0\u4de0\0\u4e18\0\u4e50\0\u4e88\0\u4ec0\0\u4ef8\0\u4f30\0\u4f68"+ - "\0\u4fa0\0\u4fd8\0\u5010"; + "\0\0\0\71\0\162\0\253\0\344\0\u011d\0\u0156\0\u018f"+ + "\0\u01c8\0\u0201\0\u023a\0\u0273\0\u023a\0\u02ac\0\u02e5\0\u023a"+ + "\0\u031e\0\u023a\0\u0357\0\u0390\0\u03c9\0\u0402\0\u043b\0\u023a"+ + "\0\u0474\0\u04ad\0\u04e6\0\u051f\0\u023a\0\u023a\0\u0558\0\u0591"+ + "\0\u05ca\0\u0603\0\u023a\0\u023a\0\u063c\0\u0675\0\u023a\0\u06ae"+ + "\0\u06e7\0\u0720\0\u0759\0\u023a\0\u0792\0\u07cb\0\u0804\0\u083d"+ + "\0\u0876\0\u08af\0\u023a\0\u08e8\0\u0921\0\u023a\0\u02ac\0\u095a"+ + "\0\u023a\0\u0993\0\u09cc\0\u0a05\0\u0390\0\u0a3e\0\u0a77\0\u0ab0"+ + "\0\u0ae9\0\u0b22\0\u0b5b\0\u0b94\0\u0bcd\0\u0c06\0\u0c3f\0\u0c78"+ + "\0\u0c3f\0\u0c3f\0\u0cb1\0\u0cea\0\u0c3f\0\u0d23\0\u0c3f\0\u0d5c"+ + "\0\u0d95\0\u0dce\0\u0e07\0\u0c3f\0\u0e40\0\u0e79\0\u0eb2\0\u0eeb"+ + "\0\u0f24\0\u023a\0\u0f5d\0\u0f96\0\u02e5\0\u0fcf\0\u1008\0\u1041"+ + "\0\u107a\0\u10b3\0\u10ec\0\u1125\0\u115e\0\u1197\0\u11d0\0\u1209"+ + "\0\u1242\0\u127b\0\u023a\0\u12b4\0\u12ed\0\u1326\0\u135f\0\u023a"+ + "\0\u1398\0\u023a\0\u13d1\0\u140a\0\u1443\0\u147c\0\u14b5\0\u14ee"+ + "\0\u1527\0\u1560\0\u1599\0\u15d2\0\u160b\0\u1644\0\u167d\0\u16b6"+ + "\0\u023a\0\u16ef\0\u1728\0\u1761\0\u179a\0\u17d3\0\u180c\0\u1845"+ + "\0\u023a\0\u187e\0\u18b7\0\u18f0\0\u1929\0\u1962\0\u199b\0\u19d4"+ + "\0\u1a0d\0\u1a46\0\u1a7f\0\u1ab8\0\u0c3f\0\u1af1\0\u1b2a\0\u1b63"+ + "\0\u1b9c\0\u0c3f\0\u023a\0\u1bd5\0\u1c0e\0\u1c47\0\u1c80\0\u1cb9"+ + "\0\u1cf2\0\u1d2b\0\u1d64\0\u1242\0\u127b\0\u1d9d\0\u02ac\0\u1dd6"+ + "\0\u1e0f\0\u023a\0\u1e48\0\u023a\0\u1e81\0\u1eba\0\u1ef3\0\u1f2c"+ + "\0\u1f65\0\u1f9e\0\u15d2\0\u1fd7\0\u063c\0\u2010\0\u2049\0\u023a"+ + "\0\u2082\0\u20bb\0\u20f4\0\u212d\0\u2166\0\u219f\0\u21d8\0\u2211"+ + "\0\u224a\0\u2283\0\u22bc\0\u22f5\0\u232e\0\u2367\0\u1a7f\0\u1ab8"+ + "\0\u23a0\0\u0cb1\0\u23d9\0\u2412\0\u023a\0\u244b\0\u1c0e\0\u2484"+ + "\0\u1d64\0\u24bd\0\u02ac\0\u24f6\0\u023a\0\u252f\0\u1f9e\0\u2568"+ + "\0\u063c\0\u25a1\0\u25da\0\u2613\0\u2211\0\u264c\0\u0c3f\0\u2685"+ + "\0\u2367\0\u26be\0\u0cb1\0\u023a\0\u26f7\0\u2730\0\u2769\0\u27a2"+ + "\0\u27db\0\u2814\0\u284d\0\u2886\0\u28bf\0\u28f8\0\u023a\0\u2931"+ + "\0\u296a\0\u29a3\0\u29dc\0\u2a15\0\u2a4e\0\u2a87\0\u2ac0\0\u2af9"+ + "\0\u2b32\0\u2b6b\0\u2ba4\0\u2bdd\0\u2c16\0\u2c4f\0\u2c88\0\u2cc1"+ + "\0\u2cfa\0\u2d33\0\u2d6c\0\u2da5\0\u2dde\0\u2e17\0\u2e50\0\u2e89"+ + "\0\u2ec2\0\u2efb\0\u2f34\0\u2f6d\0\u2fa6\0\u2fdf\0\u3018\0\u3051"+ + "\0\u308a\0\u30c3\0\u30fc\0\u3135\0\u316e\0\u31a7\0\u31e0\0\u3219"+ + "\0\u3252\0\u328b\0\u32c4\0\u32fd\0\u3336\0\u336f\0\u33a8\0\u33e1"+ + "\0\u341a\0\u3453\0\u348c\0\u34c5\0\u34fe\0\u3537\0\u3570\0\u35a9"+ + "\0\u35e2\0\u361b\0\u3654\0\u368d\0\u36c6\0\u36ff\0\u3738\0\u3771"+ + "\0\u37aa\0\u37e3\0\u381c\0\u3855\0\u388e\0\u38c7\0\u3900\0\u3939"+ + "\0\u3972\0\u39ab\0\u39e4\0\u3a1d\0\u3a56\0\u3a8f\0\u3ac8\0\u3b01"+ + "\0\u3b3a\0\u3b73\0\u3bac\0\u3be5\0\u3c1e\0\u3c57\0\u023a\0\u3c90"+ + "\0\u3cc9\0\u3d02\0\u3d3b\0\u3d74\0\u3dad\0\u3de6\0\u3e1f\0\u3e58"+ + "\0\u3e91\0\u023a\0\u3eca\0\u3f03\0\u3f3c\0\u3f75\0\u3fae\0\u3fe7"+ + "\0\u4020\0\u4059\0\u4092\0\u40cb\0\u4104\0\u0c3f\0\u413d\0\u4176"+ + "\0\u41af\0\u41e8\0\u4221\0\u425a\0\u4293\0\u42cc\0\u4305\0\u433e"+ + "\0\u4377\0\u43b0\0\u43e9\0\u4422\0\u445b\0\u4494\0\u44cd\0\u4506"+ + "\0\u453f\0\u4578\0\u45b1\0\u45ea\0\u4623\0\u465c\0\u4695\0\u46ce"+ + "\0\u4707\0\u4740\0\u4779\0\u47b2\0\u47eb\0\u4824\0\u485d\0\u4896"+ + "\0\u48cf\0\u4908\0\u4941\0\u497a\0\u49b3\0\u49ec\0\u4a25\0\u023a"+ + "\0\u4a5e\0\u4a97\0\u4ad0\0\u023a\0\u4b09\0\u4b42\0\u4b7b\0\u0c3f"+ + "\0\u4bb4\0\u4bed\0\u4c26\0\u4c5f\0\u4c98\0\u4cd1\0\u4d0a\0\u4d43"+ + "\0\u4d7c\0\u4db5\0\u4dee\0\u4e27\0\u4e60\0\u4e99\0\u4ed2\0\u4f0b"+ + "\0\u4f44\0\u4f7d\0\u4fb6\0\u4fef\0\u5028\0\u5061\0\u509a\0\u50d3"+ + "\0\u510c\0\u5145\0\u517e\0\u51b7"; private static int [] zzUnpackRowMap() { - int [] result = new int[427]; + int [] result = new int[428]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -197,7 +231,7 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { private static int zzUnpackRowMap(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ - int l = packed.length(); + int l = packed.length() - 1; while (i < l) { int high = packed.charAt(i++) << 16; result[j++] = high | packed.charAt(i++); @@ -205,370 +239,319 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { return j; } - /** + /** * The transition table of the DFA */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); + private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\13\2\14\1\15\1\13\1\16\1\17\1\20\1\21"+ - "\1\13\1\22\1\13\1\23\1\13\1\24\1\25\1\26"+ - "\5\13\1\16\2\13\1\27\3\16\1\30\3\16\1\31"+ - "\12\16\1\32\3\16\1\17\1\16\1\13\1\33\1\34"+ - "\2\16\1\0\1\13\2\14\1\15\1\13\1\16\1\17"+ - "\1\20\1\21\1\13\1\22\1\35\1\23\1\13\1\24"+ - "\1\25\1\26\5\13\1\16\2\13\1\27\3\16\1\30"+ - "\3\16\1\31\12\16\1\32\3\16\1\17\1\16\1\13"+ - "\1\33\1\34\2\16\1\0\1\13\2\14\1\15\1\13"+ - "\1\36\1\17\1\20\1\21\1\37\1\22\1\13\1\23"+ - "\1\13\1\40\1\25\1\26\5\13\1\36\2\13\10\36"+ - "\1\41\12\36\1\32\3\36\1\17\1\36\1\13\1\42"+ - "\1\43\2\36\1\0\1\13\2\14\2\13\1\44\1\45"+ - "\1\20\1\46\1\13\1\47\1\13\1\50\1\13\1\24"+ - "\1\51\1\52\5\13\1\44\2\13\1\53\3\44\1\54"+ - "\3\44\1\55\12\44\1\56\3\44\1\45\1\44\1\13"+ - "\1\57\1\60\2\44\1\0\1\61\2\14\3\61\1\62"+ - "\7\61\1\24\35\61\1\62\3\61\1\62\1\61\1\13"+ - "\1\63\1\64\3\61\1\13\2\14\1\65\1\66\1\16"+ - "\1\17\1\20\1\21\1\13\1\22\1\13\1\23\1\67"+ - "\1\24\1\70\1\71\1\66\1\72\1\73\1\74\1\75"+ - "\1\76\1\66\1\77\1\27\3\16\1\30\3\16\1\31"+ - "\12\16\1\32\3\16\1\17\1\16\1\13\1\33\1\34"+ - "\2\16\1\0\1\13\2\14\1\100\1\13\1\101\1\102"+ - "\1\20\1\21\1\103\1\22\1\13\1\23\1\13\1\24"+ - "\1\100\1\26\5\13\1\101\2\13\10\104\1\105\12\104"+ - "\1\102\3\104\1\102\1\104\1\13\1\33\1\34\2\104"+ - "\1\0\1\106\2\107\2\106\1\110\1\111\1\112\1\113"+ - "\1\106\1\114\1\106\1\115\1\106\1\116\1\117\1\120"+ - "\5\106\1\110\2\106\1\121\3\110\1\122\3\110\1\123"+ - "\12\110\1\124\3\110\1\111\1\110\1\106\1\125\1\126"+ - "\2\110\1\127\62\130\1\131\1\130\1\132\3\130\62\133"+ - "\1\134\1\135\4\133\71\0\2\14\70\0\1\136\1\137"+ - "\70\0\2\16\17\0\1\16\2\0\31\16\3\0\2\16"+ - "\7\0\1\140\21\0\1\141\3\0\1\142\10\0\1\143"+ - "\6\0\1\140\1\0\1\143\1\142\1\140\17\0\1\144"+ - "\75\0\1\145\115\0\1\146\31\0\1\147\35\0\1\146"+ - "\7\0\1\150\3\0\1\147\14\0\2\16\17\0\1\16"+ - "\2\0\1\16\1\151\27\16\3\0\2\16\6\0\2\16"+ - "\17\0\1\16\2\0\5\16\1\152\23\16\3\0\2\16"+ - "\6\0\2\16\17\0\1\16\2\0\2\16\1\153\2\16"+ - "\1\154\23\16\3\0\2\16\7\0\1\140\21\0\1\141"+ - "\3\0\1\142\5\0\1\155\2\0\1\143\5\0\1\156"+ - "\1\140\1\0\1\143\1\142\1\140\72\0\1\157\11\0"+ - "\2\36\17\0\1\36\2\0\31\36\3\0\2\36\17\0"+ - "\1\160\56\0\2\36\17\0\1\36\2\0\2\36\1\161"+ - "\26\36\3\0\2\36\64\0\1\162\11\0\2\44\17\0"+ - "\1\44\2\0\31\44\3\0\2\44\7\0\1\163\21\0"+ - "\1\164\3\0\1\165\10\0\1\166\6\0\1\163\1\0"+ - "\1\166\1\165\1\163\17\0\1\167\123\0\1\170\31\0"+ - "\1\171\35\0\1\170\7\0\1\172\3\0\1\171\14\0"+ - "\2\44\17\0\1\44\2\0\1\44\1\173\27\44\3\0"+ - "\2\44\6\0\2\44\17\0\1\44\2\0\5\44\1\174"+ - "\23\44\3\0\2\44\6\0\2\44\17\0\1\44\2\0"+ - "\2\44\1\175\2\44\1\176\23\44\3\0\2\44\7\0"+ - "\1\163\21\0\1\164\3\0\1\165\5\0\1\155\2\0"+ - "\1\166\5\0\1\177\1\163\1\0\1\166\1\165\1\163"+ - "\72\0\1\200\4\0\1\61\2\0\13\61\1\0\43\61"+ - "\3\0\4\61\2\0\3\61\1\201\7\61\1\0\35\61"+ - "\1\201\3\61\1\201\1\61\3\0\3\61\63\0\1\202"+ - "\23\0\1\66\24\0\1\146\31\0\1\147\11\0\1\66"+ - "\23\0\1\146\7\0\1\150\3\0\1\147\31\0\1\66"+ - "\70\0\1\66\70\0\1\66\70\0\1\66\72\0\1\66"+ - "\42\0\1\100\2\0\1\100\10\0\1\100\1\0\1\203"+ - "\7\0\31\100\3\0\2\100\6\0\2\101\17\0\1\101"+ - "\2\0\31\101\3\0\2\101\4\0\1\100\2\0\1\204"+ - "\10\0\1\100\1\0\1\203\6\0\1\141\3\100\1\205"+ - "\10\100\1\206\6\100\1\204\1\100\1\206\1\205\1\204"+ - "\1\100\3\0\2\100\12\0\1\207\61\0\1\100\1\0"+ - "\1\101\1\104\10\0\1\100\1\0\1\203\4\0\1\101"+ - "\2\0\31\104\3\0\2\104\4\0\1\100\1\0\1\101"+ - "\1\104\10\0\1\100\1\0\1\203\4\0\1\101\2\0"+ - "\2\104\1\210\26\104\3\0\2\104\1\0\63\127\1\211"+ - "\5\127\2\107\60\127\1\211\11\127\2\110\17\127\1\110"+ - "\2\127\31\110\1\127\1\211\1\127\2\110\7\127\1\212"+ - "\21\127\1\213\3\127\1\214\10\127\1\215\6\127\1\212"+ - "\1\127\1\215\1\214\1\212\2\127\1\211\14\127\1\216"+ - "\52\127\1\211\22\127\1\217\44\127\1\211\50\127\1\220"+ - "\16\127\1\211\12\127\1\221\35\127\1\220\7\127\1\222"+ - "\3\127\1\221\2\127\1\211\11\127\2\110\17\127\1\110"+ - "\2\127\1\110\1\223\27\110\1\127\1\211\1\127\2\110"+ - "\6\127\2\110\17\127\1\110\2\127\5\110\1\224\23\110"+ - "\1\127\1\211\1\127\2\110\6\127\2\110\17\127\1\110"+ - "\2\127\2\110\1\225\2\110\1\226\23\110\1\127\1\211"+ - "\1\127\2\110\7\127\1\212\21\127\1\213\3\127\1\214"+ - "\5\127\1\227\2\127\1\215\5\127\1\230\1\212\1\127"+ - "\1\215\1\214\1\212\2\127\1\211\67\127\1\231\4\127"+ - "\62\130\1\131\1\130\1\0\65\130\1\131\5\130\62\133"+ - "\1\134\1\0\66\133\1\134\5\133\1\136\1\0\66\136"+ - "\4\232\1\233\63\232\6\0\1\234\21\0\1\141\3\0"+ - "\1\142\10\0\1\143\6\0\1\234\1\0\1\143\1\142"+ - "\1\234\15\0\1\235\10\0\2\235\13\0\1\142\10\0"+ - "\1\142\6\0\1\235\1\0\2\142\1\235\15\0\1\236"+ - "\10\0\2\237\33\0\1\236\3\0\1\236\15\0\1\235"+ - "\10\0\2\240\13\0\1\142\10\0\1\142\6\0\1\235"+ - "\1\0\2\142\1\235\50\0\1\241\34\0\1\147\21\0"+ - "\1\141\3\0\1\142\10\0\1\143\6\0\1\147\1\0"+ - "\1\143\1\142\1\147\15\0\1\147\21\0\1\141\3\0"+ - "\1\142\10\0\1\143\5\0\1\156\1\147\1\0\1\143"+ - "\1\142\1\147\14\0\2\16\17\0\1\16\2\0\2\16"+ - "\1\242\26\16\3\0\2\16\6\0\2\16\17\0\1\16"+ - "\2\0\6\16\1\243\22\16\3\0\2\16\6\0\2\16"+ - "\17\0\1\16\2\0\6\16\1\244\22\16\3\0\2\16"+ - "\6\0\2\16\17\0\1\16\2\0\10\16\1\245\20\16"+ - "\3\0\2\16\55\0\1\246\3\0\1\246\15\0\1\247"+ - "\25\0\3\247\3\0\1\247\2\0\2\247\5\0\5\247"+ - "\72\0\1\250\11\0\2\36\17\0\1\36\2\0\6\36"+ - "\1\251\22\36\3\0\2\36\64\0\1\252\12\0\1\253"+ - "\21\0\1\164\3\0\1\165\10\0\1\166\6\0\1\253"+ - "\1\0\1\166\1\165\1\253\15\0\1\254\10\0\2\254"+ - "\13\0\1\165\10\0\1\165\6\0\1\254\1\0\2\165"+ - "\1\254\15\0\1\255\10\0\2\256\33\0\1\255\3\0"+ - "\1\255\15\0\1\254\10\0\2\257\13\0\1\165\10\0"+ - "\1\165\6\0\1\254\1\0\2\165\1\254\50\0\1\260"+ - "\34\0\1\171\21\0\1\164\3\0\1\165\10\0\1\166"+ - "\6\0\1\171\1\0\1\166\1\165\1\171\15\0\1\171"+ - "\21\0\1\164\3\0\1\165\10\0\1\166\5\0\1\177"+ - "\1\171\1\0\1\166\1\165\1\171\14\0\2\44\17\0"+ - "\1\44\2\0\2\44\1\261\26\44\3\0\2\44\6\0"+ - "\2\44\17\0\1\44\2\0\6\44\1\262\22\44\3\0"+ - "\2\44\6\0\2\44\17\0\1\44\2\0\6\44\1\263"+ - "\22\44\3\0\2\44\6\0\2\44\17\0\1\44\2\0"+ - "\10\44\1\264\20\44\3\0\2\44\7\0\1\265\25\0"+ - "\3\265\3\0\1\265\2\0\2\265\5\0\5\265\72\0"+ - "\1\266\4\0\1\61\2\0\3\61\1\267\7\61\1\0"+ - "\35\61\1\267\3\61\1\267\1\61\3\0\3\61\63\0"+ - "\1\270\25\0\1\203\51\0\1\100\2\0\1\271\10\0"+ - "\1\100\1\0\1\203\6\0\1\141\3\100\1\205\10\100"+ - "\1\206\6\100\1\271\1\100\1\206\1\205\1\271\1\100"+ - "\3\0\2\100\4\0\1\100\2\0\1\100\10\0\1\272"+ - "\1\237\1\203\7\0\31\100\3\0\2\100\4\0\1\100"+ - "\2\0\1\273\10\0\1\274\1\240\1\203\7\0\3\100"+ - "\1\205\10\100\1\205\6\100\1\273\1\100\2\205\1\273"+ - "\1\100\3\0\2\100\4\0\1\100\1\0\1\101\1\104"+ - "\10\0\1\100\1\0\1\203\4\0\1\101\2\0\6\104"+ - "\1\275\22\104\3\0\2\104\1\0\63\127\1\276\12\127"+ - "\1\277\21\127\1\213\3\127\1\214\10\127\1\215\6\127"+ - "\1\277\1\127\1\215\1\214\1\277\2\127\1\211\12\127"+ - "\1\300\10\127\2\300\13\127\1\214\10\127\1\214\6\127"+ - "\1\300\1\127\2\214\1\300\2\127\1\211\12\127\1\301"+ - "\10\127\2\302\33\127\1\301\3\127\1\301\2\127\1\211"+ - "\12\127\1\300\10\127\2\303\13\127\1\214\10\127\1\214"+ - "\6\127\1\300\1\127\2\214\1\300\2\127\1\211\45\127"+ - "\1\304\21\127\1\211\12\127\1\221\21\127\1\213\3\127"+ - "\1\214\10\127\1\215\6\127\1\221\1\127\1\215\1\214"+ - "\1\221\2\127\1\211\12\127\1\221\21\127\1\213\3\127"+ - "\1\214\10\127\1\215\5\127\1\230\1\221\1\127\1\215"+ - "\1\214\1\221\2\127\1\211\11\127\2\110\17\127\1\110"+ - "\2\127\2\110\1\305\26\110\1\127\1\211\1\127\2\110"+ - "\6\127\2\110\17\127\1\110\2\127\6\110\1\306\22\110"+ - "\1\127\1\211\1\127\2\110\6\127\2\110\17\127\1\110"+ - "\2\127\6\110\1\307\22\110\1\127\1\211\1\127\2\110"+ - "\6\127\2\110\17\127\1\110\2\127\10\110\1\310\20\110"+ - "\1\127\1\211\1\127\2\110\55\127\1\311\3\127\1\311"+ - "\2\127\1\211\12\127\1\312\25\127\3\312\3\127\1\312"+ - "\2\127\2\312\5\127\5\312\2\127\1\211\67\127\1\313"+ - "\4\127\4\232\1\314\66\232\1\315\1\314\63\232\6\0"+ - "\1\316\21\0\1\141\3\0\1\142\10\0\1\143\6\0"+ - "\1\316\1\0\1\143\1\142\1\316\15\0\1\235\25\0"+ - "\1\142\10\0\1\142\6\0\1\235\1\0\2\142\1\235"+ - "\15\0\1\236\45\0\1\236\3\0\1\236\15\0\1\236"+ - "\11\0\1\317\33\0\1\236\3\0\1\236\15\0\1\235"+ - "\11\0\1\317\13\0\1\142\10\0\1\142\6\0\1\235"+ - "\1\0\2\142\1\235\44\0\1\320\37\0\2\16\17\0"+ - "\1\16\2\0\3\16\1\321\25\16\3\0\2\16\6\0"+ - "\2\16\17\0\1\16\2\0\7\16\1\242\21\16\3\0"+ - "\2\16\6\0\2\16\17\0\1\16\2\0\6\16\1\322"+ - "\22\16\3\0\2\16\6\0\2\36\17\0\1\36\2\0"+ - "\6\36\1\323\22\36\3\0\2\36\7\0\1\324\21\0"+ - "\1\164\3\0\1\165\10\0\1\166\6\0\1\324\1\0"+ - "\1\166\1\165\1\324\15\0\1\254\25\0\1\165\10\0"+ - "\1\165\6\0\1\254\1\0\2\165\1\254\15\0\1\255"+ - "\45\0\1\255\3\0\1\255\15\0\1\255\11\0\1\325"+ - "\33\0\1\255\3\0\1\255\15\0\1\254\11\0\1\325"+ - "\13\0\1\165\10\0\1\165\6\0\1\254\1\0\2\165"+ - "\1\254\44\0\1\326\37\0\2\44\17\0\1\44\2\0"+ - "\3\44\1\327\25\44\3\0\2\44\6\0\2\44\17\0"+ - "\1\44\2\0\7\44\1\261\21\44\3\0\2\44\6\0"+ - "\2\44\17\0\1\44\2\0\6\44\1\330\22\44\3\0"+ - "\2\44\1\0\1\61\2\0\3\61\1\331\7\61\1\0"+ - "\35\61\1\331\3\61\1\331\1\61\3\0\3\61\3\0"+ - "\1\100\2\0\1\332\10\0\1\100\1\0\1\203\6\0"+ - "\1\141\3\100\1\205\10\100\1\206\6\100\1\332\1\100"+ - "\1\206\1\205\1\332\1\100\3\0\2\100\4\0\1\100"+ - "\2\0\1\100\10\0\1\100\1\317\1\203\7\0\31\100"+ - "\3\0\2\100\4\0\1\100\2\0\1\273\10\0\1\100"+ - "\1\0\1\203\7\0\3\100\1\205\10\100\1\205\6\100"+ - "\1\273\1\100\2\205\1\273\1\100\3\0\2\100\4\0"+ - "\1\100\2\0\1\273\10\0\1\100\1\317\1\203\7\0"+ - "\3\100\1\205\10\100\1\205\6\100\1\273\1\100\2\205"+ - "\1\273\1\100\3\0\2\100\4\0\1\100\1\0\1\101"+ - "\1\104\10\0\1\100\1\0\1\203\4\0\1\101\2\0"+ - "\6\104\1\333\22\104\3\0\2\104\1\0\63\127\1\334"+ - "\12\127\1\335\21\127\1\213\3\127\1\214\10\127\1\215"+ - "\6\127\1\335\1\127\1\215\1\214\1\335\2\127\1\211"+ - "\12\127\1\300\25\127\1\214\10\127\1\214\6\127\1\300"+ - "\1\127\2\214\1\300\2\127\1\211\12\127\1\301\45\127"+ - "\1\301\3\127\1\301\2\127\1\211\12\127\1\301\11\127"+ - "\1\336\33\127\1\301\3\127\1\301\2\127\1\211\12\127"+ - "\1\300\11\127\1\336\13\127\1\214\10\127\1\214\6\127"+ - "\1\300\1\127\2\214\1\300\2\127\1\211\41\127\1\337"+ - "\25\127\1\211\11\127\2\110\17\127\1\110\2\127\3\110"+ - "\1\340\25\110\1\127\1\211\1\127\2\110\6\127\2\110"+ - "\17\127\1\110\2\127\7\110\1\305\21\110\1\127\1\211"+ - "\1\127\2\110\6\127\2\110\17\127\1\110\2\127\6\110"+ - "\1\341\22\110\1\127\1\211\1\127\2\110\1\127\63\0"+ - "\1\342\4\0\3\232\1\343\1\314\63\232\6\0\1\147"+ - "\11\0\1\344\7\0\1\141\3\0\1\142\10\0\1\143"+ - "\6\0\1\147\1\0\1\143\1\142\1\147\4\0\1\345"+ - "\7\0\2\16\17\0\1\16\1\0\1\346\31\16\3\0"+ - "\2\16\6\0\2\36\17\0\1\36\1\0\1\346\31\36"+ - "\3\0\2\36\7\0\1\171\11\0\1\347\7\0\1\164"+ - "\3\0\1\165\10\0\1\166\6\0\1\171\1\0\1\166"+ - "\1\165\1\171\4\0\1\350\7\0\2\44\17\0\1\44"+ - "\1\0\1\351\31\44\3\0\2\44\1\0\1\61\2\0"+ - "\13\61\1\0\1\61\1\352\41\61\3\0\1\353\2\61"+ - "\3\0\1\100\2\0\1\354\10\0\1\100\1\344\1\203"+ - "\6\0\1\141\3\100\1\205\10\100\1\206\6\100\1\354"+ - "\1\100\1\206\1\205\1\354\1\100\3\0\1\355\1\100"+ - "\4\0\1\100\1\0\1\101\1\104\10\0\1\100\1\0"+ - "\1\203\4\0\1\101\1\0\1\346\31\104\3\0\2\104"+ - "\1\0\6\127\1\221\11\127\1\356\7\127\1\213\3\127"+ - "\1\214\10\127\1\215\6\127\1\221\1\127\1\215\1\214"+ - "\1\221\2\127\1\211\1\127\1\357\7\127\2\110\17\127"+ - "\1\110\1\127\1\360\31\110\1\127\1\211\1\127\2\110"+ - "\1\127\63\0\1\361\12\0\1\362\45\0\1\362\3\0"+ - "\1\362\15\0\1\363\45\0\1\363\3\0\1\363\40\0"+ - "\1\364\3\0\1\365\1\0\1\366\1\367\1\370\1\371"+ - "\1\0\1\372\1\373\1\374\27\0\1\375\45\0\1\375"+ - "\3\0\1\375\15\0\1\376\45\0\1\376\3\0\1\376"+ - "\40\0\1\377\3\0\1\u0100\1\0\1\u0101\1\u0102\1\u0103"+ - "\1\u0104\1\0\1\u0105\1\u0106\1\u0107\21\0\1\61\2\0"+ - "\3\61\1\u0108\7\61\1\0\35\61\1\u0108\3\61\1\u0108"+ - "\1\61\3\0\4\61\2\0\3\61\1\u0109\7\61\1\0"+ - "\35\61\1\u0109\3\61\1\u0109\1\61\3\0\3\61\3\0"+ - "\1\100\2\0\1\354\10\0\1\100\1\0\1\203\6\0"+ - "\1\141\3\100\1\205\10\100\1\206\6\100\1\354\1\100"+ - "\1\206\1\205\1\354\1\100\3\0\2\100\4\0\1\100"+ - "\2\0\1\u010a\10\0\1\100\1\0\1\203\7\0\23\100"+ - "\1\u010a\3\100\1\u010a\1\100\3\0\2\100\1\0\6\127"+ - "\1\u010b\45\127\1\u010b\3\127\1\u010b\2\127\1\211\12\127"+ - "\1\u010c\45\127\1\u010c\3\127\1\u010c\2\127\1\211\35\127"+ - "\1\u010d\3\127\1\u010e\1\127\1\u010f\1\u0110\1\u0111\1\u0112"+ - "\1\127\1\u0113\1\u0114\1\u0115\14\127\1\211\4\127\6\0"+ - "\1\u0116\45\0\1\u0116\3\0\1\u0116\15\0\1\u0117\45\0"+ - "\1\u0117\3\0\1\u0117\53\0\1\u0118\62\0\1\u0119\74\0"+ - "\1\u011a\54\0\1\u011b\2\0\1\u011c\15\0\1\u011d\50\0"+ - "\1\u011e\73\0\1\u011f\3\0\1\u0120\65\0\1\u0121\62\0"+ - "\1\u0122\72\0\1\u011f\36\0\1\u0123\45\0\1\u0123\3\0"+ - "\1\u0123\15\0\1\u0124\45\0\1\u0124\3\0\1\u0124\53\0"+ - "\1\u0125\62\0\1\u0126\74\0\1\u0127\54\0\1\u0128\2\0"+ - "\1\u0129\15\0\1\u012a\50\0\1\u012b\73\0\1\u012c\3\0"+ - "\1\u012d\65\0\1\u012e\62\0\1\u012f\72\0\1\u012c\30\0"+ - "\1\61\2\0\3\61\1\u0130\7\61\1\0\35\61\1\u0130"+ - "\3\61\1\u0130\1\61\3\0\4\61\2\0\3\61\1\u0131"+ - "\7\61\1\0\35\61\1\u0131\3\61\1\u0131\1\61\3\0"+ - "\3\61\3\0\1\100\2\0\1\u0132\10\0\1\100\1\0"+ - "\1\203\7\0\23\100\1\u0132\3\100\1\u0132\1\100\3\0"+ - "\2\100\1\0\6\127\1\u0133\45\127\1\u0133\3\127\1\u0133"+ - "\2\127\1\211\12\127\1\u0134\45\127\1\u0134\3\127\1\u0134"+ - "\2\127\1\211\50\127\1\u0135\16\127\1\211\43\127\1\u0136"+ - "\23\127\1\211\50\127\1\u0137\16\127\1\211\35\127\1\u0138"+ - "\2\127\1\u0139\15\127\1\u013a\10\127\1\211\37\127\1\u013b"+ - "\27\127\1\211\43\127\1\u013c\3\127\1\u013d\17\127\1\211"+ - "\45\127\1\u013e\21\127\1\211\40\127\1\u013f\26\127\1\211"+ - "\43\127\1\u013c\23\127\1\211\4\127\20\0\1\u0140\44\0"+ - "\1\345\20\0\1\u0141\120\0\1\u0142\63\0\1\u0143\64\0"+ - "\1\u0121\61\0\1\u0144\110\0\1\u0145\63\0\1\u0146\57\0"+ - "\1\u0147\73\0\1\u0148\67\0\1\u0147\55\0\1\u0149\104\0"+ - "\1\u014a\41\0\1\u014b\44\0\1\350\20\0\1\u014c\120\0"+ - "\1\u014d\63\0\1\u014e\64\0\1\u012e\61\0\1\u014f\110\0"+ - "\1\u0150\63\0\1\u0151\57\0\1\u0152\73\0\1\u0153\67\0"+ - "\1\u0152\55\0\1\u0154\104\0\1\u0155\21\0\1\61\2\0"+ - "\13\61\1\0\1\61\1\u0156\41\61\3\0\1\353\3\61"+ - "\2\0\13\61\1\u0141\43\61\3\0\3\61\3\0\1\100"+ - "\2\0\1\100\7\0\1\u0141\1\100\1\0\1\203\7\0"+ - "\31\100\3\0\2\100\1\0\20\127\1\u0157\42\127\1\211"+ - "\1\127\1\357\20\127\1\u0158\44\127\1\211\53\127\1\u0159"+ - "\13\127\1\211\47\127\1\u015a\17\127\1\211\44\127\1\u013e"+ - "\22\127\1\211\36\127\1\u015b\30\127\1\211\57\127\1\u015c"+ - "\7\127\1\211\53\127\1\u015d\13\127\1\211\43\127\1\u015e"+ - "\23\127\1\211\47\127\1\u015f\17\127\1\211\47\127\1\u015e"+ - "\17\127\1\211\35\127\1\u0160\31\127\1\211\52\127\1\u0161"+ - "\14\127\1\211\4\127\6\0\1\u0162\45\0\1\u0162\3\0"+ - "\1\u0162\15\0\1\u0163\45\0\1\u0163\3\0\1\u0163\43\0"+ - "\1\u0164\71\0\1\u0121\64\0\1\u0165\10\0\1\u0166\73\0"+ - "\1\u0149\61\0\1\u0120\64\0\1\u0149\72\0\1\u0149\71\0"+ - "\1\u0167\31\0\1\u0168\45\0\1\u0168\3\0\1\u0168\15\0"+ - "\1\u0169\45\0\1\u0169\3\0\1\u0169\43\0\1\u016a\71\0"+ - "\1\u012e\64\0\1\u016b\10\0\1\u016c\73\0\1\u0154\61\0"+ - "\1\u012d\64\0\1\u0154\72\0\1\u0154\71\0\1\u016d\23\0"+ - "\1\61\2\0\3\61\1\u016e\7\61\1\0\35\61\1\u016e"+ - "\3\61\1\u016e\1\61\3\0\3\61\6\127\1\u016f\45\127"+ - "\1\u016f\3\127\1\u016f\2\127\1\211\12\127\1\u0170\45\127"+ - "\1\u0170\3\127\1\u0170\2\127\1\211\40\127\1\u0171\26\127"+ - "\1\211\42\127\1\u013e\24\127\1\211\37\127\1\u0172\10\127"+ - "\1\u0173\16\127\1\211\54\127\1\u0160\12\127\1\211\46\127"+ - "\1\u013d\20\127\1\211\43\127\1\u0160\23\127\1\211\46\127"+ - "\1\u0160\20\127\1\211\50\127\1\u0174\16\127\1\211\4\127"+ - "\6\0\1\u0175\45\0\1\u0175\3\0\1\u0175\15\0\1\u0176"+ - "\45\0\1\u0176\3\0\1\u0176\47\0\1\u0177\75\0\1\u0121"+ - "\62\0\1\u0178\75\0\1\u0179\26\0\1\u017a\45\0\1\u017a"+ - "\3\0\1\u017a\15\0\1\u017b\45\0\1\u017b\3\0\1\u017b"+ - "\47\0\1\u017c\75\0\1\u012e\62\0\1\u017d\75\0\1\u017e"+ - "\20\0\1\61\2\0\3\61\1\u017f\7\61\1\0\35\61"+ - "\1\u017f\3\61\1\u017f\1\61\3\0\3\61\6\127\1\u0180"+ - "\45\127\1\u0180\3\127\1\u0180\2\127\1\211\12\127\1\u0181"+ - "\45\127\1\u0181\3\127\1\u0181\2\127\1\211\44\127\1\u0182"+ - "\22\127\1\211\52\127\1\u013e\14\127\1\211\45\127\1\u0183"+ - "\21\127\1\211\53\127\1\u0184\13\127\1\211\4\127\6\0"+ - "\1\363\45\0\1\363\3\0\1\363\4\0\1\345\20\0"+ - "\1\u0185\2\u0186\45\0\1\u0187\32\0\1\u0188\107\0\1\u0149"+ - "\54\0\1\u0147\37\0\1\376\45\0\1\376\3\0\1\376"+ - "\4\0\1\350\20\0\1\u0189\2\u018a\45\0\1\u018b\32\0"+ - "\1\u018c\107\0\1\u0154\54\0\1\u0152\31\0\1\61\2\0"+ - "\3\61\1\u0109\7\61\1\0\35\61\1\u0109\3\61\1\u0109"+ - "\1\61\3\0\1\353\2\61\6\127\1\u010c\45\127\1\u010c"+ - "\3\127\1\u010c\2\127\1\211\1\127\1\357\20\127\1\u018d"+ - "\2\u018e\42\127\1\211\2\127\1\u018f\32\127\1\u0190\31\127"+ - "\1\211\55\127\1\u0160\11\127\1\211\42\127\1\u015e\24\127"+ - "\1\211\4\127\6\0\1\u0191\45\0\1\u0191\3\0\1\u0191"+ - "\15\0\1\u0192\45\0\1\u0192\3\0\1\u0192\45\0\1\u0193"+ - "\37\0\1\u0194\45\0\1\u0194\3\0\1\u0194\15\0\1\u0195"+ - "\45\0\1\u0195\3\0\1\u0195\45\0\1\u0196\31\0\6\127"+ - "\1\u0197\45\127\1\u0197\3\127\1\u0197\2\127\1\211\12\127"+ - "\1\u0198\45\127\1\u0198\3\127\1\u0198\2\127\1\211\42\127"+ - "\1\u0199\24\127\1\211\4\127\6\0\1\u019a\45\0\1\u019a"+ - "\3\0\1\u019a\15\0\1\u019b\45\0\1\u019b\3\0\1\u019b"+ - "\56\0\1\u0145\26\0\1\u019c\45\0\1\u019c\3\0\1\u019c"+ - "\15\0\1\u019d\45\0\1\u019d\3\0\1\u019d\56\0\1\u0150"+ - "\20\0\6\127\1\u019e\45\127\1\u019e\3\127\1\u019e\2\127"+ - "\1\211\12\127\1\u019f\45\127\1\u019f\3\127\1\u019f\2\127"+ - "\1\211\53\127\1\u015c\13\127\1\211\4\127\17\0\2\u0186"+ - "\7\0\1\u01a0\35\0\1\u0187\17\0\1\u01a1\70\0\2\u018a"+ - "\7\0\1\u01a2\35\0\1\u018b\17\0\1\u01a3\51\0\17\127"+ - "\2\u018e\7\127\1\u01a4\32\127\1\211\2\127\1\u018f\17\127"+ - "\1\u01a5\44\127\1\211\4\127\6\0\1\u01a6\45\0\1\u01a6"+ - "\3\0\1\u01a6\15\0\1\u01a7\45\0\1\u01a7\3\0\1\u01a7"+ - "\15\0\1\u01a8\45\0\1\u01a8\3\0\1\u01a8\15\0\1\u01a9"+ - "\45\0\1\u01a9\3\0\1\u01a9\7\0\6\127\1\u01aa\45\127"+ - "\1\u01aa\3\127\1\u01aa\2\127\1\211\12\127\1\u01ab\45\127"+ - "\1\u01ab\3\127\1\u01ab\2\127\1\211\4\127\6\0\1\u01a6"+ - "\10\0\2\u0186\33\0\1\u01a6\3\0\1\u01a6\5\0\1\u0187"+ - "\7\0\1\u0187\45\0\1\u0187\3\0\1\u0187\15\0\1\u01a8"+ - "\10\0\2\u018a\33\0\1\u01a8\3\0\1\u01a8\5\0\1\u018b"+ - "\7\0\1\u018b\45\0\1\u018b\3\0\1\u018b\7\0\6\127"+ - "\1\u01aa\10\127\2\u018e\33\127\1\u01aa\3\127\1\u01aa\2\127"+ - "\1\211\2\127\1\u018f\7\127\1\u018f\45\127\1\u018f\3\127"+ - "\1\u018f\2\127\1\211\4\127"; - - private static int [] zzUnpackTrans() { - int [] result = new int[20552]; + "\1\13\2\14\1\0\1\14\1\13\1\15\1\16\1\13"+ + "\1\17\1\20\2\13\1\21\1\22\1\23\1\13\1\24"+ + "\1\25\2\26\1\27\3\13\6\16\1\30\2\13\6\16"+ + "\1\31\4\16\1\32\4\16\1\33\3\16\1\34\3\13"+ + "\2\14\1\0\1\14\1\13\1\15\1\16\1\13\1\17"+ + "\1\20\2\13\1\21\1\22\1\23\1\13\1\24\1\25"+ + "\2\26\1\27\3\13\6\16\1\30\1\13\1\35\6\16"+ + "\1\31\4\16\1\32\4\16\1\33\3\16\1\34\3\13"+ + "\2\14\1\0\1\14\1\13\1\36\1\37\1\13\1\40"+ + "\1\20\2\13\1\21\1\22\1\23\1\13\1\24\1\25"+ + "\2\26\1\41\3\13\6\37\1\30\2\13\13\37\1\42"+ + "\10\37\1\34\1\13\1\43\1\13\2\14\1\0\1\14"+ + "\1\13\1\44\1\45\1\13\1\46\1\47\2\13\1\50"+ + "\1\22\1\51\2\13\1\52\2\53\1\27\3\13\6\45"+ + "\1\54\2\13\6\45\1\55\4\45\1\56\4\45\1\57"+ + "\3\45\1\60\2\13\1\61\2\14\1\61\1\62\1\61"+ + "\1\63\2\61\1\64\10\61\3\65\1\27\12\61\1\13"+ + "\30\61\1\13\2\14\1\0\1\14\1\66\1\15\1\67"+ + "\1\70\1\17\1\20\1\71\1\66\1\72\1\22\1\73"+ + "\1\74\1\75\1\25\2\26\1\27\1\76\1\66\1\77"+ + "\6\16\1\30\2\13\6\16\1\31\4\16\1\32\4\16"+ + "\1\33\3\16\1\34\1\100\2\13\2\14\1\0\1\14"+ + "\1\13\1\15\1\101\1\13\1\17\1\20\2\13\1\102"+ + "\1\22\1\23\1\13\1\102\3\103\1\27\3\13\6\104"+ + "\1\30\2\13\1\101\12\104\1\105\10\104\1\34\1\13"+ + "\1\106\1\107\2\110\1\111\1\110\1\107\1\112\1\113"+ + "\1\107\1\114\1\115\2\107\1\116\1\117\1\120\2\107"+ + "\1\121\2\122\1\123\3\107\6\113\1\124\2\107\6\113"+ + "\1\125\4\113\1\126\4\113\1\127\3\113\1\130\2\107"+ + "\6\131\1\132\31\131\1\133\30\131\11\134\1\135\26\134"+ + "\1\136\30\134\72\0\2\14\1\0\1\14\73\0\1\16"+ + "\12\0\3\16\4\0\6\16\3\0\24\16\14\0\1\137"+ + "\131\0\1\140\40\0\1\141\2\142\25\0\1\140\32\0"+ + "\1\143\4\0\1\144\67\0\1\145\1\0\3\146\5\0"+ + "\1\147\1\150\10\0\1\151\1\0\1\147\1\150\14\0"+ + "\1\152\24\0\1\145\1\0\3\146\5\0\1\147\1\150"+ + "\12\0\1\147\1\150\46\0\1\153\52\0\1\16\12\0"+ + "\3\16\4\0\6\16\3\0\1\16\1\154\22\16\12\0"+ + "\1\16\12\0\3\16\4\0\6\16\3\0\1\16\1\155"+ + "\17\16\1\156\2\16\12\0\1\16\12\0\3\16\4\0"+ + "\6\16\3\0\16\16\1\157\5\16\71\0\1\160\11\0"+ + "\1\37\12\0\3\37\4\0\6\37\3\0\24\37\14\0"+ + "\1\161\104\0\1\162\52\0\1\37\12\0\3\37\4\0"+ + "\6\37\3\0\21\37\1\163\2\37\12\0\1\45\12\0"+ + "\3\45\4\0\6\45\3\0\24\45\14\0\1\164\131\0"+ + "\1\165\40\0\1\166\2\167\25\0\1\165\36\0\1\170"+ + "\1\0\3\171\5\0\1\172\1\173\10\0\1\151\1\0"+ + "\1\172\1\173\14\0\1\174\24\0\1\170\1\0\3\171"+ + "\5\0\1\172\1\173\12\0\1\172\1\173\30\0\1\45"+ + "\12\0\3\45\4\0\6\45\3\0\1\45\1\175\22\45"+ + "\12\0\1\45\12\0\3\45\4\0\6\45\3\0\1\45"+ + "\1\176\17\45\1\177\2\45\12\0\1\45\12\0\3\45"+ + "\4\0\6\45\3\0\16\45\1\200\5\45\71\0\1\201"+ + "\2\0\1\61\2\0\3\61\1\0\2\61\1\0\13\61"+ + "\1\0\12\61\1\0\31\61\2\14\1\61\1\62\1\61"+ + "\1\0\2\61\1\0\13\61\1\0\12\61\1\0\30\61"+ + "\11\0\1\202\57\0\1\61\2\0\3\61\1\0\2\61"+ + "\1\0\10\61\3\203\1\0\12\61\1\0\30\61\10\0"+ + "\1\66\75\0\1\66\34\0\1\140\35\0\1\66\2\0"+ + "\1\141\2\142\25\0\1\140\36\0\1\66\76\0\1\66"+ + "\72\0\1\66\127\0\1\66\10\0\1\101\12\0\3\101"+ + "\4\0\6\101\3\0\24\101\20\0\1\102\3\0\4\102"+ + "\2\0\1\204\1\0\6\102\4\0\23\102\20\0\1\102"+ + "\2\0\1\145\1\102\3\205\2\0\1\204\1\0\1\102"+ + "\1\206\1\207\3\102\4\0\3\102\1\206\1\207\16\102"+ + "\12\0\1\101\5\0\1\102\3\0\1\102\3\104\2\0"+ + "\1\204\1\0\6\104\3\0\1\101\23\104\12\0\1\101"+ + "\5\0\1\102\3\0\1\102\3\104\2\0\1\204\1\0"+ + "\6\104\3\0\1\101\20\104\1\210\2\104\73\0\1\211"+ + "\11\111\1\212\60\111\2\110\1\111\1\110\4\111\1\212"+ + "\66\111\1\113\1\111\1\212\10\111\3\113\4\111\6\113"+ + "\3\111\24\113\14\111\1\213\70\111\1\212\40\111\1\214"+ + "\27\111\1\212\10\111\1\215\2\216\25\111\1\214\27\111"+ + "\1\212\6\111\1\217\1\111\3\220\5\111\1\221\1\222"+ + "\10\111\1\223\1\111\1\221\1\222\14\111\1\224\15\111"+ + "\1\212\6\111\1\217\1\111\3\220\5\111\1\221\1\222"+ + "\12\111\1\221\1\222\32\111\1\212\13\111\1\225\52\111"+ + "\1\113\1\111\1\212\10\111\3\113\4\111\6\113\3\111"+ + "\1\113\1\226\22\113\12\111\1\113\1\111\1\212\10\111"+ + "\3\113\4\111\6\113\3\111\1\113\1\227\17\113\1\230"+ + "\2\113\12\111\1\113\1\111\1\212\10\111\3\113\4\111"+ + "\6\113\3\111\16\113\1\231\5\113\14\111\1\212\54\111"+ + "\1\232\2\111\6\131\1\0\31\131\1\133\70\131\1\133"+ + "\30\131\11\134\1\0\26\134\1\136\70\134\1\136\30\134"+ + "\11\0\1\233\134\0\1\234\33\0\1\145\1\0\3\142"+ + "\5\0\1\147\1\150\12\0\1\147\1\150\14\0\1\152"+ + "\24\0\1\145\1\0\3\142\5\0\1\147\1\150\12\0"+ + "\1\147\1\150\21\0\14\235\1\236\54\235\2\144\1\0"+ + "\66\144\15\0\1\237\1\0\1\237\2\0\3\237\5\0"+ + "\2\150\12\0\2\150\41\0\1\145\1\0\3\240\5\0"+ + "\1\147\1\150\12\0\1\147\1\150\36\0\1\241\1\0"+ + "\1\241\2\0\3\237\5\0\2\150\12\0\2\150\36\0"+ + "\1\242\1\0\1\242\2\0\3\243\66\0\2\244\67\0"+ + "\3\245\4\0\3\245\7\0\6\245\27\0\1\16\12\0"+ + "\3\16\4\0\6\16\3\0\11\16\1\246\12\16\12\0"+ + "\1\16\12\0\3\16\4\0\6\16\3\0\13\16\1\247"+ + "\10\16\12\0\1\16\12\0\3\16\4\0\6\16\3\0"+ + "\11\16\1\250\12\16\12\0\1\16\12\0\3\16\4\0"+ + "\6\16\3\0\21\16\1\251\2\16\14\0\1\252\66\0"+ + "\1\37\12\0\3\37\4\0\6\37\3\0\11\37\1\253"+ + "\12\37\14\0\1\254\134\0\1\255\33\0\1\170\1\0"+ + "\3\167\5\0\1\172\1\173\12\0\1\172\1\173\14\0"+ + "\1\174\24\0\1\170\1\0\3\167\5\0\1\172\1\173"+ + "\12\0\1\172\1\173\36\0\1\256\1\0\1\256\2\0"+ + "\3\256\5\0\2\173\12\0\2\173\41\0\1\170\1\0"+ + "\3\257\5\0\1\172\1\173\12\0\1\172\1\173\36\0"+ + "\1\260\1\0\1\260\2\0\3\256\5\0\2\173\12\0"+ + "\2\173\36\0\1\261\1\0\1\261\2\0\3\262\66\0"+ + "\3\263\4\0\3\263\7\0\6\263\27\0\1\45\12\0"+ + "\3\45\4\0\6\45\3\0\11\45\1\264\12\45\12\0"+ + "\1\45\12\0\3\45\4\0\6\45\3\0\13\45\1\265"+ + "\10\45\12\0\1\45\12\0\3\45\4\0\6\45\3\0"+ + "\11\45\1\266\12\45\12\0\1\45\12\0\3\45\4\0"+ + "\6\45\3\0\21\45\1\267\2\45\14\0\1\270\57\0"+ + "\1\61\2\0\3\61\1\0\2\61\1\0\10\61\3\271"+ + "\1\0\12\61\1\0\30\61\27\0\1\204\56\0\1\102"+ + "\2\0\1\145\1\102\3\272\2\0\1\204\1\0\1\102"+ + "\1\206\1\207\3\102\4\0\3\102\1\206\1\207\16\102"+ + "\20\0\1\273\1\0\1\241\1\0\1\102\3\274\2\0"+ + "\1\204\1\0\1\102\2\207\3\102\4\0\3\102\2\207"+ + "\16\102\20\0\1\275\1\0\1\242\1\0\4\102\2\0"+ + "\1\204\1\0\6\102\4\0\23\102\12\0\1\101\5\0"+ + "\1\102\3\0\1\102\3\104\2\0\1\204\1\0\6\104"+ + "\3\0\1\101\10\104\1\276\12\104\3\0\11\111\1\277"+ + "\70\111\1\300\70\111\1\212\43\111\1\301\24\111\1\212"+ + "\6\111\1\217\1\111\3\216\5\111\1\221\1\222\12\111"+ + "\1\221\1\222\14\111\1\224\15\111\1\212\6\111\1\217"+ + "\1\111\3\216\5\111\1\221\1\222\12\111\1\221\1\222"+ + "\32\111\1\212\3\111\1\302\1\111\1\302\2\111\3\302"+ + "\5\111\2\222\12\111\2\222\32\111\1\212\6\111\1\217"+ + "\1\111\3\303\5\111\1\221\1\222\12\111\1\221\1\222"+ + "\32\111\1\212\3\111\1\304\1\111\1\304\2\111\3\302"+ + "\5\111\2\222\12\111\2\222\32\111\1\212\3\111\1\305"+ + "\1\111\1\305\2\111\3\306\55\111\1\212\10\111\2\307"+ + "\56\111\1\212\10\111\3\310\4\111\3\310\7\111\6\310"+ + "\27\111\1\113\1\111\1\212\10\111\3\113\4\111\6\113"+ + "\3\111\11\113\1\311\12\113\12\111\1\113\1\111\1\212"+ + "\10\111\3\113\4\111\6\113\3\111\13\113\1\312\10\113"+ + "\12\111\1\113\1\111\1\212\10\111\3\113\4\111\6\113"+ + "\3\111\11\113\1\313\12\113\12\111\1\113\1\111\1\212"+ + "\10\111\3\113\4\111\6\113\3\111\21\113\1\314\2\113"+ + "\3\111\50\0\1\315\20\0\14\235\1\316\70\235\1\316"+ + "\4\235\1\317\47\235\22\0\3\237\5\0\2\150\12\0"+ + "\2\150\41\0\1\145\1\0\3\320\5\0\1\147\1\150"+ + "\12\0\1\147\1\150\40\0\1\321\2\0\3\237\5\0"+ + "\2\150\12\0\2\150\40\0\1\321\2\0\3\243\66\0"+ + "\3\243\53\0\1\16\12\0\3\16\4\0\6\16\3\0"+ + "\17\16\1\251\4\16\12\0\1\16\12\0\3\16\4\0"+ + "\6\16\3\0\11\16\1\322\12\16\12\0\1\16\12\0"+ + "\3\16\4\0\6\16\3\0\5\16\1\323\16\16\12\0"+ + "\1\37\12\0\3\37\4\0\6\37\3\0\11\37\1\324"+ + "\12\37\53\0\1\325\42\0\3\256\5\0\2\173\12\0"+ + "\2\173\41\0\1\170\1\0\3\326\5\0\1\172\1\173"+ + "\12\0\1\172\1\173\40\0\1\327\2\0\3\256\5\0"+ + "\2\173\12\0\2\173\40\0\1\327\2\0\3\262\66\0"+ + "\3\262\53\0\1\45\12\0\3\45\4\0\6\45\3\0"+ + "\17\45\1\267\4\45\12\0\1\45\12\0\3\45\4\0"+ + "\6\45\3\0\11\45\1\330\12\45\12\0\1\45\12\0"+ + "\3\45\4\0\6\45\3\0\5\45\1\331\16\45\3\0"+ + "\1\61\2\0\3\61\1\0\2\61\1\0\10\61\3\332"+ + "\1\0\12\61\1\0\30\61\15\0\1\102\2\0\1\145"+ + "\1\102\3\333\2\0\1\204\1\0\1\102\1\206\1\207"+ + "\3\102\4\0\3\102\1\206\1\207\16\102\20\0\1\102"+ + "\1\0\1\321\1\0\1\102\3\274\2\0\1\204\1\0"+ + "\1\102\2\207\3\102\4\0\3\102\2\207\16\102\20\0"+ + "\1\102\3\0\1\102\3\274\2\0\1\204\1\0\1\102"+ + "\2\207\3\102\4\0\3\102\2\207\16\102\20\0\1\102"+ + "\1\0\1\321\1\0\4\102\2\0\1\204\1\0\6\102"+ + "\4\0\23\102\12\0\1\101\5\0\1\102\3\0\1\102"+ + "\3\104\2\0\1\204\1\0\6\104\3\0\1\101\10\104"+ + "\1\334\12\104\3\0\11\111\1\335\57\111\11\0\1\336"+ + "\57\0\11\111\1\212\36\111\1\337\31\111\1\212\10\111"+ + "\3\302\5\111\2\222\12\111\2\222\32\111\1\212\6\111"+ + "\1\217\1\111\3\340\5\111\1\221\1\222\12\111\1\221"+ + "\1\222\32\111\1\212\5\111\1\341\2\111\3\302\5\111"+ + "\2\222\12\111\2\222\32\111\1\212\5\111\1\341\2\111"+ + "\3\306\55\111\1\212\10\111\3\306\53\111\1\113\1\111"+ + "\1\212\10\111\3\113\4\111\6\113\3\111\17\113\1\314"+ + "\4\113\12\111\1\113\1\111\1\212\10\111\3\113\4\111"+ + "\6\113\3\111\11\113\1\342\12\113\12\111\1\113\1\111"+ + "\1\212\10\111\3\113\4\111\6\113\3\111\5\113\1\343"+ + "\16\113\3\111\14\235\1\316\4\235\1\344\47\235\17\0"+ + "\1\345\1\145\1\0\3\142\5\0\1\147\1\150\1\0"+ + "\1\346\10\0\1\147\1\150\30\0\1\16\10\0\1\347"+ + "\1\0\3\16\4\0\6\16\3\0\24\16\12\0\1\37"+ + "\10\0\1\347\1\0\3\37\4\0\6\37\3\0\24\37"+ + "\22\0\1\350\1\170\1\0\3\167\5\0\1\172\1\173"+ + "\1\0\1\351\10\0\1\172\1\173\30\0\1\45\10\0"+ + "\1\352\1\0\3\45\4\0\6\45\3\0\24\45\3\0"+ + "\1\61\2\0\3\61\1\0\2\61\1\0\5\61\1\353"+ + "\5\61\1\0\7\61\1\354\2\61\1\0\30\61\15\0"+ + "\1\102\1\0\1\345\1\145\1\102\3\355\2\0\1\204"+ + "\1\0\1\102\1\206\1\207\1\102\1\356\1\102\4\0"+ + "\3\102\1\206\1\207\16\102\12\0\1\101\5\0\1\102"+ + "\2\0\1\347\1\102\3\104\2\0\1\204\1\0\6\104"+ + "\3\0\1\101\23\104\14\0\1\357\57\0\11\111\1\212"+ + "\5\111\1\360\1\217\1\111\3\216\5\111\1\221\1\222"+ + "\1\111\1\361\10\111\1\221\1\222\30\111\1\113\1\111"+ + "\1\212\6\111\1\362\1\111\3\113\4\111\6\113\3\111"+ + "\24\113\3\111\22\0\3\363\66\0\3\364\110\0\1\365"+ + "\1\366\1\367\1\0\1\370\1\0\1\371\1\372\1\0"+ + "\1\373\3\0\1\374\1\375\30\0\3\376\66\0\3\377"+ + "\110\0\1\u0100\1\u0101\1\u0102\1\0\1\u0103\1\0\1\u0104"+ + "\1\u0105\1\0\1\u0106\3\0\1\u0107\1\u0108\6\0\1\61"+ + "\2\0\3\61\1\0\2\61\1\0\10\61\3\u0109\1\0"+ + "\12\61\1\0\31\61\2\0\3\61\1\0\2\61\1\0"+ + "\10\61\3\u010a\1\0\12\61\1\0\30\61\15\0\1\102"+ + "\2\0\1\145\1\102\3\355\2\0\1\204\1\0\1\102"+ + "\1\206\1\207\3\102\4\0\3\102\1\206\1\207\16\102"+ + "\20\0\1\102\3\0\1\102\3\u010b\2\0\1\204\1\0"+ + "\6\102\4\0\23\102\3\0\11\111\1\212\10\111\3\u010c"+ + "\55\111\1\212\10\111\3\u010d\55\111\1\212\32\111\1\u010e"+ + "\1\u010f\1\u0110\1\111\1\u0111\1\111\1\u0112\1\u0113\1\111"+ + "\1\u0114\3\111\1\u0115\1\u0116\6\111\22\0\3\u0117\66\0"+ + "\3\u0118\117\0\1\u0119\2\0\1\u011a\65\0\1\u0119\64\0"+ + "\1\u011b\74\0\1\u011c\72\0\1\u011d\65\0\1\u011e\101\0"+ + "\1\u011f\54\0\1\u0120\12\0\1\u0121\2\0\1\u0122\55\0"+ + "\1\u0123\40\0\3\u0124\66\0\3\u0125\117\0\1\u0126\2\0"+ + "\1\u0127\65\0\1\u0126\64\0\1\u0128\74\0\1\u0129\72\0"+ + "\1\u012a\65\0\1\u012b\101\0\1\u012c\54\0\1\u012d\12\0"+ + "\1\u012e\2\0\1\u012f\55\0\1\u0130\16\0\1\61\2\0"+ + "\3\61\1\0\2\61\1\0\10\61\3\u0131\1\0\12\61"+ + "\1\0\31\61\2\0\3\61\1\0\2\61\1\0\10\61"+ + "\3\u0132\1\0\12\61\1\0\30\61\15\0\1\102\3\0"+ + "\1\102\3\u0133\2\0\1\204\1\0\6\102\4\0\23\102"+ + "\3\0\11\111\1\212\10\111\3\u0134\55\111\1\212\10\111"+ + "\3\u0135\55\111\1\212\41\111\1\u0136\2\111\1\u0137\23\111"+ + "\1\212\41\111\1\u0136\26\111\1\212\35\111\1\u0138\32\111"+ + "\1\212\41\111\1\u0139\26\111\1\212\43\111\1\u013a\24\111"+ + "\1\212\40\111\1\u013b\27\111\1\212\51\111\1\u013c\16\111"+ + "\1\212\35\111\1\u013d\12\111\1\u013e\2\111\1\u013f\14\111"+ + "\1\212\40\111\1\u0140\16\111\17\0\1\u0141\15\0\1\346"+ + "\60\0\1\u0142\121\0\1\u0143\70\0\1\u0144\57\0\1\u0145"+ + "\101\0\1\u0146\74\0\1\u0147\67\0\1\u011d\62\0\1\u0144"+ + "\101\0\1\u0148\64\0\1\u0149\64\0\1\u014a\70\0\1\u014b"+ + "\33\0\1\u014c\15\0\1\351\60\0\1\u014d\121\0\1\u014e"+ + "\70\0\1\u014f\57\0\1\u0150\101\0\1\u0151\74\0\1\u0152"+ + "\67\0\1\u012a\62\0\1\u014f\101\0\1\u0153\64\0\1\u0154"+ + "\64\0\1\u0155\70\0\1\u0156\14\0\1\61\2\0\3\61"+ + "\1\0\2\61\1\0\5\61\1\u0157\5\61\1\0\7\61"+ + "\1\354\2\61\1\0\31\61\2\0\3\61\1\0\2\61"+ + "\1\0\13\61\1\u0142\12\61\1\0\30\61\15\0\1\102"+ + "\3\0\4\102\1\u0142\1\0\1\204\1\0\6\102\4\0"+ + "\23\102\3\0\11\111\1\212\5\111\1\u0158\15\111\1\361"+ + "\44\111\1\212\13\111\1\u0159\54\111\1\212\44\111\1\u015a"+ + "\23\111\1\212\44\111\1\u015b\23\111\1\212\33\111\1\u015c"+ + "\34\111\1\212\44\111\1\u015d\23\111\1\212\50\111\1\u015e"+ + "\17\111\1\212\47\111\1\u013a\20\111\1\212\41\111\1\u015b"+ + "\26\111\1\212\52\111\1\u015f\15\111\1\212\46\111\1\u0160"+ + "\21\111\1\212\42\111\1\u0161\25\111\1\212\42\111\1\u0162"+ + "\14\111\22\0\3\u0163\66\0\3\u0164\110\0\1\u0147\77\0"+ + "\1\u0147\67\0\1\u0165\61\0\1\u011d\104\0\1\u0147\63\0"+ + "\1\u0166\10\0\1\u0167\51\0\1\u011a\73\0\1\u0168\43\0"+ + "\3\u0169\66\0\3\u016a\110\0\1\u0152\77\0\1\u0152\67\0"+ + "\1\u016b\61\0\1\u012a\104\0\1\u0152\63\0\1\u016c\10\0"+ + "\1\u016d\51\0\1\u0127\73\0\1\u016e\21\0\1\61\2\0"+ + "\3\61\1\0\2\61\1\0\10\61\3\u016f\1\0\12\61"+ + "\1\0\30\61\11\111\1\212\10\111\3\u0170\55\111\1\212"+ + "\10\111\3\u0171\55\111\1\212\32\111\1\u015e\35\111\1\212"+ + "\41\111\1\u015e\26\111\1\212\40\111\1\u0172\27\111\1\212"+ + "\31\111\1\u013a\36\111\1\212\45\111\1\u015e\22\111\1\212"+ + "\40\111\1\u0173\10\111\1\u0174\16\111\1\212\32\111\1\u0137"+ + "\35\111\1\212\35\111\1\u0175\21\111\22\0\3\u0176\66\0"+ + "\3\u0177\120\0\1\u0178\71\0\1\u0179\60\0\1\u011d\104\0"+ + "\1\u017a\31\0\3\u017b\66\0\3\u017c\120\0\1\u017d\71\0"+ + "\1\u017e\60\0\1\u012a\104\0\1\u017f\7\0\1\61\2\0"+ + "\3\61\1\0\2\61\1\0\10\61\3\u0180\1\0\12\61"+ + "\1\0\30\61\11\111\1\212\10\111\3\u0181\55\111\1\212"+ + "\10\111\3\u0182\55\111\1\212\42\111\1\u0183\25\111\1\212"+ + "\43\111\1\u0184\24\111\1\212\33\111\1\u013a\34\111\1\212"+ + "\47\111\1\u0185\7\111\22\0\3\364\10\0\1\346\50\0"+ + "\1\u0186\1\0\1\u0186\5\0\1\u0187\10\0\1\u0188\75\0"+ + "\1\u0144\76\0\1\u0147\101\0\1\u0189\30\0\3\377\10\0"+ + "\1\351\50\0\1\u018a\1\0\1\u018a\5\0\1\u018b\10\0"+ + "\1\u018c\75\0\1\u014f\76\0\1\u0152\101\0\1\u018d\6\0"+ + "\1\61\2\0\3\61\1\0\2\61\1\0\10\61\3\u010a"+ + "\1\0\7\61\1\354\2\61\1\0\30\61\11\111\1\212"+ + "\10\111\3\u010d\10\111\1\361\44\111\1\212\3\111\1\u018e"+ + "\1\111\1\u018e\5\111\1\u018f\10\111\1\u0190\43\111\1\212"+ + "\31\111\1\u015b\36\111\1\212\37\111\1\u015e\30\111\1\212"+ + "\50\111\1\u0191\6\111\22\0\3\u0192\66\0\3\u0193\107\0"+ + "\1\u0194\47\0\3\u0195\66\0\3\u0196\107\0\1\u0197\25\0"+ + "\11\111\1\212\10\111\3\u0198\55\111\1\212\10\111\3\u0199"+ + "\55\111\1\212\31\111\1\u019a\25\111\22\0\3\u019b\66\0"+ + "\3\u019c\120\0\1\u0148\36\0\3\u019d\66\0\3\u019e\120\0"+ + "\1\u0153\14\0\11\111\1\212\10\111\3\u019f\55\111\1\212"+ + "\10\111\3\u01a0\55\111\1\212\42\111\1\u015f\14\111\25\0"+ + "\1\u01a1\60\0\1\u0186\1\0\1\u0186\1\u01a2\15\0\1\u0188"+ + "\57\0\1\u01a3\60\0\1\u018a\1\0\1\u018a\1\u01a4\15\0"+ + "\1\u018c\32\0\11\111\1\212\13\111\1\u01a5\54\111\1\212"+ + "\3\111\1\u018e\1\111\1\u018e\1\u01a6\15\111\1\u0190\32\111"+ + "\22\0\3\u01a7\66\0\3\u01a8\66\0\3\u01a9\66\0\3\u01aa"+ + "\44\0\11\111\1\212\10\111\3\u01ab\55\111\1\212\10\111"+ + "\3\u01ac\44\111\22\0\3\u0188\61\0\1\u0186\1\0\1\u0186"+ + "\2\0\3\u01a8\11\0\1\u0188\54\0\3\u018c\61\0\1\u018a"+ + "\1\0\1\u018a\2\0\3\u01aa\11\0\1\u018c\32\0\11\111"+ + "\1\212\10\111\3\u0190\55\111\1\212\3\111\1\u018e\1\111"+ + "\1\u018e\2\111\3\u01ac\11\111\1\u0190\32\111"; + + private static int [] zzUnpacktrans() { + int [] result = new int[20976]; int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; } - private static int zzUnpackTrans(String packed, int offset, int [] result) { + private static int zzUnpacktrans(String packed, int offset, int [] result) { int i = 0; /* index in packed string */ int j = offset; /* index in unpacked array */ int l = packed.length(); @@ -595,32 +578,31 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { }; /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + * ZZ_ATTRIBUTE[aState] contains the attributes of state {@code aState} */ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\12\0\1\11\4\1\1\11\1\1\2\11\10\1\2\11"+ - "\1\1\1\11\3\1\1\11\3\1\2\11\7\1\1\11"+ - "\3\1\1\11\1\1\2\11\37\1\1\0\2\1\1\11"+ - "\4\1\1\0\2\1\1\0\1\1\2\11\1\0\6\1"+ - "\3\0\1\11\1\1\1\0\2\1\1\0\1\1\1\11"+ - "\1\0\6\1\2\0\1\1\1\0\4\1\1\11\1\1"+ - "\1\0\2\1\1\0\3\1\1\0\6\1\5\0\3\1"+ - "\1\0\1\1\1\0\6\1\1\11\1\1\1\11\3\1"+ - "\1\0\1\1\1\0\5\1\1\11\1\1\1\11\5\1"+ - "\1\0\3\1\1\0\1\1\1\0\7\1\1\0\2\1"+ - "\1\0\1\11\4\1\1\0\1\11\7\1\1\0\4\1"+ - "\1\11\1\0\1\1\2\0\1\1\1\0\4\1\1\0"+ - "\1\1\1\0\1\11\26\0\3\1\45\0\3\1\26\0"+ - "\1\11\12\0\1\11\1\0\1\1\11\0\1\1\15\0"+ - "\1\1\6\0\2\1\3\0\2\1\3\0\3\1\5\0"+ - "\1\11\3\0\1\11\3\0\1\1\12\0\1\1\1\0"+ - "\1\1\1\0\1\1\7\0\1\1\1\0\1\1\1\0"+ - "\1\1\1\0"; + "\12\0\1\11\1\1\1\11\2\1\1\11\1\1\1\11"+ + "\5\1\1\11\4\1\2\11\4\1\2\11\2\1\1\11"+ + "\4\1\1\11\6\1\1\11\2\1\1\11\2\1\1\11"+ + "\17\1\1\0\20\1\1\11\4\1\2\0\2\1\1\0"+ + "\4\1\3\0\1\11\4\1\1\11\1\0\1\11\1\1"+ + "\2\0\5\1\2\0\4\1\1\11\1\0\6\1\1\11"+ + "\3\0\5\1\3\0\6\1\1\11\3\0\3\1\1\0"+ + "\7\1\1\11\1\1\1\11\1\0\3\1\1\0\6\1"+ + "\1\11\6\1\1\0\1\1\1\0\3\1\1\0\7\1"+ + "\1\11\1\0\2\1\1\0\3\1\1\11\1\1\1\0"+ + "\11\1\1\0\2\1\1\11\1\0\1\1\2\0\1\1"+ + "\1\0\4\1\1\11\1\0\1\1\27\0\3\1\45\0"+ + "\3\1\23\0\1\11\12\0\1\11\4\0\1\1\6\0"+ + "\1\1\20\0\1\1\6\0\2\1\3\0\2\1\3\0"+ + "\3\1\5\0\1\11\3\0\1\11\3\0\1\1\13\0"+ + "\1\1\1\0\1\1\1\0\1\1\7\0\1\1\1\0"+ + "\1\1\1\0\1\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[427]; + int [] result = new int[428]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -664,15 +646,26 @@ the source of the yytext() string */ from input */ private int zzEndRead; - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - /** denotes if the user-EOF-code has already been executed */ + /** Number of newlines encountered up to the start of the matched text. */ + @SuppressWarnings("unused") + private int yyline; + + /** Number of characters from the last newline up to the start of the matched text. */ + @SuppressWarnings("unused") + protected int yycolumn; + + /** Number of characters up to the start of the matched text. */ + @SuppressWarnings("unused") + private long yychar; + + /** Whether the scanner is currently at the beginning of a line. */ + @SuppressWarnings("unused") + private boolean zzAtBOL = true; + + /** Whether the user-EOF-code has already been executed. */ private boolean zzEOFDone; /* user code: */ @@ -689,26 +682,22 @@ public IonLexer(java.io.Reader in) { } - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table + /** Returns the maximum size of the scanner buffer, which limits the size of tokens. */ + private int zzMaxBufferLen() { + return Integer.MAX_VALUE; + } + + /** Whether the scanner buffer can grow to accommodate a larger token. */ + private boolean zzCanGrow() { + return true; + } + + /** + * Translates raw input code points to DFA table row */ - 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 < packed.length()) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; + private static int zzCMap(int input) { + int offset = input & 255; + return offset == input ? ZZ_CMAP_BLOCKS[offset] : ZZ_CMAP_BLOCKS[ZZ_CMAP_TOP[input >> 8] | offset]; } public final int getTokenStart() { @@ -852,7 +841,8 @@ private void zzDoEOF() { * @return the next token * @exception java.io.IOException if any I/O-Error occurs */ - public IElementType advance() throws java.io.IOException { + public IElementType advance() throws java.io.IOException + { int zzInput; int zzAction; @@ -886,7 +876,7 @@ public IElementType advance() throws java.io.IOException { while (true) { if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } else if (zzAtEOF) { @@ -908,11 +898,11 @@ else if (zzAtEOF) { break zzForAction; } else { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL); zzCurrentPosL += Character.charCount(zzInput); } } - int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMap(zzInput) ]; if (zzNext == -1) break zzForAction; zzState = zzNext; @@ -931,290 +921,290 @@ else if (zzAtEOF) { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; - zzDoEOF(); + zzDoEOF(); return null; } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: + case 1: { return TokenType.BAD_CHARACTER; - } - // fall through + } + // fall through case 57: break; - case 2: + case 2: { return TokenType.WHITE_SPACE; - } - // fall through + } + // fall through case 58: break; - case 3: - { return IonTypes.IDENTIFIER; - } - // fall through + case 3: + { _zzStateStack.push(yystate()); yybegin(READ_QQ_STR); return IonTypes.QQ_START; + } + // fall through case 59: break; - case 4: - { return IonTypes.INTEGER; - } - // fall through + case 4: + { return IonTypes.IDENTIFIER; + } + // fall through case 60: break; - case 5: - { return IonTypes.COMMA; - } - // fall through + case 5: + { _zzStateStack.push(yystate()); yybegin(READ_Q_STR); return IonTypes.Q_START; + } + // fall through case 61: break; - case 6: - { _zzStateStack.push(yystate()); yybegin(ION_STRUCT); return IonTypes.LBRACE; - } - // fall through + case 6: + { _zzStateStack.push(yystate()); yybegin(S_EXP); return IonTypes.LPAREN; + } + // fall through case 62: break; - case 7: - { _zzStateStack.push(yystate()); yybegin(ION_LIST); return IonTypes.LBRACKET; - } - // fall through + case 7: + { return IonTypes.COMMA; + } + // fall through case 63: break; - case 8: - { _zzStateStack.push(yystate()); yybegin(S_EXP); return IonTypes.LPAREN; - } - // fall through + case 8: + { return IonTypes.INTEGER; + } + // fall through case 64: break; - case 9: - { _zzStateStack.push(yystate()); yybegin(READ_Q_STR); return IonTypes.Q_START; - } - // fall through + case 9: + { _zzStateStack.push(yystate()); yybegin(ION_LIST); return IonTypes.LBRACKET; + } + // fall through case 65: break; - case 10: - { _zzStateStack.push(yystate()); yybegin(READ_QQ_STR); return IonTypes.QQ_START; - } - // fall through + case 10: + { _zzStateStack.push(yystate()); yybegin(ION_STRUCT); return IonTypes.LBRACE; + } + // fall through case 66: break; - case 11: + case 11: { yybegin(_zzStateStack.pop()); return IonTypes.RBRACKET; - } - // fall through + } + // fall through case 67: break; - case 12: - { return IonTypes.KEY_NAME; - } - // fall through + case 12: + { _zzStateStack.push(yystate()); yybegin(READ_KEY); return IonTypes.QQUOTE; + } + // fall through case 68: break; - case 13: - { yybegin(_zzStateStack.pop()); return IonTypes.RBRACE; - } - // fall through + case 13: + { return IonTypes.KEY_NAME; + } + // fall through case 69: break; - case 14: - { _zzStateStack.push(yystate()); yybegin(READ_VALUE); return IonTypes.SEPARATOR; - } - // fall through - case 70: break; - case 15: + case 14: { _zzStateStack.push(yystate()); yybegin(READ_KEY); return IonTypes.QUOTE; - } - // fall through + } + // fall through + case 70: break; + case 15: + { _zzStateStack.push(yystate()); yybegin(READ_VALUE); return IonTypes.SEPARATOR; + } + // fall through case 71: break; - case 16: - { _zzStateStack.push(yystate()); yybegin(READ_KEY); return IonTypes.QQUOTE; - } - // fall through + case 16: + { yybegin(_zzStateStack.pop()); return IonTypes.RBRACE; + } + // fall through case 72: break; - case 17: - { yybegin(_zzStateStack.pop()); return IonTypes.IDENTIFIER; - } - // fall through + case 17: + { yybegin(READ_QQ_STR); return IonTypes.QQ_START; + } + // fall through case 73: break; - case 18: - { yybegin(_zzStateStack.pop()); return IonTypes.INTEGER; - } - // fall through + case 18: + { yybegin(_zzStateStack.pop()); return IonTypes.IDENTIFIER; + } + // fall through case 74: break; - case 19: - { yybegin(ION_STRUCT); return IonTypes.LBRACE; - } - // fall through + case 19: + { yybegin(READ_Q_STR); return IonTypes.Q_START; + } + // fall through case 75: break; - case 20: - { yybegin(ION_LIST); return IonTypes.LBRACKET; - } - // fall through - case 76: break; - case 21: + case 20: { yybegin(S_EXP); return IonTypes.LPAREN; - } - // fall through + } + // fall through + case 76: break; + case 21: + { yybegin(_zzStateStack.pop()); return IonTypes.INTEGER; + } + // fall through case 77: break; - case 22: - { yybegin(READ_Q_STR); return IonTypes.Q_START; - } - // fall through + case 22: + { yybegin(ION_LIST); return IonTypes.LBRACKET; + } + // fall through case 78: break; - case 23: - { yybegin(READ_QQ_STR); return IonTypes.QQ_START; - } - // fall through + case 23: + { yybegin(ION_STRUCT); return IonTypes.LBRACE; + } + // fall through case 79: break; - case 24: - { yybegin(_zzStateStack.pop()); return IonTypes.QUOTE; - } - // fall through - case 80: break; - case 25: + case 24: { yybegin(_zzStateStack.pop()); return IonTypes.QQUOTE; - } - // fall through + } + // fall through + case 80: break; + case 25: + { yybegin(_zzStateStack.pop()); return IonTypes.QUOTE; + } + // fall through case 81: break; - case 26: + case 26: { return IonTypes.OPERATOR; - } - // fall through + } + // fall through case 82: break; - case 27: + case 27: { yybegin(_zzStateStack.pop()); return IonTypes.RPAREN; - } - // fall through + } + // fall through case 83: break; - case 28: - { return (isValidBase64(yytext())) ? IonTypes.BLOB_VALUE : TokenType.BAD_CHARACTER; - } - // fall through - case 84: break; - case 29: + case 28: { return IonTypes.BAD_CHARACTER; - } - // fall through + } + // fall through + case 84: break; + case 29: + { return (isValidBase64(yytext())) ? IonTypes.BLOB_VALUE : TokenType.BAD_CHARACTER; + } + // fall through case 85: break; - case 30: + case 30: { return IonTypes.QQ_VALUE; - } - // fall through + } + // fall through case 86: break; - case 31: + case 31: { yybegin(_zzStateStack.pop()); return IonTypes.QQ_END; - } - // fall through + } + // fall through case 87: break; - case 32: + case 32: { return IonTypes.Q_VALUE; - } - // fall through + } + // fall through case 88: break; - case 33: + case 33: { yybegin(_zzStateStack.pop()); return IonTypes.Q_END; - } - // fall through + } + // fall through case 89: break; - case 34: + case 34: { return IonTypes.COMMENT; - } - // fall through + } + // fall through case 90: break; - case 35: + case 35: { return IonTypes.DECIMAL; - } - // fall through + } + // fall through case 91: break; - case 36: - { _zzStateStack.push(yystate()); yybegin(READ_LOB); return IonTypes.LOB_START; - } - // fall through - case 92: break; - case 37: + case 36: { return IonTypes.ANNOTATION_SEPARATOR; - } - // fall through + } + // fall through + case 92: break; + case 37: + { _zzStateStack.push(yystate()); yybegin(READ_LOB); return IonTypes.LOB_START; + } + // fall through case 93: break; - case 38: + case 38: { _zzStateStack.push(yystate()); yybegin(READ_VALUE); return IonTypes.ANNOTATION_SEPARATOR; - } - // fall through + } + // fall through case 94: break; - case 39: + case 39: { yybegin(_zzStateStack.pop()); return IonTypes.DECIMAL; - } - // fall through + } + // fall through case 95: break; - case 40: + case 40: { yybegin(READ_LOB); return IonTypes.LOB_START; - } - // fall through + } + // fall through case 96: break; - case 41: + case 41: { yybegin(_zzStateStack.pop()); return IonTypes.LOB_END; - } - // fall through + } + // fall through case 97: break; - case 42: - { return IonTypes.BININT; - } - // fall through + case 42: + { _zzStateStack.push(yystate()); yybegin(READ_QQQ_STR); return IonTypes.QQQ_START; + } + // fall through case 98: break; - case 43: - { return IonTypes.HEXINT; - } - // fall through + case 43: + { return IonTypes.BININT; + } + // fall through case 99: break; - case 44: - { _zzStateStack.push(yystate()); yybegin(READ_QQQ_STR); return IonTypes.QQQ_START; - } - // fall through + case 44: + { return IonTypes.HEXINT; + } + // fall through case 100: break; - case 45: + case 45: { _zzStateStack.push(yystate()); yybegin(READ_KEY); return IonTypes.QQQUOTE; - } - // fall through + } + // fall through case 101: break; - case 46: - { yybegin(_zzStateStack.pop()); return IonTypes.HEXINT; - } - // fall through - case 102: break; - case 47: + case 46: { yybegin(READ_QQQ_STR); return IonTypes.QQQ_START; - } - // fall through + } + // fall through + case 102: break; + case 47: + { yybegin(_zzStateStack.pop()); return IonTypes.HEXINT; + } + // fall through case 103: break; - case 48: + case 48: { yybegin(_zzStateStack.pop()); return IonTypes.QQQUOTE; - } - // fall through + } + // fall through case 104: break; - case 49: + case 49: { yybegin(_zzStateStack.pop()); return IonTypes.QQQ_END; - } - // fall through + } + // fall through case 105: break; - case 50: - { return IonTypes.BOOLEAN; - } - // fall through - case 106: break; - case 51: + case 50: { return IonTypes.NULL; - } - // fall through + } + // fall through + case 106: break; + case 51: + { return IonTypes.BOOLEAN; + } + // fall through case 107: break; - case 52: - { yybegin(_zzStateStack.pop()); return IonTypes.BOOLEAN; - } - // fall through - case 108: break; - case 53: + case 52: { yybegin(_zzStateStack.pop()); return IonTypes.NULL; - } - // fall through + } + // fall through + case 108: break; + case 53: + { yybegin(_zzStateStack.pop()); return IonTypes.BOOLEAN; + } + // fall through case 109: break; - case 54: + case 54: { yypushback(3); return IonTypes.QQQ_VALUE; - } - // fall through + } + // fall through case 110: break; - case 55: + case 55: { return IonTypes.TIMESTAMP; - } - // fall through + } + // fall through case 111: break; - case 56: + case 56: { yybegin(_zzStateStack.pop()); return IonTypes.TIMESTAMP; - } - // fall through + } + // fall through case 112: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/src/main/kotlin/com/amazon/ion/plugin/intellij/Ion.flex b/src/main/kotlin/com/amazon/ion/plugin/intellij/Ion.flex index 07e3368..841245e 100644 --- a/src/main/kotlin/com/amazon/ion/plugin/intellij/Ion.flex +++ b/src/main/kotlin/com/amazon/ion/plugin/intellij/Ion.flex @@ -34,7 +34,7 @@ DocumentationComment = "/**" {CommentContent} "*"+ "/" CommentContent = ( [^*] | \*+ [^/*] )* /* Global */ -Identifier = ([A-Za-z_$]) ([0-9A-Za-z_$])* +Identifier = ([A-Za-z_$])([0-9A-Za-z_$])* Comma = "," LBrace = "{" RBrace = "}" @@ -44,7 +44,7 @@ LParen = "(" RParen = ")" /* Key */ -KeyCharacter = [^:\ \n\r\t\f\\\'\"] +KeyCharacter = [^:\n\r\t\f\\\'\"] /* Operators */ DoublePlus = "++" diff --git a/src/test/kotlin/com/amazon/ion/plugin/intellij/parser/IonBasicParsingTest.kt b/src/test/kotlin/com/amazon/ion/plugin/intellij/parser/IonBasicParsingTest.kt index b2c21e4..527bcc4 100644 --- a/src/test/kotlin/com/amazon/ion/plugin/intellij/parser/IonBasicParsingTest.kt +++ b/src/test/kotlin/com/amazon/ion/plugin/intellij/parser/IonBasicParsingTest.kt @@ -30,6 +30,33 @@ class IonBasicParsingTest : IonParserTestCaseBase(dataPath = "basic") { """ ) + fun `test struct with quoted field name having a space`() = doTest( + """ + { 'abc def': value } + """, + """ + Ion File + IonValueImpl(VALUE) + IonContainerImpl(CONTAINER) + IonStructImpl(STRUCT) + PsiElement(LBRACE)('{') + PsiWhiteSpace(' ') + IonMembersImpl(MEMBERS) + IonPairImpl(PAIR) + IonKeyImpl(KEY) + PsiElement(QUOTE)(''') + PsiElement(KEY_NAME)('abc def') + PsiElement(QUOTE)(''') + PsiElement(SEPARATOR)(':') + PsiWhiteSpace(' ') + IonValueImpl(VALUE) + IonSymbolImpl(SYMBOL) + PsiElement(IDENTIFIER)('value') + PsiWhiteSpace(' ') + PsiElement(RBRACE)('}') + """ + ) + fun `test struct with trailing comma`() = doTest( """ { key: value, }