Cleanup: NotNull/Nullable
[idea/community.git] / java / java-psi-impl / gen / com / intellij / lang / java / lexer / _JavaLexer.java
1 /* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */
2
3 /*
4  * Copyright 2000-2013 JetBrains s.r.o.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 package com.intellij.lang.java.lexer;
19
20 import com.intellij.pom.java.LanguageLevel;
21 import com.intellij.psi.JavaTokenType;
22 import com.intellij.psi.impl.source.tree.JavaDocElementType;
23 import com.intellij.psi.tree.IElementType;
24 import com.intellij.lexer.FlexLexer;
25
26 @SuppressWarnings({"ALL"})
27
28 /**
29  * This class is a scanner generated by 
30  * <a href="http://www.jflex.de/">JFlex</a> 1.7.0-SNAPSHOT
31  * from the specification file <tt>_JavaLexer.flex</tt>
32  */
33 class _JavaLexer implements FlexLexer {
34
35   /** This character denotes the end of file */
36   public static final int YYEOF = -1;
37
38   /** initial size of the lookahead buffer */
39   private static final int ZZ_BUFFERSIZE = 16384;
40
41   /** lexical states */
42   public static final int YYINITIAL = 0;
43
44   /**
45    * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
46    * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
47    *                  at the beginning of a line
48    * l is of the form l = 2*k, k a non negative integer
49    */
50   private static final int ZZ_LEXSTATE[] = { 
51      0, 0
52   };
53
54   /** 
55    * Translates characters to character classes
56    * Chosen bits are [12, 6, 3]
57    * Total runtime size is 14848 bytes
58    */
59   public static int ZZ_CMAP(int ch) {
60     return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)];
61   }
62
63   /* The ZZ_CMAP_Z table has 2176 entries */
64   static final char ZZ_CMAP_Z[] = zzUnpackCMap(
65     "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1"+
66     "\20\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+
67     "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\21\1\44\1\45\1\46\1"+
68     "\21\1\47\2\21\1\50\4\21\1\25\1\51\1\52\5\21\2\25\1\53\31\21\1\25\1\54\1\21"+
69     "\1\55\40\21\1\56\17\21\1\57\1\60\1\61\1\62\13\21\1\63\10\21\123\25\1\64\7"+
70     "\25\1\65\1\66\37\21\1\25\1\66\u0582\21\1\67\u017f\21");
71
72   /* The ZZ_CMAP_Y table has 3584 entries */
73   static final char ZZ_CMAP_Y[] = zzUnpackCMap(
74     "\1\0\1\1\1\0\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\4"+
75     "\0\1\17\1\20\1\21\1\22\2\23\1\24\3\23\1\24\71\23\1\25\1\23\1\26\1\27\1\30"+
76     "\1\31\2\27\16\0\1\32\1\17\1\33\1\34\2\23\1\35\11\23\1\36\21\23\1\37\1\40\23"+
77     "\23\1\27\1\41\3\23\1\24\1\42\1\41\4\23\1\43\1\44\4\0\1\45\1\46\1\27\3\23\2"+
78     "\47\1\27\1\50\1\51\1\0\1\52\5\23\1\53\3\0\1\54\1\55\13\23\1\56\1\45\1\57\1"+
79     "\60\1\0\1\61\1\27\1\62\1\63\3\23\3\0\1\64\12\23\1\65\1\0\1\66\1\27\1\0\1\67"+
80     "\3\23\1\53\1\70\1\22\2\23\1\65\1\71\1\72\1\73\2\27\3\23\1\74\10\27\1\75\1"+
81     "\30\6\27\1\76\2\0\1\77\1\100\6\23\1\101\2\0\1\102\1\23\1\103\1\0\2\41\1\104"+
82     "\1\105\1\106\2\23\1\75\1\107\1\110\1\111\1\112\1\62\1\113\1\103\1\0\1\114"+
83     "\1\51\1\104\1\115\1\106\2\23\1\75\1\116\1\117\1\120\1\121\1\122\1\123\1\124"+
84     "\1\0\1\125\1\27\1\104\1\36\1\35\2\23\1\75\1\126\1\110\1\45\1\127\1\130\1\27"+
85     "\1\103\1\0\1\42\1\27\1\104\1\105\1\106\2\23\1\75\1\126\1\110\1\111\1\121\1"+
86     "\124\1\113\1\103\1\0\1\42\1\27\1\131\1\132\1\133\1\134\1\135\1\132\1\23\1"+
87     "\136\1\137\1\140\1\141\1\27\1\124\1\0\1\27\1\42\1\104\1\32\1\75\2\23\1\75"+
88     "\1\142\1\143\1\144\1\140\1\145\1\26\1\103\1\0\2\27\1\146\1\32\1\75\2\23\1"+
89     "\75\1\142\1\110\1\144\1\140\1\145\1\33\1\103\1\0\1\147\1\27\1\146\1\32\1\75"+
90     "\4\23\1\150\1\144\1\151\1\62\1\27\1\103\1\0\1\27\1\40\1\146\1\23\1\24\1\40"+
91     "\2\23\1\35\1\152\1\24\1\153\1\154\1\0\2\27\1\155\1\27\1\41\5\23\1\156\1\157"+
92     "\1\160\1\77\1\0\1\161\4\27\1\162\1\163\1\164\1\41\1\165\1\166\1\156\1\167"+
93     "\1\170\1\171\1\0\1\172\4\27\1\130\2\27\1\161\1\0\1\161\1\173\1\174\1\23\1"+
94     "\41\3\23\1\30\1\44\1\0\1\144\1\175\1\0\1\44\3\0\1\50\1\176\7\27\5\23\1\53"+
95     "\1\0\1\177\1\0\1\161\1\65\1\200\1\201\1\202\1\203\1\23\1\204\1\205\1\0\1\171"+
96     "\4\23\1\36\1\21\5\23\1\206\51\23\1\133\1\24\1\133\5\23\1\133\4\23\1\133\1"+
97     "\24\1\133\1\23\1\24\7\23\1\133\10\23\1\207\4\27\2\23\2\27\12\23\1\30\1\27"+
98     "\1\41\114\23\1\105\2\23\1\41\2\23\1\47\11\23\1\132\1\130\1\27\1\23\1\32\1"+
99     "\210\1\27\2\23\1\210\1\27\2\23\1\211\1\27\1\23\1\32\1\212\1\27\6\23\1\213"+
100     "\3\0\1\214\1\215\1\0\1\161\3\27\1\216\1\0\1\161\13\23\1\27\5\23\1\217\10\23"+
101     "\1\220\1\27\3\23\1\30\1\0\1\2\1\0\1\2\1\124\1\0\3\23\1\220\1\30\1\27\5\23"+
102     "\1\114\2\0\1\55\1\161\1\0\1\161\4\27\2\23\1\160\1\2\6\23\1\175\1\77\3\0\1"+
103     "\111\1\0\1\161\1\0\1\161\1\43\13\27\1\221\5\23\1\213\1\0\1\221\1\114\1\0\1"+
104     "\161\1\27\1\222\1\2\1\27\1\223\3\23\1\102\1\202\1\0\1\67\4\23\1\65\1\0\1\2"+
105     "\1\27\4\23\1\213\2\0\1\27\1\0\1\224\1\0\1\67\3\23\1\220\12\27\1\225\2\0\1"+
106     "\226\1\227\1\27\30\23\4\0\1\77\2\27\1\76\42\23\2\220\4\23\2\220\1\23\1\230"+
107     "\3\23\1\220\6\23\1\32\1\170\1\231\1\30\1\232\1\114\1\23\1\30\1\231\1\30\1"+
108     "\27\1\222\3\27\1\233\1\27\1\43\1\130\1\27\1\234\1\27\1\50\1\235\1\42\1\43"+
109     "\2\27\1\23\1\30\3\23\1\47\2\27\1\0\1\50\1\236\1\0\1\237\1\27\1\240\1\40\1"+
110     "\152\1\241\1\31\1\242\1\23\1\243\1\244\1\245\2\27\5\23\1\130\116\27\5\23\1"+
111     "\24\5\23\1\24\20\23\1\30\1\246\1\247\1\27\4\23\1\36\1\21\7\23\1\43\1\27\1"+
112     "\62\2\23\1\24\1\27\10\24\4\0\5\27\1\43\72\27\1\244\3\27\1\41\1\204\1\241\1"+
113     "\30\1\41\11\23\1\24\1\250\1\41\12\23\1\206\1\244\4\23\1\220\1\41\12\23\1\24"+
114     "\2\27\3\23\1\47\6\27\170\23\1\220\11\27\71\23\1\30\6\27\21\23\1\30\10\27\5"+
115     "\23\1\220\41\23\1\30\2\23\1\0\1\247\2\27\5\23\1\160\1\76\1\251\3\23\1\62\12"+
116     "\23\1\161\3\27\1\43\1\23\1\40\14\23\1\252\1\114\1\27\1\23\1\47\11\27\1\23"+
117     "\1\253\1\254\2\23\1\53\2\27\1\130\6\23\1\114\1\27\1\67\5\23\1\213\1\0\1\50"+
118     "\1\27\1\0\1\161\2\0\1\67\1\51\1\0\1\67\2\23\1\65\1\171\2\23\1\160\1\0\1\2"+
119     "\1\27\3\23\1\30\1\100\5\23\1\53\1\0\1\237\1\43\1\0\1\161\4\27\5\23\1\102\1"+
120     "\77\1\27\1\254\1\255\1\0\1\161\2\23\1\24\1\256\6\23\1\201\1\257\1\217\2\27"+
121     "\1\260\1\23\1\53\1\261\1\27\3\262\1\27\2\24\22\27\4\23\1\53\1\263\1\0\1\161"+
122     "\64\23\1\114\1\27\2\23\1\24\1\264\5\23\1\114\40\27\55\23\1\220\15\23\1\26"+
123     "\4\27\1\24\1\27\1\264\1\265\1\23\1\75\1\24\1\170\1\266\15\23\1\26\3\27\1\264"+
124     "\54\23\1\220\2\27\10\23\1\40\6\23\5\27\1\23\1\30\2\0\2\27\1\77\1\27\1\135"+
125     "\2\27\1\244\3\27\1\42\1\32\20\23\1\267\1\234\1\27\1\0\1\161\1\41\2\23\1\115"+
126     "\1\41\2\23\1\47\1\270\12\23\1\24\3\40\1\271\1\272\2\27\1\273\1\23\1\142\2"+
127     "\23\1\24\2\23\1\274\1\23\1\220\1\23\1\220\4\27\17\23\1\47\10\27\6\23\1\30"+
128     "\20\27\1\275\20\27\3\23\1\30\6\23\1\130\5\27\3\23\1\24\2\27\3\23\1\47\6\27"+
129     "\3\23\1\220\4\23\1\114\1\23\1\241\5\27\23\23\1\220\1\0\1\161\52\27\1\220\1"+
130     "\75\4\23\1\36\1\276\2\23\1\220\25\27\2\23\1\220\1\27\3\23\1\26\10\27\7\23"+
131     "\1\270\10\27\1\277\1\76\1\142\1\41\2\23\1\114\1\120\4\27\3\23\1\30\20\27\6"+
132     "\23\1\220\1\27\2\23\1\220\1\27\2\23\1\47\21\27\11\23\1\130\66\27\1\223\6\23"+
133     "\1\0\1\77\3\27\1\124\1\0\2\27\1\223\5\23\1\0\1\300\2\27\3\23\1\130\1\0\1\161"+
134     "\1\223\3\23\1\160\1\0\1\144\1\0\10\27\1\223\5\23\1\53\1\0\1\301\1\27\1\0\1"+
135     "\161\24\27\5\23\1\53\1\0\1\27\1\0\1\161\46\27\55\23\1\24\22\27\14\23\1\47"+
136     "\63\27\5\23\1\24\72\27\7\23\1\130\130\27\10\23\1\30\1\27\1\102\4\0\1\77\1"+
137     "\27\1\62\1\223\1\23\14\27\1\26\153\27\1\302\1\303\2\0\1\304\1\2\3\27\1\305"+
138     "\22\27\1\306\67\27\12\23\1\32\10\23\1\32\1\307\1\310\1\23\1\311\1\142\7\23"+
139     "\1\36\1\312\2\32\3\23\1\313\1\170\1\40\1\75\51\23\1\220\3\23\1\75\2\23\1\206"+
140     "\3\23\1\206\2\23\1\32\3\23\1\32\2\23\1\24\3\23\1\24\3\23\1\75\3\23\1\75\2"+
141     "\23\1\206\1\314\6\0\1\142\3\23\1\162\1\41\1\206\1\315\1\240\1\316\1\162\1"+
142     "\230\1\162\2\206\1\123\1\23\1\35\1\23\1\114\1\317\1\35\1\23\1\114\50\27\32"+
143     "\23\1\24\5\27\106\23\1\30\1\27\33\23\1\220\74\27\1\122\3\27\14\0\20\27\36"+
144     "\0\2\27");
145
146   /* The ZZ_CMAP_A table has 1664 entries */
147   static final char ZZ_CMAP_A[] = zzUnpackCMap(
148     "\11\3\1\1\1\6\1\0\1\1\1\6\6\3\4\0\1\1\1\60\1\26\1\0\1\2\1\67\1\65\1\25\1\70"+
149     "\1\71\1\5\1\62\1\77\1\22\1\20\1\4\1\13\11\7\1\102\1\76\1\63\1\57\1\64\1\101"+
150     "\1\103\1\11\1\15\1\11\1\17\1\21\1\16\5\2\1\12\3\2\1\23\7\2\1\14\2\2\1\74\1"+
151     "\24\1\75\1\66\1\10\1\0\1\34\1\40\1\41\1\47\1\32\1\33\1\52\1\45\1\46\1\2\1"+
152     "\43\1\35\1\50\1\37\1\42\1\53\1\2\1\30\1\36\1\27\1\31\1\54\1\55\1\51\1\44\1"+
153     "\56\1\72\1\61\1\73\1\100\1\3\2\0\4\2\4\0\1\2\2\0\1\3\7\0\1\2\4\0\1\2\5\0\17"+
154     "\2\1\0\2\2\4\0\4\2\16\0\5\2\7\0\1\2\1\0\1\2\1\0\5\2\1\0\2\2\6\0\1\2\1\0\3"+
155     "\2\1\0\1\2\1\0\4\2\1\0\13\2\1\0\3\2\1\0\5\3\2\0\6\2\1\0\7\2\1\0\1\2\15\0\1"+
156     "\2\1\0\15\3\1\0\1\3\1\0\2\3\1\0\2\3\1\0\1\3\3\2\5\0\5\3\6\0\1\2\4\0\3\3\5"+
157     "\0\3\2\7\3\4\0\2\2\1\3\13\2\1\0\1\2\7\3\2\2\2\3\1\0\4\3\2\2\2\3\3\2\2\0\1"+
158     "\2\7\0\1\3\1\2\1\3\6\2\3\3\2\0\11\2\3\3\1\2\6\0\2\3\6\2\4\3\2\2\2\0\2\3\1"+
159     "\2\11\3\1\2\3\3\1\2\5\3\2\0\1\2\3\3\4\0\1\2\1\0\6\2\4\0\13\3\1\0\4\3\6\2\3"+
160     "\3\1\2\2\3\1\2\7\3\2\2\2\3\2\0\2\3\1\0\3\3\1\0\10\2\2\0\2\2\2\0\6\2\1\0\1"+
161     "\2\3\0\4\2\2\0\1\3\1\2\7\3\2\0\2\3\2\0\3\3\1\2\5\0\2\2\1\0\5\2\4\0\3\2\4\0"+
162     "\2\2\1\0\2\2\1\0\2\2\1\0\2\2\2\0\1\3\1\0\5\3\4\0\2\3\2\0\3\3\3\0\1\3\7\0\4"+
163     "\2\1\0\1\2\7\0\4\3\3\2\1\3\2\0\1\2\1\0\2\2\1\0\3\2\2\3\1\0\3\3\2\0\1\2\11"+
164     "\0\1\3\1\2\1\0\6\2\3\0\3\2\1\0\4\2\3\0\2\2\1\0\1\2\1\0\2\2\3\0\2\2\3\0\2\2"+
165     "\4\0\5\3\3\0\3\3\1\0\4\3\2\0\1\2\6\0\1\3\4\2\1\0\5\2\3\0\1\2\7\3\1\0\2\3\5"+
166     "\0\2\3\3\0\2\3\1\0\3\2\1\0\2\2\5\0\3\2\2\0\1\2\3\3\1\0\4\3\1\2\1\0\4\2\1\0"+
167     "\1\2\4\0\1\3\4\0\6\3\1\0\1\3\3\0\2\3\4\0\1\2\1\3\2\2\7\3\4\0\10\2\3\3\7\0"+
168     "\2\2\1\0\1\2\2\0\2\2\1\0\1\2\2\0\1\2\6\0\4\2\1\0\3\2\1\0\1\2\1\0\1\2\2\0\2"+
169     "\2\1\0\3\2\2\3\1\0\2\3\1\2\2\0\5\2\1\0\1\2\1\0\6\3\2\0\2\3\2\0\4\2\5\0\1\3"+
170     "\1\0\1\3\1\0\1\3\4\0\2\3\5\2\3\3\6\0\1\3\1\0\7\3\1\2\2\3\4\2\3\3\1\2\3\3\2"+
171     "\2\7\3\3\2\4\3\5\2\14\3\1\2\1\3\3\2\1\0\7\2\2\0\3\3\2\2\3\3\3\0\2\2\2\3\4"+
172     "\0\1\2\1\0\2\3\4\0\4\2\10\3\3\0\1\2\3\0\2\2\1\3\5\0\3\3\2\0\1\2\1\3\1\2\5"+
173     "\0\6\2\2\0\5\3\3\2\3\0\10\3\5\2\2\3\3\0\3\2\3\3\1\0\5\3\4\2\1\3\4\2\3\3\2"+
174     "\2\2\0\1\2\1\0\1\2\1\0\1\2\1\0\1\2\2\0\3\2\1\0\6\2\2\0\2\2\2\0\5\3\5\0\1\2"+
175     "\5\0\6\3\1\0\1\3\3\0\4\3\11\0\1\2\4\0\1\2\1\0\5\2\2\0\1\2\1\0\4\2\1\0\3\2"+
176     "\2\0\4\2\5\0\5\2\4\0\1\2\4\0\4\2\3\3\2\2\5\0\2\3\2\0\3\2\6\3\1\0\2\2\2\0\4"+
177     "\2\1\0\2\2\1\3\3\2\1\3\4\2\1\3\10\2\2\3\4\0\1\2\1\3\4\0\1\3\5\2\2\3\3\0\3"+
178     "\2\4\0\3\2\2\3\2\0\6\2\1\0\3\3\1\0\2\3\5\0\5\2\5\0\1\2\1\3\3\2\1\0\2\2\1\0"+
179     "\7\2\2\0\1\3\6\0\2\2\2\0\3\2\3\0\2\2\3\0\2\2\2\0\3\3\4\0\3\2\1\0\2\2\1\0\1"+
180     "\2\5\0\1\3\2\0\1\2\3\0\1\2\2\0\2\2\3\3\1\0\2\3\1\0\3\3\2\0\1\3\2\0\1\3\4\2"+
181     "\10\0\5\3\3\0\6\3\2\0\3\3\2\0\4\3\4\0\3\3\5\0\1\2\2\0\2\2\2\0\4\2\1\0\4\2"+
182     "\1\0\1\2\1\0\6\2\2\0\5\2\1\0\4\2\1\0\4\2\2\0\2\3\1\0\1\2\1\0\1\2\5\0\1\2\1"+
183     "\0\1\2\1\0\3\2\1\0\3\2\1\0\3\2");
184
185   /** 
186    * Translates DFA states to action switch labels.
187    */
188   private static final int [] ZZ_ACTION = zzUnpackAction();
189
190   private static final String ZZ_ACTION_PACKED_0 =
191     "\1\0\1\1\1\2\1\3\1\4\1\5\2\6\1\7"+
192     "\1\10\1\11\1\12\20\3\1\13\1\14\1\15\1\16"+
193     "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+
194     "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"+
195     "\1\37\1\40\1\41\1\42\1\43\1\44\1\45\3\46"+
196     "\2\6\1\0\1\47\1\50\1\51\2\11\2\12\34\3"+
197     "\1\52\3\3\1\53\6\3\1\54\1\55\1\56\1\57"+
198     "\1\60\1\61\1\62\1\63\1\64\1\65\1\66\1\67"+
199     "\1\70\1\41\1\71\1\46\1\6\1\0\1\72\2\3"+
200     "\1\73\10\3\1\74\13\3\1\75\11\3\1\76\14\3"+
201     "\1\77\1\0\2\71\1\0\1\100\2\3\1\101\1\3"+
202     "\1\102\1\103\6\3\1\104\6\3\1\105\3\3\1\106"+
203     "\1\3\1\107\3\3\1\110\6\3\1\111\5\3\1\112"+
204     "\1\3\1\41\1\0\1\3\1\113\2\3\1\114\1\115"+
205     "\1\116\4\3\1\117\1\3\1\120\2\3\1\121\1\3"+
206     "\1\122\1\123\1\3\1\124\13\3\1\125\1\3\1\126"+
207     "\1\127\2\3\1\130\2\3\1\131\1\3\1\132\1\133"+
208     "\5\3\1\134\1\3\1\135\2\3\1\136\3\3\1\137"+
209     "\1\140\3\3\1\141\4\3\1\142\1\3\1\143\1\144"+
210     "\2\3\1\145\1\146\1\3\1\147\4\3\1\150\1\151"+
211     "\1\3\1\152\2\3\1\153\1\3\1\154\1\155\1\3"+
212     "\1\156";
213
214   private static int [] zzUnpackAction() {
215     int [] result = new int[320];
216     int offset = 0;
217     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
218     return result;
219   }
220
221   private static int zzUnpackAction(String packed, int offset, int [] result) {
222     int i = 0;       /* index in packed string  */
223     int j = offset;  /* index in unpacked array */
224     int l = packed.length();
225     while (i < l) {
226       int count = packed.charAt(i++);
227       int value = packed.charAt(i++);
228       do result[j++] = value; while (--count > 0);
229     }
230     return j;
231   }
232
233
234   /** 
235    * Translates a state to a row index in the transition table
236    */
237   private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
238
239   private static final String ZZ_ROWMAP_PACKED_0 =
240     "\0\0\0\104\0\210\0\314\0\u0110\0\u0154\0\u0198\0\u01dc"+
241     "\0\u0220\0\u0264\0\u02a8\0\u02ec\0\u0330\0\u0374\0\u03b8\0\u03fc"+
242     "\0\u0440\0\u0484\0\u04c8\0\u050c\0\u0550\0\u0594\0\u05d8\0\u061c"+
243     "\0\u0660\0\u06a4\0\u06e8\0\u072c\0\u0770\0\u07b4\0\u07f8\0\u083c"+
244     "\0\u0880\0\104\0\u08c4\0\u0908\0\u094c\0\104\0\104\0\104"+
245     "\0\104\0\104\0\104\0\104\0\104\0\104\0\104\0\u0990"+
246     "\0\104\0\u09d4\0\u0a18\0\104\0\104\0\104\0\104\0\104"+
247     "\0\u0a5c\0\u0aa0\0\u0ae4\0\u0b28\0\u0b6c\0\104\0\104\0\104"+
248     "\0\u0bb0\0\104\0\u0bf4\0\104\0\u0c38\0\u0c7c\0\u0cc0\0\u0d04"+
249     "\0\u0d48\0\u0d8c\0\u0dd0\0\u0e14\0\u0e58\0\u0e9c\0\u0ee0\0\u0f24"+
250     "\0\u0f68\0\u0fac\0\u0ff0\0\u1034\0\u1078\0\u10bc\0\u1100\0\u1144"+
251     "\0\u1188\0\u11cc\0\u1210\0\u1254\0\u1298\0\u12dc\0\u1320\0\u1364"+
252     "\0\314\0\u13a8\0\u13ec\0\u1430\0\u1474\0\u14b8\0\u14fc\0\u1540"+
253     "\0\u1584\0\u15c8\0\u160c\0\104\0\104\0\104\0\104\0\104"+
254     "\0\104\0\104\0\u1650\0\104\0\104\0\104\0\104\0\104"+
255     "\0\u1694\0\u16d8\0\u171c\0\u1760\0\u17a4\0\104\0\u17e8\0\u182c"+
256     "\0\314\0\u1870\0\u18b4\0\u18f8\0\u193c\0\u1980\0\u19c4\0\u1a08"+
257     "\0\u1a4c\0\314\0\u1a90\0\u1ad4\0\u1b18\0\u1b5c\0\u1ba0\0\u1be4"+
258     "\0\u1c28\0\u1c6c\0\u1cb0\0\u1cf4\0\u1d38\0\314\0\u1d7c\0\u1dc0"+
259     "\0\u1e04\0\u1e48\0\u1e8c\0\u1ed0\0\u1f14\0\u1f58\0\u1f9c\0\u1fe0"+
260     "\0\u2024\0\u2068\0\u20ac\0\u20f0\0\u2134\0\u2178\0\u21bc\0\u2200"+
261     "\0\u2244\0\u2288\0\u22cc\0\u2310\0\104\0\u2354\0\u2398\0\104"+
262     "\0\u23dc\0\314\0\u2420\0\u2464\0\314\0\u24a8\0\314\0\314"+
263     "\0\u24ec\0\u2530\0\u2574\0\u25b8\0\u25fc\0\u2640\0\314\0\u2684"+
264     "\0\u26c8\0\u270c\0\u2750\0\u2794\0\u27d8\0\314\0\u281c\0\u2860"+
265     "\0\u28a4\0\314\0\u28e8\0\314\0\u292c\0\u2970\0\u29b4\0\314"+
266     "\0\u29f8\0\u2a3c\0\u2a80\0\u2ac4\0\u2b08\0\u2b4c\0\314\0\u2b90"+
267     "\0\u2bd4\0\u2c18\0\u2c5c\0\u2ca0\0\314\0\u2ce4\0\104\0\u2d28"+
268     "\0\u2d6c\0\u2db0\0\u2df4\0\u2e38\0\314\0\314\0\u2e7c\0\u2ec0"+
269     "\0\u2f04\0\u2f48\0\u2f8c\0\314\0\u2fd0\0\314\0\u3014\0\u3058"+
270     "\0\314\0\u309c\0\314\0\314\0\u30e0\0\314\0\u3124\0\u3168"+
271     "\0\u31ac\0\u31f0\0\u3234\0\u3278\0\u32bc\0\u3300\0\u3344\0\u3388"+
272     "\0\u33cc\0\314\0\u3410\0\314\0\314\0\u3454\0\u3498\0\314"+
273     "\0\u34dc\0\u3520\0\314\0\u3564\0\314\0\314\0\u35a8\0\u35ec"+
274     "\0\u3630\0\u3674\0\u36b8\0\314\0\u36fc\0\314\0\u3740\0\u3784"+
275     "\0\314\0\u37c8\0\u380c\0\u3850\0\314\0\314\0\u3894\0\u38d8"+
276     "\0\u391c\0\314\0\u3960\0\u39a4\0\u39e8\0\u3a2c\0\314\0\u3a70"+
277     "\0\314\0\314\0\u3ab4\0\u3af8\0\314\0\314\0\u3b3c\0\314"+
278     "\0\u3b80\0\u3bc4\0\u3c08\0\u3c4c\0\314\0\314\0\u3c90\0\314"+
279     "\0\u3cd4\0\u3d18\0\314\0\u3d5c\0\314\0\314\0\u3da0\0\314";
280
281   private static int [] zzUnpackRowMap() {
282     int [] result = new int[320];
283     int offset = 0;
284     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
285     return result;
286   }
287
288   private static int zzUnpackRowMap(String packed, int offset, int [] result) {
289     int i = 0;  /* index in packed string  */
290     int j = offset;  /* index in unpacked array */
291     int l = packed.length();
292     while (i < l) {
293       int high = packed.charAt(i++) << 16;
294       result[j++] = high | packed.charAt(i++);
295     }
296     return j;
297   }
298
299   /** 
300    * The transition table of the DFA
301    */
302   private static final int [] ZZ_TRANS = zzUnpackTrans();
303
304   private static final String ZZ_TRANS_PACKED_0 =
305     "\1\2\1\3\1\4\1\2\1\5\1\6\1\3\1\7"+
306     "\3\4\1\10\4\4\1\11\1\4\1\12\1\4\1\2"+
307     "\1\13\1\14\1\15\1\16\1\4\1\17\1\20\1\21"+
308     "\1\22\1\23\1\24\1\25\1\26\4\4\1\27\1\30"+
309     "\2\4\1\31\1\32\1\33\1\34\1\4\1\35\1\36"+
310     "\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46"+
311     "\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56"+
312     "\1\57\1\60\1\61\105\0\1\3\4\0\1\3\77\0"+
313     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
314     "\30\4\31\0\1\62\1\63\51\0\1\64\103\0\1\65"+
315     "\33\0\2\7\1\0\1\66\1\7\2\0\1\67\1\70"+
316     "\1\71\1\72\10\0\1\72\1\67\1\0\1\66\11\0"+
317     "\1\70\43\0\2\7\1\0\1\66\1\7\1\73\1\74"+
318     "\1\67\1\70\1\71\1\72\10\0\1\72\1\67\1\0"+
319     "\1\66\2\0\1\74\6\0\1\70\1\0\1\73\41\0"+
320     "\1\71\3\0\1\71\4\0\1\75\105\0\1\76\34\0"+
321     "\1\77\4\0\1\100\17\0\6\13\1\0\15\13\1\101"+
322     "\1\102\56\13\6\14\1\0\15\14\1\103\1\14\1\104"+
323     "\55\14\2\0\2\4\3\0\11\4\1\0\1\4\1\0"+
324     "\1\4\3\0\1\4\1\105\14\4\1\106\11\4\27\0"+
325     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
326     "\3\4\1\107\24\4\27\0\2\4\3\0\11\4\1\0"+
327     "\1\4\1\0\1\4\3\0\6\4\1\110\1\4\1\111"+
328     "\11\4\1\112\5\4\27\0\2\4\3\0\11\4\1\0"+
329     "\1\4\1\0\1\4\3\0\5\4\1\113\1\114\4\4"+
330     "\1\115\3\4\1\116\10\4\27\0\2\4\3\0\11\4"+
331     "\1\0\1\4\1\0\1\4\3\0\7\4\1\117\1\4"+
332     "\1\120\16\4\27\0\2\4\3\0\11\4\1\0\1\4"+
333     "\1\0\1\4\3\0\13\4\1\121\14\4\27\0\2\4"+
334     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\122"+
335     "\1\4\1\123\12\4\1\124\1\125\7\4\1\126\1\4"+
336     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
337     "\3\0\2\4\1\127\1\130\1\4\1\131\22\4\27\0"+
338     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
339     "\1\4\1\132\11\4\1\133\1\4\1\134\12\4\27\0"+
340     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
341     "\5\4\1\135\1\136\4\4\1\137\2\4\1\140\11\4"+
342     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
343     "\3\0\4\4\1\141\3\4\1\142\10\4\1\143\6\4"+
344     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
345     "\3\0\3\4\1\144\7\4\1\145\14\4\27\0\2\4"+
346     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\13\4"+
347     "\1\146\14\4\27\0\2\4\3\0\11\4\1\0\1\4"+
348     "\1\0\1\4\3\0\1\4\1\147\1\150\2\4\1\151"+
349     "\22\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
350     "\1\4\3\0\13\4\1\152\14\4\27\0\2\4\3\0"+
351     "\11\4\1\0\1\4\1\0\1\4\3\0\16\4\1\153"+
352     "\11\4\104\0\1\154\103\0\1\155\103\0\1\156\1\0"+
353     "\1\157\101\0\1\160\2\0\1\161\100\0\1\162\3\0"+
354     "\1\163\77\0\1\164\5\0\1\165\75\0\1\166\103\0"+
355     "\1\167\126\0\1\170\1\0\6\62\1\0\75\62\5\171"+
356     "\1\172\76\171\7\0\2\71\2\0\1\71\2\0\1\67"+
357     "\1\70\1\0\1\72\10\0\1\72\1\67\13\0\1\70"+
358     "\43\0\2\173\2\0\1\173\2\0\1\67\1\70\2\0"+
359     "\1\173\10\0\1\67\13\0\1\70\12\0\1\173\30\0"+
360     "\3\174\1\66\1\174\1\0\3\174\1\175\1\174\10\0"+
361     "\3\174\1\66\2\0\2\174\5\0\1\174\43\0\2\74"+
362     "\1\0\1\66\1\74\21\0\1\66\66\0\1\176\63\0"+
363     "\6\13\1\0\75\13\6\14\1\0\75\14\2\0\2\4"+
364     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\2\4"+
365     "\1\177\2\4\1\200\7\4\1\201\12\4\27\0\2\4"+
366     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\4"+
367     "\1\202\15\4\1\203\10\4\27\0\2\4\3\0\11\4"+
368     "\1\0\1\4\1\0\1\4\3\0\1\204\27\4\27\0"+
369     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
370     "\7\4\1\205\20\4\27\0\2\4\3\0\11\4\1\0"+
371     "\1\4\1\0\1\4\3\0\2\4\1\206\25\4\27\0"+
372     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
373     "\1\207\27\4\27\0\2\4\3\0\11\4\1\0\1\4"+
374     "\1\0\1\4\3\0\6\4\1\210\21\4\27\0\2\4"+
375     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\13\4"+
376     "\1\211\14\4\27\0\2\4\3\0\11\4\1\0\1\4"+
377     "\1\0\1\4\3\0\1\4\1\212\26\4\27\0\2\4"+
378     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\10\4"+
379     "\1\213\17\4\27\0\2\4\3\0\11\4\1\0\1\4"+
380     "\1\0\1\4\3\0\7\4\1\214\20\4\27\0\2\4"+
381     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\7\4"+
382     "\1\215\20\4\27\0\2\4\3\0\11\4\1\0\1\4"+
383     "\1\0\1\4\3\0\10\4\1\216\17\4\27\0\2\4"+
384     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\4"+
385     "\1\217\3\4\1\220\22\4\27\0\2\4\3\0\11\4"+
386     "\1\0\1\4\1\0\1\4\3\0\24\4\1\221\3\4"+
387     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
388     "\3\0\10\4\1\222\17\4\27\0\2\4\3\0\11\4"+
389     "\1\0\1\4\1\0\1\4\3\0\13\4\1\223\14\4"+
390     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
391     "\3\0\17\4\1\224\10\4\27\0\2\4\3\0\11\4"+
392     "\1\0\1\4\1\0\1\4\3\0\6\4\1\225\21\4"+
393     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
394     "\3\0\26\4\1\226\1\4\27\0\2\4\3\0\11\4"+
395     "\1\0\1\4\1\0\1\4\3\0\1\227\27\4\27\0"+
396     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
397     "\3\4\1\230\24\4\27\0\2\4\3\0\11\4\1\0"+
398     "\1\4\1\0\1\4\3\0\13\4\1\231\14\4\27\0"+
399     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
400     "\1\232\27\4\27\0\2\4\3\0\11\4\1\0\1\4"+
401     "\1\0\1\4\3\0\1\233\6\4\1\234\20\4\27\0"+
402     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
403     "\5\4\1\235\22\4\27\0\2\4\3\0\11\4\1\0"+
404     "\1\4\1\0\1\4\3\0\10\4\1\236\17\4\27\0"+
405     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
406     "\5\4\1\237\22\4\27\0\2\4\3\0\11\4\1\0"+
407     "\1\4\1\0\1\4\3\0\1\240\6\4\1\241\20\4"+
408     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
409     "\3\0\24\4\1\242\3\4\27\0\2\4\3\0\11\4"+
410     "\1\0\1\4\1\0\1\4\3\0\4\4\1\243\23\4"+
411     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
412     "\3\0\2\4\1\244\25\4\27\0\2\4\3\0\11\4"+
413     "\1\0\1\4\1\0\1\4\3\0\1\245\27\4\27\0"+
414     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
415     "\13\4\1\246\3\4\1\247\10\4\27\0\2\4\3\0"+
416     "\11\4\1\0\1\4\1\0\1\4\3\0\11\4\1\250"+
417     "\16\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
418     "\1\4\3\0\12\4\1\251\15\4\27\0\2\4\3\0"+
419     "\11\4\1\0\1\4\1\0\1\4\3\0\6\4\1\252"+
420     "\10\4\1\253\10\4\27\0\2\4\3\0\11\4\1\0"+
421     "\1\4\1\0\1\4\3\0\17\4\1\254\10\4\104\0"+
422     "\1\255\24\0\5\171\1\256\76\171\4\257\1\260\1\172"+
423     "\76\257\7\0\2\173\2\0\1\173\2\0\1\67\1\70"+
424     "\13\0\1\67\13\0\1\70\43\0\3\174\1\66\1\174"+
425     "\1\0\3\174\1\261\1\174\1\0\1\72\6\0\3\174"+
426     "\1\66\2\0\2\174\5\0\1\174\3\0\1\72\37\0"+
427     "\3\261\1\0\1\261\1\0\3\261\1\0\1\261\10\0"+
428     "\3\261\3\0\2\261\5\0\1\261\36\0\2\4\3\0"+
429     "\11\4\1\0\1\4\1\0\1\4\3\0\3\4\1\262"+
430     "\24\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
431     "\1\4\3\0\10\4\1\263\17\4\27\0\2\4\3\0"+
432     "\11\4\1\0\1\4\1\0\1\4\3\0\13\4\1\264"+
433     "\14\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
434     "\1\4\3\0\7\4\1\265\20\4\27\0\2\4\3\0"+
435     "\11\4\1\0\1\4\1\0\1\4\3\0\2\4\1\266"+
436     "\25\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
437     "\1\4\3\0\3\4\1\267\24\4\27\0\2\4\3\0"+
438     "\11\4\1\0\1\4\1\0\1\4\3\0\21\4\1\270"+
439     "\6\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
440     "\1\4\3\0\3\4\1\271\24\4\27\0\2\4\3\0"+
441     "\11\4\1\0\1\4\1\0\1\4\3\0\7\4\1\272"+
442     "\20\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
443     "\1\4\3\0\5\4\1\273\22\4\27\0\2\4\3\0"+
444     "\11\4\1\0\1\4\1\0\1\4\3\0\5\4\1\274"+
445     "\22\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
446     "\1\4\3\0\3\4\1\275\24\4\27\0\2\4\3\0"+
447     "\11\4\1\0\1\4\1\0\1\4\3\0\1\276\27\4"+
448     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
449     "\3\0\23\4\1\277\4\4\27\0\2\4\3\0\11\4"+
450     "\1\0\1\4\1\0\1\4\3\0\17\4\1\300\10\4"+
451     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
452     "\3\0\1\301\27\4\27\0\2\4\3\0\11\4\1\0"+
453     "\1\4\1\0\1\4\3\0\3\4\1\302\24\4\27\0"+
454     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
455     "\12\4\1\303\15\4\27\0\2\4\3\0\11\4\1\0"+
456     "\1\4\1\0\1\4\3\0\1\4\1\304\26\4\27\0"+
457     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
458     "\1\305\27\4\27\0\2\4\3\0\11\4\1\0\1\4"+
459     "\1\0\1\4\3\0\6\4\1\306\21\4\27\0\2\4"+
460     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\17\4"+
461     "\1\307\10\4\27\0\2\4\3\0\11\4\1\0\1\4"+
462     "\1\0\1\4\3\0\5\4\1\310\22\4\27\0\2\4"+
463     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\6\4"+
464     "\1\311\21\4\27\0\2\4\3\0\11\4\1\0\1\4"+
465     "\1\0\1\4\3\0\3\4\1\312\24\4\27\0\2\4"+
466     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\12\4"+
467     "\1\313\15\4\27\0\2\4\3\0\11\4\1\0\1\4"+
468     "\1\0\1\4\3\0\3\4\1\314\24\4\27\0\2\4"+
469     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\7\4"+
470     "\1\315\20\4\27\0\2\4\3\0\11\4\1\0\1\4"+
471     "\1\0\1\4\3\0\1\316\6\4\1\317\20\4\27\0"+
472     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
473     "\1\4\1\320\26\4\27\0\2\4\3\0\11\4\1\0"+
474     "\1\4\1\0\1\4\3\0\3\4\1\321\24\4\27\0"+
475     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
476     "\1\322\27\4\27\0\2\4\3\0\11\4\1\0\1\4"+
477     "\1\0\1\4\3\0\6\4\1\323\4\4\1\324\14\4"+
478     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
479     "\3\0\5\4\1\325\22\4\27\0\2\4\3\0\11\4"+
480     "\1\0\1\4\1\0\1\4\3\0\11\4\1\326\16\4"+
481     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
482     "\3\0\13\4\1\327\14\4\27\0\2\4\3\0\11\4"+
483     "\1\0\1\4\1\0\1\4\3\0\1\330\27\4\27\0"+
484     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
485     "\25\4\1\331\2\4\27\0\2\4\3\0\11\4\1\0"+
486     "\1\4\1\0\1\4\3\0\6\4\1\332\21\4\27\0"+
487     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
488     "\14\4\1\333\13\4\27\0\2\4\3\0\11\4\1\0"+
489     "\1\4\1\0\1\4\3\0\5\4\1\334\22\4\27\0"+
490     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
491     "\20\4\1\335\7\4\27\0\2\4\3\0\11\4\1\0"+
492     "\1\4\1\0\1\4\3\0\6\4\1\336\21\4\25\0"+
493     "\4\171\1\337\1\256\76\171\5\257\1\340\76\257\7\0"+
494     "\3\261\1\0\1\261\1\0\3\261\1\0\1\261\1\0"+
495     "\1\72\6\0\3\261\3\0\2\261\5\0\1\261\3\0"+
496     "\1\72\32\0\2\4\3\0\11\4\1\0\1\4\1\0"+
497     "\1\4\3\0\7\4\1\341\20\4\27\0\2\4\3\0"+
498     "\11\4\1\0\1\4\1\0\1\4\3\0\26\4\1\342"+
499     "\1\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
500     "\1\4\3\0\1\4\1\343\26\4\27\0\2\4\3\0"+
501     "\11\4\1\0\1\4\1\0\1\4\3\0\10\4\1\344"+
502     "\17\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
503     "\1\4\3\0\3\4\1\345\24\4\27\0\2\4\3\0"+
504     "\11\4\1\0\1\4\1\0\1\4\3\0\1\346\27\4"+
505     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
506     "\3\0\6\4\1\347\21\4\27\0\2\4\3\0\11\4"+
507     "\1\0\1\4\1\0\1\4\3\0\1\4\1\350\26\4"+
508     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
509     "\3\0\1\4\1\351\26\4\27\0\2\4\3\0\11\4"+
510     "\1\0\1\4\1\0\1\4\3\0\12\4\1\352\15\4"+
511     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
512     "\3\0\17\4\1\353\10\4\27\0\2\4\3\0\11\4"+
513     "\1\0\1\4\1\0\1\4\3\0\1\4\1\354\26\4"+
514     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
515     "\3\0\16\4\1\355\11\4\27\0\2\4\3\0\11\4"+
516     "\1\0\1\4\1\0\1\4\3\0\1\356\27\4\27\0"+
517     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
518     "\12\4\1\357\15\4\27\0\2\4\3\0\11\4\1\0"+
519     "\1\4\1\0\1\4\3\0\25\4\1\360\2\4\27\0"+
520     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
521     "\14\4\1\361\13\4\27\0\2\4\3\0\11\4\1\0"+
522     "\1\4\1\0\1\4\3\0\3\4\1\362\24\4\27\0"+
523     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
524     "\16\4\1\363\11\4\27\0\2\4\3\0\11\4\1\0"+
525     "\1\4\1\0\1\4\3\0\7\4\1\364\20\4\27\0"+
526     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
527     "\17\4\1\365\10\4\27\0\2\4\3\0\11\4\1\0"+
528     "\1\4\1\0\1\4\3\0\1\366\27\4\27\0\2\4"+
529     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\4"+
530     "\1\367\26\4\27\0\2\4\3\0\11\4\1\0\1\4"+
531     "\1\0\1\4\3\0\5\4\1\370\22\4\27\0\2\4"+
532     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\3\4"+
533     "\1\371\24\4\27\0\2\4\3\0\11\4\1\0\1\4"+
534     "\1\0\1\4\3\0\1\4\1\372\26\4\27\0\2\4"+
535     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\2\4"+
536     "\1\373\25\4\27\0\2\4\3\0\11\4\1\0\1\4"+
537     "\1\0\1\4\3\0\6\4\1\374\21\4\27\0\2\4"+
538     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\3\4"+
539     "\1\375\24\4\27\0\2\4\3\0\11\4\1\0\1\4"+
540     "\1\0\1\4\3\0\5\4\1\376\22\4\27\0\2\4"+
541     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\17\4"+
542     "\1\377\10\4\27\0\2\4\3\0\11\4\1\0\1\4"+
543     "\1\0\1\4\3\0\5\4\1\u0100\22\4\27\0\2\4"+
544     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\u0101"+
545     "\27\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
546     "\1\4\3\0\3\4\1\u0102\24\4\25\0\4\257\1\260"+
547     "\1\340\76\257\2\0\2\4\3\0\11\4\1\0\1\4"+
548     "\1\0\1\4\3\0\17\4\1\u0103\10\4\27\0\2\4"+
549     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\7\4"+
550     "\1\u0104\20\4\27\0\2\4\3\0\11\4\1\0\1\4"+
551     "\1\0\1\4\3\0\10\4\1\u0105\17\4\27\0\2\4"+
552     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\20\4"+
553     "\1\u0106\7\4\27\0\2\4\3\0\11\4\1\0\1\4"+
554     "\1\0\1\4\3\0\6\4\1\u0107\21\4\27\0\2\4"+
555     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\u0108"+
556     "\27\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
557     "\1\4\3\0\5\4\1\u0109\22\4\27\0\2\4\3\0"+
558     "\11\4\1\0\1\4\1\0\1\4\3\0\1\u010a\27\4"+
559     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
560     "\3\0\12\4\1\u010b\15\4\27\0\2\4\3\0\11\4"+
561     "\1\0\1\4\1\0\1\4\3\0\1\4\1\u010c\26\4"+
562     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
563     "\3\0\16\4\1\u010d\11\4\27\0\2\4\3\0\11\4"+
564     "\1\0\1\4\1\0\1\4\3\0\3\4\1\u010e\24\4"+
565     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
566     "\3\0\5\4\1\u010f\22\4\27\0\2\4\3\0\11\4"+
567     "\1\0\1\4\1\0\1\4\3\0\10\4\1\u0110\17\4"+
568     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
569     "\3\0\4\4\1\u0111\23\4\27\0\2\4\3\0\11\4"+
570     "\1\0\1\4\1\0\1\4\3\0\10\4\1\u0112\17\4"+
571     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
572     "\3\0\21\4\1\u0113\6\4\27\0\2\4\3\0\11\4"+
573     "\1\0\1\4\1\0\1\4\3\0\1\u0114\27\4\27\0"+
574     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
575     "\6\4\1\u0115\21\4\27\0\2\4\3\0\11\4\1\0"+
576     "\1\4\1\0\1\4\3\0\3\4\1\u0116\24\4\27\0"+
577     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
578     "\12\4\1\u0117\15\4\27\0\2\4\3\0\11\4\1\0"+
579     "\1\4\1\0\1\4\3\0\1\u0118\27\4\27\0\2\4"+
580     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\12\4"+
581     "\1\u0119\15\4\27\0\2\4\3\0\11\4\1\0\1\4"+
582     "\1\0\1\4\3\0\23\4\1\u011a\4\4\27\0\2\4"+
583     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\17\4"+
584     "\1\u011b\10\4\27\0\2\4\3\0\11\4\1\0\1\4"+
585     "\1\0\1\4\3\0\3\4\1\u011c\24\4\27\0\2\4"+
586     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\7\4"+
587     "\1\u011d\20\4\27\0\2\4\3\0\11\4\1\0\1\4"+
588     "\1\0\1\4\3\0\15\4\1\u011e\12\4\27\0\2\4"+
589     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\12\4"+
590     "\1\u011f\15\4\27\0\2\4\3\0\11\4\1\0\1\4"+
591     "\1\0\1\4\3\0\4\4\1\u0120\23\4\27\0\2\4"+
592     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\13\4"+
593     "\1\u0121\14\4\27\0\2\4\3\0\11\4\1\0\1\4"+
594     "\1\0\1\4\3\0\10\4\1\u0122\17\4\27\0\2\4"+
595     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\2\4"+
596     "\1\u0123\25\4\27\0\2\4\3\0\11\4\1\0\1\4"+
597     "\1\0\1\4\3\0\5\4\1\u0124\22\4\27\0\2\4"+
598     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\12\4"+
599     "\1\u0125\15\4\27\0\2\4\3\0\11\4\1\0\1\4"+
600     "\1\0\1\4\3\0\3\4\1\u0126\24\4\27\0\2\4"+
601     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\u0127"+
602     "\27\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
603     "\1\4\3\0\1\u0128\27\4\27\0\2\4\3\0\11\4"+
604     "\1\0\1\4\1\0\1\4\3\0\3\4\1\u0129\24\4"+
605     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
606     "\3\0\3\4\1\u012a\24\4\27\0\2\4\3\0\11\4"+
607     "\1\0\1\4\1\0\1\4\3\0\6\4\1\u012b\21\4"+
608     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
609     "\3\0\10\4\1\u012c\17\4\27\0\2\4\3\0\11\4"+
610     "\1\0\1\4\1\0\1\4\3\0\1\u012d\27\4\27\0"+
611     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
612     "\24\4\1\u012e\3\4\27\0\2\4\3\0\11\4\1\0"+
613     "\1\4\1\0\1\4\3\0\10\4\1\u012f\17\4\27\0"+
614     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
615     "\3\4\1\u0130\24\4\27\0\2\4\3\0\11\4\1\0"+
616     "\1\4\1\0\1\4\3\0\12\4\1\u0131\15\4\27\0"+
617     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
618     "\3\4\1\u0132\24\4\27\0\2\4\3\0\11\4\1\0"+
619     "\1\4\1\0\1\4\3\0\10\4\1\u0133\17\4\27\0"+
620     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
621     "\3\4\1\u0134\24\4\27\0\2\4\3\0\11\4\1\0"+
622     "\1\4\1\0\1\4\3\0\3\4\1\u0135\24\4\27\0"+
623     "\2\4\3\0\11\4\1\0\1\4\1\0\1\4\3\0"+
624     "\1\u0136\27\4\27\0\2\4\3\0\11\4\1\0\1\4"+
625     "\1\0\1\4\3\0\17\4\1\u0137\10\4\27\0\2\4"+
626     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\3\4"+
627     "\1\u0138\24\4\27\0\2\4\3\0\11\4\1\0\1\4"+
628     "\1\0\1\4\3\0\13\4\1\u0139\14\4\27\0\2\4"+
629     "\3\0\11\4\1\0\1\4\1\0\1\4\3\0\1\u013a"+
630     "\27\4\27\0\2\4\3\0\11\4\1\0\1\4\1\0"+
631     "\1\4\3\0\20\4\1\u013b\7\4\27\0\2\4\3\0"+
632     "\11\4\1\0\1\4\1\0\1\4\3\0\27\4\1\u013c"+
633     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
634     "\3\0\4\4\1\u013d\23\4\27\0\2\4\3\0\11\4"+
635     "\1\0\1\4\1\0\1\4\3\0\7\4\1\u013e\20\4"+
636     "\27\0\2\4\3\0\11\4\1\0\1\4\1\0\1\4"+
637     "\3\0\3\4\1\u013f\24\4\27\0\2\4\3\0\11\4"+
638     "\1\0\1\4\1\0\1\4\3\0\20\4\1\u0140\7\4"+
639     "\25\0";
640
641   private static int [] zzUnpackTrans() {
642     int [] result = new int[15844];
643     int offset = 0;
644     offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
645     return result;
646   }
647
648   private static int zzUnpackTrans(String packed, int offset, int [] result) {
649     int i = 0;       /* index in packed string  */
650     int j = offset;  /* index in unpacked array */
651     int l = packed.length();
652     while (i < l) {
653       int count = packed.charAt(i++);
654       int value = packed.charAt(i++);
655       value--;
656       do result[j++] = value; while (--count > 0);
657     }
658     return j;
659   }
660
661
662   /* error codes */
663   private static final int ZZ_UNKNOWN_ERROR = 0;
664   private static final int ZZ_NO_MATCH = 1;
665   private static final int ZZ_PUSHBACK_2BIG = 2;
666
667   /* error messages for the codes above */
668   private static final String[] ZZ_ERROR_MSG = {
669     "Unknown internal scanner error",
670     "Error: could not match input",
671     "Error: pushback value was too large"
672   };
673
674   /**
675    * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
676    */
677   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
678
679   private static final String ZZ_ATTRIBUTE_PACKED_0 =
680     "\1\0\1\11\37\1\1\11\3\1\12\11\1\1\1\11"+
681     "\2\1\5\11\4\1\1\0\3\11\1\1\1\11\1\1"+
682     "\1\11\47\1\7\11\1\1\5\11\4\1\1\0\1\11"+
683     "\56\1\1\11\1\0\1\1\1\11\1\0\55\1\1\11"+
684     "\1\0\140\1";
685
686   private static int [] zzUnpackAttribute() {
687     int [] result = new int[320];
688     int offset = 0;
689     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
690     return result;
691   }
692
693   private static int zzUnpackAttribute(String packed, int offset, int [] result) {
694     int i = 0;       /* index in packed string  */
695     int j = offset;  /* index in unpacked array */
696     int l = packed.length();
697     while (i < l) {
698       int count = packed.charAt(i++);
699       int value = packed.charAt(i++);
700       do result[j++] = value; while (--count > 0);
701     }
702     return j;
703   }
704
705   /** the input device */
706   private java.io.Reader zzReader;
707
708   /** the current state of the DFA */
709   private int zzState;
710
711   /** the current lexical state */
712   private int zzLexicalState = YYINITIAL;
713
714   /** this buffer contains the current text to be matched and is
715       the source of the yytext() string */
716   private CharSequence zzBuffer = "";
717
718   /** the textposition at the last accepting state */
719   private int zzMarkedPos;
720
721   /** the current text position in the buffer */
722   private int zzCurrentPos;
723
724   /** startRead marks the beginning of the yytext() string in the buffer */
725   private int zzStartRead;
726
727   /** endRead marks the last character in the buffer, that has been read
728       from input */
729   private int zzEndRead;
730
731   /**
732    * zzAtBOL == true <=> the scanner is currently at the beginning of a line
733    */
734   private boolean zzAtBOL = true;
735
736   /** zzAtEOF == true <=> the scanner is at the EOF */
737   private boolean zzAtEOF;
738
739   /** denotes if the user-EOF-code has already been executed */
740   private boolean zzEOFDone;
741
742   /* user code: */
743   private boolean myAssertKeyword;
744   private boolean myEnumKeyword;
745
746   public _JavaLexer(LanguageLevel level) {
747     this((java.io.Reader)null);
748     myAssertKeyword = level.isAtLeast(LanguageLevel.JDK_1_4);
749     myEnumKeyword = level.isAtLeast(LanguageLevel.JDK_1_5);
750   }
751
752   public void goTo(int offset) {
753     zzCurrentPos = zzMarkedPos = zzStartRead = offset;
754     zzAtEOF = false;
755   }
756
757
758   /**
759    * Creates a new scanner
760    *
761    * @param   in  the java.io.Reader to read input from.
762    */
763   _JavaLexer(java.io.Reader in) {
764     this.zzReader = in;
765   }
766
767
768   /** 
769    * Unpacks the compressed character translation table.
770    *
771    * @param packed   the packed character translation table
772    * @return         the unpacked character translation table
773    */
774   private static char [] zzUnpackCMap(String packed) {
775     int size = 0;
776     for (int i = 0, length = packed.length(); i < length; i += 2) {
777       size += packed.charAt(i);
778     }
779     char[] map = new char[size];
780     int i = 0;  /* index in packed string  */
781     int j = 0;  /* index in unpacked array */
782     while (i < packed.length()) {
783       int  count = packed.charAt(i++);
784       char value = packed.charAt(i++);
785       do map[j++] = value; while (--count > 0);
786     }
787     return map;
788   }
789
790   public final int getTokenStart() {
791     return zzStartRead;
792   }
793
794   public final int getTokenEnd() {
795     return getTokenStart() + yylength();
796   }
797
798   public void reset(CharSequence buffer, int start, int end, int initialState) {
799     zzBuffer = buffer;
800     zzCurrentPos = zzMarkedPos = zzStartRead = start;
801     zzAtEOF  = false;
802     zzAtBOL = true;
803     zzEndRead = end;
804     yybegin(initialState);
805   }
806
807   /**
808    * Refills the input buffer.
809    *
810    * @return      <code>false</code>, iff there was new input.
811    *
812    * @exception   java.io.IOException  if any I/O-Error occurs
813    */
814   private boolean zzRefill() throws java.io.IOException {
815     return true;
816   }
817
818
819   /**
820    * Returns the current lexical state.
821    */
822   public final int yystate() {
823     return zzLexicalState;
824   }
825
826
827   /**
828    * Enters a new lexical state
829    *
830    * @param newState the new lexical state
831    */
832   public final void yybegin(int newState) {
833     zzLexicalState = newState;
834   }
835
836
837   /**
838    * Returns the text matched by the current regular expression.
839    */
840   public final CharSequence yytext() {
841     return zzBuffer.subSequence(zzStartRead, zzMarkedPos);
842   }
843
844
845   /**
846    * Returns the character at position <tt>pos</tt> from the
847    * matched text.
848    *
849    * It is equivalent to yytext().charAt(pos), but faster
850    *
851    * @param pos the position of the character to fetch.
852    *            A value from 0 to yylength()-1.
853    *
854    * @return the character at position pos
855    */
856   public final char yycharat(int pos) {
857     return zzBuffer.charAt(zzStartRead+pos);
858   }
859
860
861   /**
862    * Returns the length of the matched text region.
863    */
864   public final int yylength() {
865     return zzMarkedPos-zzStartRead;
866   }
867
868
869   /**
870    * Reports an error that occured while scanning.
871    *
872    * In a wellformed scanner (no or only correct usage of
873    * yypushback(int) and a match-all fallback rule) this method
874    * will only be called with things that "Can't Possibly Happen".
875    * If this method is called, something is seriously wrong
876    * (e.g. a JFlex bug producing a faulty scanner etc.).
877    *
878    * Usual syntax/scanner level error handling should be done
879    * in error fallback rules.
880    *
881    * @param   errorCode  the code of the errormessage to display
882    */
883   private void zzScanError(int errorCode) {
884     String message;
885     try {
886       message = ZZ_ERROR_MSG[errorCode];
887     }
888     catch (ArrayIndexOutOfBoundsException e) {
889       message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
890     }
891
892     throw new Error(message);
893   }
894
895
896   /**
897    * Pushes the specified amount of characters back into the input stream.
898    *
899    * They will be read again by then next call of the scanning method
900    *
901    * @param number  the number of characters to be read again.
902    *                This number must not be greater than yylength()!
903    */
904   public void yypushback(int number)  {
905     if ( number > yylength() )
906       zzScanError(ZZ_PUSHBACK_2BIG);
907
908     zzMarkedPos -= number;
909   }
910
911
912   /**
913    * Resumes scanning until the next regular expression is matched,
914    * the end of input is encountered or an I/O-Error occurs.
915    *
916    * @return      the next token
917    * @exception   java.io.IOException  if any I/O-Error occurs
918    */
919   public IElementType advance() throws java.io.IOException {
920     int zzInput;
921     int zzAction;
922
923     // cached fields:
924     int zzCurrentPosL;
925     int zzMarkedPosL;
926     int zzEndReadL = zzEndRead;
927     CharSequence zzBufferL = zzBuffer;
928
929     int [] zzTransL = ZZ_TRANS;
930     int [] zzRowMapL = ZZ_ROWMAP;
931     int [] zzAttrL = ZZ_ATTRIBUTE;
932
933     while (true) {
934       zzMarkedPosL = zzMarkedPos;
935
936       zzAction = -1;
937
938       zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
939
940       zzState = ZZ_LEXSTATE[zzLexicalState];
941
942       // set up zzAction for empty match case:
943       int zzAttributes = zzAttrL[zzState];
944       if ( (zzAttributes & 1) == 1 ) {
945         zzAction = zzState;
946       }
947
948
949       zzForAction: {
950         while (true) {
951
952           if (zzCurrentPosL < zzEndReadL) {
953             zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/);
954             zzCurrentPosL += Character.charCount(zzInput);
955           }
956           else if (zzAtEOF) {
957             zzInput = YYEOF;
958             break zzForAction;
959           }
960           else {
961             // store back cached positions
962             zzCurrentPos  = zzCurrentPosL;
963             zzMarkedPos   = zzMarkedPosL;
964             boolean eof = zzRefill();
965             // get translated positions and possibly new buffer
966             zzCurrentPosL  = zzCurrentPos;
967             zzMarkedPosL   = zzMarkedPos;
968             zzBufferL      = zzBuffer;
969             zzEndReadL     = zzEndRead;
970             if (eof) {
971               zzInput = YYEOF;
972               break zzForAction;
973             }
974             else {
975               zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/);
976               zzCurrentPosL += Character.charCount(zzInput);
977             }
978           }
979           int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ];
980           if (zzNext == -1) break zzForAction;
981           zzState = zzNext;
982
983           zzAttributes = zzAttrL[zzState];
984           if ( (zzAttributes & 1) == 1 ) {
985             zzAction = zzState;
986             zzMarkedPosL = zzCurrentPosL;
987             if ( (zzAttributes & 8) == 8 ) break zzForAction;
988           }
989
990         }
991       }
992
993       // store back cached position
994       zzMarkedPos = zzMarkedPosL;
995
996       if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
997         zzAtEOF = true;
998         return null;
999       }
1000       else {
1001         switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
1002           case 1: 
1003             { return JavaTokenType.BAD_CHARACTER;
1004             }
1005           case 111: break;
1006           case 2: 
1007             { return JavaTokenType.WHITE_SPACE;
1008             }
1009           case 112: break;
1010           case 3: 
1011             { return JavaTokenType.IDENTIFIER;
1012             }
1013           case 113: break;
1014           case 4: 
1015             { return JavaTokenType.DIV;
1016             }
1017           case 114: break;
1018           case 5: 
1019             { return JavaTokenType.ASTERISK;
1020             }
1021           case 115: break;
1022           case 6: 
1023             { return JavaTokenType.INTEGER_LITERAL;
1024             }
1025           case 116: break;
1026           case 7: 
1027             { return JavaTokenType.DOT;
1028             }
1029           case 117: break;
1030           case 8: 
1031             { return JavaTokenType.MINUS;
1032             }
1033           case 118: break;
1034           case 9: 
1035             { return JavaTokenType.CHARACTER_LITERAL;
1036             }
1037           case 119: break;
1038           case 10: 
1039             { return JavaTokenType.STRING_LITERAL;
1040             }
1041           case 120: break;
1042           case 11: 
1043             { return JavaTokenType.EQ;
1044             }
1045           case 121: break;
1046           case 12: 
1047             { return JavaTokenType.EXCL;
1048             }
1049           case 122: break;
1050           case 13: 
1051             { return JavaTokenType.OR;
1052             }
1053           case 123: break;
1054           case 14: 
1055             { return JavaTokenType.PLUS;
1056             }
1057           case 124: break;
1058           case 15: 
1059             { return JavaTokenType.LT;
1060             }
1061           case 125: break;
1062           case 16: 
1063             { return JavaTokenType.GT;
1064             }
1065           case 126: break;
1066           case 17: 
1067             { return JavaTokenType.AND;
1068             }
1069           case 127: break;
1070           case 18: 
1071             { return JavaTokenType.XOR;
1072             }
1073           case 128: break;
1074           case 19: 
1075             { return JavaTokenType.PERC;
1076             }
1077           case 129: break;
1078           case 20: 
1079             { return JavaTokenType.LPARENTH;
1080             }
1081           case 130: break;
1082           case 21: 
1083             { return JavaTokenType.RPARENTH;
1084             }
1085           case 131: break;
1086           case 22: 
1087             { return JavaTokenType.LBRACE;
1088             }
1089           case 132: break;
1090           case 23: 
1091             { return JavaTokenType.RBRACE;
1092             }
1093           case 133: break;
1094           case 24: 
1095             { return JavaTokenType.LBRACKET;
1096             }
1097           case 134: break;
1098           case 25: 
1099             { return JavaTokenType.RBRACKET;
1100             }
1101           case 135: break;
1102           case 26: 
1103             { return JavaTokenType.SEMICOLON;
1104             }
1105           case 136: break;
1106           case 27: 
1107             { return JavaTokenType.COMMA;
1108             }
1109           case 137: break;
1110           case 28: 
1111             { return JavaTokenType.TILDE;
1112             }
1113           case 138: break;
1114           case 29: 
1115             { return JavaTokenType.QUEST;
1116             }
1117           case 139: break;
1118           case 30: 
1119             { return JavaTokenType.COLON;
1120             }
1121           case 140: break;
1122           case 31: 
1123             { return JavaTokenType.AT;
1124             }
1125           case 141: break;
1126           case 32: 
1127             { return JavaTokenType.END_OF_LINE_COMMENT;
1128             }
1129           case 142: break;
1130           case 33: 
1131             { return JavaTokenType.C_STYLE_COMMENT;
1132             }
1133           case 143: break;
1134           case 34: 
1135             { return JavaTokenType.DIVEQ;
1136             }
1137           case 144: break;
1138           case 35: 
1139             { return JavaTokenType.ASTERISKEQ;
1140             }
1141           case 145: break;
1142           case 36: 
1143             { return JavaTokenType.LONG_LITERAL;
1144             }
1145           case 146: break;
1146           case 37: 
1147             { return JavaTokenType.FLOAT_LITERAL;
1148             }
1149           case 147: break;
1150           case 38: 
1151             { return JavaTokenType.DOUBLE_LITERAL;
1152             }
1153           case 148: break;
1154           case 39: 
1155             { return JavaTokenType.MINUSMINUS;
1156             }
1157           case 149: break;
1158           case 40: 
1159             { return JavaTokenType.MINUSEQ;
1160             }
1161           case 150: break;
1162           case 41: 
1163             { return JavaTokenType.ARROW;
1164             }
1165           case 151: break;
1166           case 42: 
1167             { return JavaTokenType.IF_KEYWORD;
1168             }
1169           case 152: break;
1170           case 43: 
1171             { return JavaTokenType.DO_KEYWORD;
1172             }
1173           case 153: break;
1174           case 44: 
1175             { return JavaTokenType.EQEQ;
1176             }
1177           case 154: break;
1178           case 45: 
1179             { return JavaTokenType.NE;
1180             }
1181           case 155: break;
1182           case 46: 
1183             { return JavaTokenType.OREQ;
1184             }
1185           case 156: break;
1186           case 47: 
1187             { return JavaTokenType.OROR;
1188             }
1189           case 157: break;
1190           case 48: 
1191             { return JavaTokenType.PLUSEQ;
1192             }
1193           case 158: break;
1194           case 49: 
1195             { return JavaTokenType.PLUSPLUS;
1196             }
1197           case 159: break;
1198           case 50: 
1199             { return JavaTokenType.LE;
1200             }
1201           case 160: break;
1202           case 51: 
1203             { return JavaTokenType.LTLT;
1204             }
1205           case 161: break;
1206           case 52: 
1207             { return JavaTokenType.ANDEQ;
1208             }
1209           case 162: break;
1210           case 53: 
1211             { return JavaTokenType.ANDAND;
1212             }
1213           case 163: break;
1214           case 54: 
1215             { return JavaTokenType.XOREQ;
1216             }
1217           case 164: break;
1218           case 55: 
1219             { return JavaTokenType.PERCEQ;
1220             }
1221           case 165: break;
1222           case 56: 
1223             { return JavaTokenType.DOUBLE_COLON;
1224             }
1225           case 166: break;
1226           case 57: 
1227             { return JavaDocElementType.DOC_COMMENT;
1228             }
1229           case 167: break;
1230           case 58: 
1231             { return JavaTokenType.ELLIPSIS;
1232             }
1233           case 168: break;
1234           case 59: 
1235             { return JavaTokenType.TRY_KEYWORD;
1236             }
1237           case 169: break;
1238           case 60: 
1239             { return JavaTokenType.FOR_KEYWORD;
1240             }
1241           case 170: break;
1242           case 61: 
1243             { return JavaTokenType.NEW_KEYWORD;
1244             }
1245           case 171: break;
1246           case 62: 
1247             { return JavaTokenType.INT_KEYWORD;
1248             }
1249           case 172: break;
1250           case 63: 
1251             { return JavaTokenType.LTLTEQ;
1252             }
1253           case 173: break;
1254           case 64: 
1255             { return JavaTokenType.TRUE_KEYWORD;
1256             }
1257           case 174: break;
1258           case 65: 
1259             { return JavaTokenType.THIS_KEYWORD;
1260             }
1261           case 175: break;
1262           case 66: 
1263             { return JavaTokenType.ELSE_KEYWORD;
1264             }
1265           case 176: break;
1266           case 67: 
1267             { return myEnumKeyword ? JavaTokenType.ENUM_KEYWORD : JavaTokenType.IDENTIFIER;
1268             }
1269           case 177: break;
1270           case 68: 
1271             { return JavaTokenType.LONG_KEYWORD;
1272             }
1273           case 178: break;
1274           case 69: 
1275             { return JavaTokenType.NULL_KEYWORD;
1276             }
1277           case 179: break;
1278           case 70: 
1279             { return JavaTokenType.BYTE_KEYWORD;
1280             }
1281           case 180: break;
1282           case 71: 
1283             { return JavaTokenType.CASE_KEYWORD;
1284             }
1285           case 181: break;
1286           case 72: 
1287             { return JavaTokenType.CHAR_KEYWORD;
1288             }
1289           case 182: break;
1290           case 73: 
1291             { return JavaTokenType.GOTO_KEYWORD;
1292             }
1293           case 183: break;
1294           case 74: 
1295             { return JavaTokenType.VOID_KEYWORD;
1296             }
1297           case 184: break;
1298           case 75: 
1299             { return JavaTokenType.THROW_KEYWORD;
1300             }
1301           case 185: break;
1302           case 76: 
1303             { return JavaTokenType.FALSE_KEYWORD;
1304             }
1305           case 186: break;
1306           case 77: 
1307             { return JavaTokenType.FLOAT_KEYWORD;
1308             }
1309           case 187: break;
1310           case 78: 
1311             { return JavaTokenType.FINAL_KEYWORD;
1312             }
1313           case 188: break;
1314           case 79: 
1315             { return JavaTokenType.SUPER_KEYWORD;
1316             }
1317           case 189: break;
1318           case 80: 
1319             { return JavaTokenType.SHORT_KEYWORD;
1320             }
1321           case 190: break;
1322           case 81: 
1323             { return JavaTokenType.BREAK_KEYWORD;
1324             }
1325           case 191: break;
1326           case 82: 
1327             { return JavaTokenType.CATCH_KEYWORD;
1328             }
1329           case 192: break;
1330           case 83: 
1331             { return JavaTokenType.CLASS_KEYWORD;
1332             }
1333           case 193: break;
1334           case 84: 
1335             { return JavaTokenType.CONST_KEYWORD;
1336             }
1337           case 194: break;
1338           case 85: 
1339             { return JavaTokenType.WHILE_KEYWORD;
1340             }
1341           case 195: break;
1342           case 86: 
1343             { return JavaTokenType.THROWS_KEYWORD;
1344             }
1345           case 196: break;
1346           case 87: 
1347             { return JavaTokenType.RETURN_KEYWORD;
1348             }
1349           case 197: break;
1350           case 88: 
1351             { return myAssertKeyword ? JavaTokenType.ASSERT_KEYWORD : JavaTokenType.IDENTIFIER;
1352             }
1353           case 198: break;
1354           case 89: 
1355             { return JavaTokenType.STATIC_KEYWORD;
1356             }
1357           case 199: break;
1358           case 90: 
1359             { return JavaTokenType.SWITCH_KEYWORD;
1360             }
1361           case 200: break;
1362           case 91: 
1363             { return JavaTokenType.NATIVE_KEYWORD;
1364             }
1365           case 201: break;
1366           case 92: 
1367             { return JavaTokenType.IMPORT_KEYWORD;
1368             }
1369           case 202: break;
1370           case 93: 
1371             { return JavaTokenType.DOUBLE_KEYWORD;
1372             }
1373           case 203: break;
1374           case 94: 
1375             { return JavaTokenType.PUBLIC_KEYWORD;
1376             }
1377           case 204: break;
1378           case 95: 
1379             { return JavaTokenType.EXTENDS_KEYWORD;
1380             }
1381           case 205: break;
1382           case 96: 
1383             { return JavaTokenType.FINALLY_KEYWORD;
1384             }
1385           case 206: break;
1386           case 97: 
1387             { return JavaTokenType.BOOLEAN_KEYWORD;
1388             }
1389           case 207: break;
1390           case 98: 
1391             { return JavaTokenType.DEFAULT_KEYWORD;
1392             }
1393           case 208: break;
1394           case 99: 
1395             { return JavaTokenType.PRIVATE_KEYWORD;
1396             }
1397           case 209: break;
1398           case 100: 
1399             { return JavaTokenType.PACKAGE_KEYWORD;
1400             }
1401           case 210: break;
1402           case 101: 
1403             { return JavaTokenType.ABSTRACT_KEYWORD;
1404             }
1405           case 211: break;
1406           case 102: 
1407             { return JavaTokenType.STRICTFP_KEYWORD;
1408             }
1409           case 212: break;
1410           case 103: 
1411             { return JavaTokenType.CONTINUE_KEYWORD;
1412             }
1413           case 213: break;
1414           case 104: 
1415             { return JavaTokenType.VOLATILE_KEYWORD;
1416             }
1417           case 214: break;
1418           case 105: 
1419             { return JavaTokenType.TRANSIENT_KEYWORD;
1420             }
1421           case 215: break;
1422           case 106: 
1423             { return JavaTokenType.INTERFACE_KEYWORD;
1424             }
1425           case 216: break;
1426           case 107: 
1427             { return JavaTokenType.PROTECTED_KEYWORD;
1428             }
1429           case 217: break;
1430           case 108: 
1431             { return JavaTokenType.INSTANCEOF_KEYWORD;
1432             }
1433           case 218: break;
1434           case 109: 
1435             { return JavaTokenType.IMPLEMENTS_KEYWORD;
1436             }
1437           case 219: break;
1438           case 110: 
1439             { return JavaTokenType.SYNCHRONIZED_KEYWORD;
1440             }
1441           case 220: break;
1442           default:
1443             zzScanError(ZZ_NO_MATCH);
1444           }
1445       }
1446     }
1447   }
1448
1449
1450 }