1 /* The following code was generated by JFlex 1.4.1 on 22.10.09 18:04 */
4 * Copyright 2000-2007 JetBrains s.r.o.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 package org
.jetbrains
.plugins
.groovy
.lang
.lexer
;
20 import com
.intellij
.lexer
.FlexLexer
;
21 import com
.intellij
.psi
.tree
.IElementType
;
23 import java
.util
.Stack
;
27 * This class is a scanner generated by
28 * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
29 * on 22.10.09 18:04 from the specification file
30 * <tt>groovy.flex</tt>
32 public class _GroovyLexer
implements FlexLexer
, GroovyTokenTypes
{
33 /** initial size of the lookahead buffer */
34 private static final int ZZ_BUFFERSIZE
= 16384;
37 public static final int KING_STATE
= 10;
38 public static final int IN_TRIPLE_DOT
= 8;
39 public static final int KING_STATE_INNER
= 11;
40 public static final int IN_TRIPLE_GSTRING
= 4;
41 public static final int IN_SINGLE_GSTRING
= 3;
42 public static final int IN_REGEX_DOLLAR
= 16;
43 public static final int NLS_AFTER_COMMENT
= 20;
44 public static final int KING_STATE_INNER_CONTENT
= 13;
45 public static final int IN_TRIPLE_IDENT
= 7;
46 public static final int IN_TRIPLE_GSTRING_DOLLAR
= 2;
47 public static final int IN_SINGLE_DOT
= 6;
48 public static final int IN_REGEX_DOT
= 19;
49 public static final int NLS_AFTER_LBRACE
= 21;
50 public static final int IN_TRIPLE_NLS
= 9;
51 public static final int NLS_AFTER_NLS
= 22;
52 public static final int IN_REGEX_IDENT
= 18;
53 public static final int IN_SINGLE_IDENT
= 5;
54 public static final int KING_STATE_CONTENT
= 12;
55 public static final int IN_REGEX
= 17;
56 public static final int WAIT_FOR_REGEX
= 15;
57 public static final int IN_INNER_BLOCK
= 14;
58 public static final int IN_SINGLE_GSTRING_DOLLAR
= 1;
59 public static final int BRACE_COUNT
= 23;
60 public static final int YYINITIAL
= 0;
63 * Translates characters to character classes
65 private static final String ZZ_CMAP_PACKED
=
66 "\11\0\1\3\1\2\1\0\1\3\1\1\22\0\1\3\1\10\1\43"+
67 "\1\7\1\36\1\64\1\67\1\44\1\53\1\54\1\6\1\27\1\60"+
68 "\1\30\1\34\1\5\1\31\2\12\1\12\1\12\2\12\1\12\2\12"+
69 "\1\57\1\70\1\61\1\52\1\62\1\51\1\71\3\11\1\24\1\26"+
70 "\1\16\1\14\1\35\1\22\2\35\1\20\13\35\1\33\2\35\1\55"+
71 "\1\4\1\56\1\65\1\35\1\0\1\73\1\42\1\74\1\23\1\25"+
72 "\1\15\1\13\1\103\1\21\1\35\1\75\1\17\1\77\1\37\1\100"+
73 "\1\72\1\35\1\40\1\76\1\41\1\45\1\101\1\105\1\32\1\102"+
74 "\1\104\1\46\1\66\1\47\1\63\43\0\4\50\4\0\1\35\12\0"+
75 "\1\35\4\0\1\35\5\0\27\35\1\0\37\35\1\0\u013f\35\31\0"+
76 "\162\35\4\0\14\35\16\0\5\35\11\0\1\35\213\0\1\35\13\0"+
77 "\1\35\1\0\3\35\1\0\1\35\1\0\24\35\1\0\54\35\1\0"+
78 "\46\35\1\0\5\35\4\0\202\35\10\0\105\35\1\0\46\35\2\0"+
79 "\2\35\6\0\20\35\41\0\46\35\2\0\1\35\7\0\47\35\110\0"+
80 "\33\35\5\0\3\35\56\0\32\35\5\0\13\35\43\0\2\35\1\0"+
81 "\143\35\1\0\1\35\17\0\2\35\7\0\2\35\12\0\3\35\2\0"+
82 "\1\35\20\0\1\35\1\0\36\35\35\0\3\35\60\0\46\35\13\0"+
83 "\1\35\u0152\0\66\35\3\0\1\35\22\0\1\35\7\0\12\35\43\0"+
84 "\10\35\2\0\2\35\2\0\26\35\1\0\7\35\1\0\1\35\3\0"+
85 "\4\35\3\0\1\35\36\0\2\35\1\0\3\35\16\0\2\35\2\50"+
86 "\21\0\6\35\4\0\2\35\2\0\26\35\1\0\7\35\1\0\2\35"+
87 "\1\0\2\35\1\0\2\35\37\0\4\35\1\0\1\35\23\0\3\35"+
88 "\20\0\11\35\1\0\3\35\1\0\26\35\1\0\7\35\1\0\2\35"+
89 "\1\0\5\35\3\0\1\35\22\0\1\35\17\0\2\35\17\0\1\50"+
90 "\23\0\10\35\2\0\2\35\2\0\26\35\1\0\7\35\1\0\2\35"+
91 "\1\0\5\35\3\0\1\35\36\0\2\35\1\0\3\35\17\0\1\35"+
92 "\21\0\1\35\1\0\6\35\3\0\3\35\1\0\4\35\3\0\2\35"+
93 "\1\0\1\35\1\0\2\35\3\0\2\35\3\0\3\35\3\0\10\35"+
94 "\1\0\3\35\77\0\1\50\13\0\10\35\1\0\3\35\1\0\27\35"+
95 "\1\0\12\35\1\0\5\35\46\0\2\35\43\0\10\35\1\0\3\35"+
96 "\1\0\27\35\1\0\12\35\1\0\5\35\3\0\1\35\40\0\1\35"+
97 "\1\0\2\35\43\0\10\35\1\0\3\35\1\0\27\35\1\0\20\35"+
98 "\46\0\2\35\43\0\22\35\3\0\30\35\1\0\11\35\1\0\1\35"+
99 "\2\0\7\35\72\0\60\35\1\0\2\35\13\0\1\50\7\35\72\0"+
100 "\2\35\1\0\1\35\2\0\2\35\1\0\1\35\2\0\1\35\6\0"+
101 "\4\35\1\0\7\35\1\0\3\35\1\0\1\35\1\0\1\35\2\0"+
102 "\2\35\1\0\4\35\1\0\2\35\11\0\1\35\2\0\5\35\1\0"+
103 "\1\35\25\0\2\35\42\0\1\35\77\0\10\35\1\0\42\35\35\0"+
104 "\4\35\164\0\42\35\1\0\5\35\1\0\2\35\45\0\6\35\112\0"+
105 "\46\35\12\0\51\35\7\0\132\35\5\0\104\35\5\0\122\35\6\0"+
106 "\7\35\1\0\77\35\1\0\1\35\1\0\4\35\2\0\7\35\1\0"+
107 "\1\35\1\0\4\35\2\0\47\35\1\0\1\35\1\0\4\35\2\0"+
108 "\37\35\1\0\1\35\1\0\4\35\2\0\7\35\1\0\1\35\1\0"+
109 "\4\35\2\0\7\35\1\0\7\35\1\0\27\35\1\0\37\35\1\0"+
110 "\1\35\1\0\4\35\2\0\7\35\1\0\47\35\1\0\23\35\105\0"+
111 "\125\35\14\0\u026c\35\2\0\10\35\12\0\32\35\5\0\113\35\3\0"+
112 "\3\50\17\0\15\35\1\0\4\35\16\0\22\35\16\0\22\35\16\0"+
113 "\15\35\1\0\3\35\17\0\64\35\43\0\1\35\3\0\1\50\1\35"+
114 "\103\0\130\35\10\0\51\35\127\0\35\35\63\0\36\35\2\0\5\35"+
115 "\u038b\0\154\35\224\0\234\35\4\0\132\35\6\0\26\35\2\0\6\35"+
116 "\2\0\46\35\2\0\6\35\2\0\10\35\1\0\1\35\1\0\1\35"+
117 "\1\0\1\35\1\0\37\35\2\0\65\35\1\0\7\35\1\0\1\35"+
118 "\3\0\3\35\1\0\7\35\3\0\4\35\2\0\6\35\4\0\15\35"+
119 "\5\0\3\35\1\0\7\35\102\0\2\50\23\0\1\50\34\0\1\35"+
120 "\15\0\1\35\40\0\22\50\120\0\1\35\4\0\1\35\2\0\12\35"+
121 "\1\0\1\35\3\0\5\35\6\0\1\35\1\0\1\35\1\0\1\35"+
122 "\1\0\4\35\1\0\3\35\1\0\7\35\3\0\3\35\5\0\5\35"+
123 "\26\0\44\50\u0e81\0\2\35\1\50\31\0\11\50\7\0\5\35\2\0"+
124 "\3\50\2\35\4\0\126\35\6\0\3\35\1\0\132\35\1\50\4\35"+
125 "\5\0\50\35\4\0\136\35\21\0\30\35\70\0\20\35\u0200\0\u19b6\35"+
126 "\112\0\u51a6\35\132\0\u048d\35\u0773\0\u2ba4\35\u215c\0\u012e\35\2\0\73\35"+
127 "\225\0\7\35\14\0\5\35\5\0\1\35\1\0\12\35\1\0\15\35"+
128 "\1\0\5\35\1\0\1\35\1\0\2\35\1\0\2\35\1\0\154\35"+
129 "\41\0\u016b\35\22\0\100\35\2\0\66\35\50\0\14\35\1\50\66\0"+
130 "\2\50\30\0\3\50\31\0\1\50\6\0\5\35\1\0\207\35\7\0"+
131 "\1\50\34\0\32\35\4\0\1\50\1\0\32\35\12\0\1\50\131\35"+
132 "\3\0\6\35\2\0\6\35\2\0\6\35\2\0\3\35\3\0\2\50"+
136 * Translates characters to character classes
138 private static final char [] ZZ_CMAP
= zzUnpackCMap(ZZ_CMAP_PACKED
);
141 * Translates DFA states to action switch labels.
143 private static final int [] ZZ_ACTION
= zzUnpackAction();
145 private static final String ZZ_ACTION_PACKED_0
=
146 "\21\0\1\1\6\0\1\2\1\3\1\4\1\2\1\5"+
147 "\1\6\1\2\1\7\1\10\1\11\5\10\1\12\1\13"+
148 "\1\11\1\14\1\15\4\10\1\16\1\17\1\20\1\21"+
149 "\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
150 "\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41"+
151 "\1\42\6\10\1\43\1\44\1\45\1\46\1\47\1\50"+
152 "\1\51\1\52\1\51\1\53\1\54\2\51\1\55\1\51"+
153 "\1\43\1\46\1\56\1\57\2\60\2\61\3\62\1\63"+
154 "\1\64\2\65\3\66\1\67\1\70\1\71\1\72\1\73"+
155 "\1\72\1\74\1\1\1\75\1\76\1\77\2\1\1\100"+
156 "\1\67\2\101\1\102\1\4\2\102\2\103\2\104\1\0"+
157 "\1\4\1\105\1\106\1\107\1\110\1\111\1\112\1\113"+
158 "\1\114\1\115\1\116\1\117\1\11\1\120\2\0\5\10"+
159 "\1\121\1\122\6\10\1\123\1\124\1\125\1\126\1\127"+
160 "\1\0\1\130\1\131\11\10\2\0\1\132\1\17\1\0"+
161 "\1\17\1\133\1\134\1\135\1\136\1\137\1\0\1\140"+
162 "\1\0\1\141\1\142\1\143\1\144\1\145\1\146\4\10"+
163 "\1\147\13\10\1\0\2\51\1\150\1\151\3\0\1\73"+
164 "\1\74\1\0\1\74\1\106\1\64\2\0\1\1\1\100"+
165 "\1\67\1\152\1\0\1\106\1\153\1\154\1\155\1\0"+
166 "\1\155\3\10\1\156\1\10\1\157\2\10\1\160\4\10"+
167 "\1\11\1\161\1\162\1\163\5\10\1\164\5\10\1\132"+
168 "\1\165\2\17\1\166\1\167\1\170\1\171\1\0\24\10"+
169 "\1\51\1\172\1\173\1\0\1\74\1\173\1\64\2\106"+
170 "\1\153\1\106\2\153\1\155\3\10\1\174\6\10\1\175"+
171 "\1\10\1\176\1\11\1\177\2\10\1\200\1\10\1\201"+
172 "\3\10\1\202\3\0\1\17\1\0\1\203\10\10\1\204"+
173 "\1\10\1\205\7\10\1\206\1\10\1\51\1\0\1\64"+
174 "\2\106\2\153\1\106\1\0\1\153\1\207\1\210\1\211"+
175 "\12\10\1\212\1\213\1\10\2\0\1\17\1\0\6\10"+
176 "\1\214\1\215\3\10\1\216\1\10\1\217\2\10\1\220"+
177 "\1\74\2\153\1\0\4\10\1\221\1\10\1\222\1\10"+
178 "\1\223\1\224\1\10\1\225\1\10\2\0\2\10\1\226"+
179 "\2\10\1\227\2\10\1\230\1\10\1\231\1\10\1\74"+
180 "\1\232\3\10\1\233\1\234\1\10\1\235\1\17\1\236"+
181 "\1\10\1\237\12\10\1\240\1\241\1\242\1\10\1\243"+
182 "\1\244\2\10\1\245\1\246\1\10\1\247\1\250\2\10"+
185 private static int [] zzUnpackAction() {
186 int [] result
= new int[481];
188 offset
= zzUnpackAction(ZZ_ACTION_PACKED_0
, offset
, result
);
192 private static int zzUnpackAction(String packed
, int offset
, int [] result
) {
193 int i
= 0; /* index in packed string */
194 int j
= offset
; /* index in unpacked array */
195 int l
= packed
.length();
197 int count
= packed
.charAt(i
++);
198 int value
= packed
.charAt(i
++);
199 do result
[j
++] = value
; while (--count
> 0);
206 * Translates a state to a row index in the transition table
208 private static final int [] ZZ_ROWMAP
= zzUnpackRowMap();
210 private static final String ZZ_ROWMAP_PACKED_0
=
211 "\0\0\0\106\0\214\0\322\0\u0118\0\u015e\0\u01a4\0\u01ea"+
212 "\0\u0230\0\u0276\0\u02bc\0\u0302\0\u0348\0\u038e\0\u03d4\0\u041a"+
213 "\0\u0460\0\u04a6\0\u04ec\0\u0532\0\u0578\0\u05be\0\u0604\0\u064a"+
214 "\0\u0690\0\u06d6\0\u0690\0\u071c\0\u0762\0\u07a8\0\u07ee\0\u0834"+
215 "\0\u087a\0\u08c0\0\u0906\0\u094c\0\u0992\0\u09d8\0\u0a1e\0\u0a64"+
216 "\0\u0aaa\0\u0af0\0\u0b36\0\u087a\0\u0b7c\0\u0bc2\0\u0c08\0\u0c4e"+
217 "\0\u0c94\0\u0cda\0\u0690\0\u0690\0\u0d20\0\u0d66\0\u0690\0\u0690"+
218 "\0\u0690\0\u0690\0\u0690\0\u0690\0\u0dac\0\u0df2\0\u0690\0\u0e38"+
219 "\0\u0e7e\0\u0ec4\0\u0f0a\0\u0690\0\u0690\0\u0f50\0\u0f96\0\u0fdc"+
220 "\0\u1022\0\u1068\0\u10ae\0\u0690\0\u10f4\0\u0690\0\u0690\0\u113a"+
221 "\0\u0690\0\u1180\0\u11c6\0\u120c\0\u0690\0\u0690\0\u1252\0\u1298"+
222 "\0\u0690\0\u12de\0\u1324\0\u136a\0\u0690\0\u13b0\0\u0690\0\u13f6"+
223 "\0\u143c\0\u0690\0\u0690\0\u11c6\0\u1482\0\u0690\0\u0690\0\u0690"+
224 "\0\u14c8\0\u0690\0\u11c6\0\u150e\0\u0690\0\u0690\0\u0690\0\u0690"+
225 "\0\u0690\0\u1554\0\u159a\0\u15e0\0\u1626\0\u166c\0\u0690\0\u16b2"+
226 "\0\u16f8\0\u0690\0\u173e\0\u0690\0\u1784\0\u0690\0\u17ca\0\u1810"+
227 "\0\u1856\0\u0690\0\u1810\0\u0690\0\u1810\0\u189c\0\u18e2\0\u1928"+
228 "\0\u196e\0\u0690\0\u19b4\0\u0690\0\u0690\0\u19fa\0\u0690\0\u0690"+
229 "\0\u0690\0\u0690\0\u0690\0\u0690\0\u1a40\0\u1a86\0\u1acc\0\u1b12"+
230 "\0\u1b58\0\u1b9e\0\u1be4\0\u087a\0\u1c2a\0\u1c70\0\u1cb6\0\u1cfc"+
231 "\0\u1d42\0\u1d88\0\u1dce\0\u0690\0\u0690\0\u0690\0\u0690\0\u0690"+
232 "\0\u1e14\0\u1e5a\0\u0690\0\u1ea0\0\u1ee6\0\u1f2c\0\u1f72\0\u1fb8"+
233 "\0\u1ffe\0\u2044\0\u208a\0\u20d0\0\u2116\0\u215c\0\u21a2\0\u21e8"+
234 "\0\u222e\0\u2274\0\u0690\0\u0690\0\u22ba\0\u0690\0\u2300\0\u2346"+
235 "\0\u0690\0\u238c\0\u0690\0\u0690\0\u0690\0\u0690\0\u0690\0\u0690"+
236 "\0\u23d2\0\u2418\0\u245e\0\u24a4\0\u24ea\0\u2530\0\u2576\0\u25bc"+
237 "\0\u2602\0\u2648\0\u268e\0\u26d4\0\u271a\0\u2760\0\u27a6\0\u27ec"+
238 "\0\u2832\0\u2878\0\u28be\0\u2904\0\u294a\0\u2990\0\u29d6\0\u2a1c"+
239 "\0\u2a62\0\u2aa8\0\u2aee\0\u2b34\0\u2b7a\0\u2bc0\0\u2c06\0\u2c4c"+
240 "\0\u2c92\0\u16b2\0\u16b2\0\u2cd8\0\u1810\0\u2d1e\0\u2d64\0\u0690"+
241 "\0\u2daa\0\u2df0\0\u2e36\0\u2e7c\0\u2ec2\0\u2f08\0\u087a\0\u2f4e"+
242 "\0\u2f94\0\u2fda\0\u3020\0\u3066\0\u30ac\0\u30f2\0\u3138\0\u317e"+
243 "\0\u31c4\0\u0690\0\u0690\0\u087a\0\u320a\0\u3250\0\u3296\0\u32dc"+
244 "\0\u3322\0\u087a\0\u3368\0\u33ae\0\u33f4\0\u343a\0\u3480\0\u0690"+
245 "\0\u34c6\0\u0690\0\u350c\0\u0690\0\u0690\0\u0690\0\u0690\0\u3552"+
246 "\0\u3598\0\u35de\0\u3624\0\u366a\0\u36b0\0\u36f6\0\u373c\0\u3782"+
247 "\0\u37c8\0\u380e\0\u3854\0\u389a\0\u38e0\0\u3926\0\u396c\0\u39b2"+
248 "\0\u39f8\0\u3a3e\0\u3a84\0\u3aca\0\u3b10\0\u0690\0\u0690\0\u3b56"+
249 "\0\u3b9c\0\u2aa8\0\u2aa8\0\u3be2\0\u3c28\0\u3c6e\0\u3cb4\0\u3cfa"+
250 "\0\u0690\0\u0690\0\u3d40\0\u3d86\0\u3dcc\0\u087a\0\u3e12\0\u3e58"+
251 "\0\u3e9e\0\u3ee4\0\u3f2a\0\u3f70\0\u087a\0\u3fb6\0\u087a\0\u3ffc"+
252 "\0\u087a\0\u4042\0\u4088\0\u087a\0\u40ce\0\u087a\0\u4114\0\u415a"+
253 "\0\u41a0\0\u087a\0\u41e6\0\u422c\0\u4272\0\u42b8\0\u42fe\0\u0690"+
254 "\0\u4344\0\u438a\0\u43d0\0\u4416\0\u445c\0\u44a2\0\u44e8\0\u452e"+
255 "\0\u087a\0\u4574\0\u087a\0\u45ba\0\u4600\0\u4646\0\u468c\0\u46d2"+
256 "\0\u4718\0\u475e\0\u087a\0\u47a4\0\u0690\0\u47ea\0\u2aee\0\u4830"+
257 "\0\u4876\0\u48bc\0\u4902\0\u0690\0\u3cb4\0\u4948\0\u087a\0\u498e"+
258 "\0\u087a\0\u49d4\0\u4a1a\0\u4a60\0\u4aa6\0\u4aec\0\u4b32\0\u4b78"+
259 "\0\u4bbe\0\u4c04\0\u4c4a\0\u4c90\0\u087a\0\u4cd6\0\u4d1c\0\u4d62"+
260 "\0\u4da8\0\u4dee\0\u4e34\0\u4e7a\0\u4ec0\0\u4f06\0\u4f4c\0\u4f92"+
261 "\0\u087a\0\u087a\0\u4fd8\0\u501e\0\u5064\0\u087a\0\u50aa\0\u087a"+
262 "\0\u50f0\0\u5136\0\u087a\0\u4830\0\u517c\0\u51c2\0\u4948\0\u5208"+
263 "\0\u524e\0\u5294\0\u52da\0\u087a\0\u5320\0\u087a\0\u5366\0\u087a"+
264 "\0\u087a\0\u53ac\0\u087a\0\u53f2\0\u5438\0\u547e\0\u54c4\0\u550a"+
265 "\0\u087a\0\u5550\0\u5596\0\u087a\0\u55dc\0\u5622\0\u087a\0\u5668"+
266 "\0\u087a\0\u56ae\0\u517c\0\u087a\0\u56f4\0\u573a\0\u5780\0\u087a"+
267 "\0\u087a\0\u57c6\0\u087a\0\u4dee\0\u087a\0\u580c\0\u087a\0\u5852"+
268 "\0\u5898\0\u58de\0\u5924\0\u596a\0\u59b0\0\u59f6\0\u5a3c\0\u5a82"+
269 "\0\u5ac8\0\u087a\0\u087a\0\u087a\0\u5b0e\0\u087a\0\u087a\0\u5b54"+
270 "\0\u5b9a\0\u087a\0\u087a\0\u5be0\0\u087a\0\u087a\0\u5c26\0\u5c6c"+
273 private static int [] zzUnpackRowMap() {
274 int [] result
= new int[481];
276 offset
= zzUnpackRowMap(ZZ_ROWMAP_PACKED_0
, offset
, result
);
280 private static int zzUnpackRowMap(String packed
, int offset
, int [] result
) {
281 int i
= 0; /* index in packed string */
282 int j
= offset
; /* index in unpacked array */
283 int l
= packed
.length();
285 int high
= packed
.charAt(i
++) << 16;
286 result
[j
++] = high
| packed
.charAt(i
++);
292 * The transition table of the DFA
294 private static final int [] ZZ_TRANS
= zzUnpackTrans();
296 private static final String ZZ_TRANS_PACKED_0
=
297 "\1\31\2\32\1\33\1\34\1\35\1\36\1\37\1\40"+
298 "\1\41\1\42\2\41\1\43\1\41\1\44\1\41\1\45"+
299 "\1\41\1\46\1\41\1\47\1\41\1\50\1\51\1\52"+
300 "\2\41\1\53\1\41\1\54\1\55\1\56\1\57\1\60"+
301 "\1\61\1\62\1\41\1\63\1\64\1\31\1\65\1\66"+
302 "\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76"+
303 "\1\77\1\100\1\101\1\102\1\103\1\104\1\105\1\106"+
304 "\1\107\1\110\1\41\1\111\2\41\1\112\3\41\1\113"+
305 "\11\114\1\115\1\114\14\115\3\114\2\115\1\114\1\115"+
306 "\1\114\4\115\2\114\1\115\1\116\23\114\14\115\11\117"+
307 "\1\120\1\117\14\120\3\117\2\120\1\117\1\120\1\117"+
308 "\4\120\2\117\1\120\1\121\23\117\14\120\1\122\2\123"+
309 "\1\122\1\124\31\122\1\125\4\122\1\126\42\122\4\127"+
310 "\1\130\31\127\1\131\4\127\1\132\42\127\11\114\1\115"+
311 "\1\114\14\115\3\114\2\115\1\114\1\115\1\114\4\115"+
312 "\2\114\1\115\24\114\14\115\34\114\1\133\51\114\11\117"+
313 "\1\120\1\117\14\120\3\117\2\120\1\117\1\120\1\117"+
314 "\4\120\2\117\1\120\24\117\14\120\34\117\1\134\51\117"+
315 "\1\135\2\136\103\135\1\137\2\140\6\137\1\141\1\137"+
316 "\14\141\3\137\2\141\1\137\1\141\1\137\4\141\2\137"+
317 "\1\141\1\142\23\137\14\141\1\143\1\144\1\123\1\143"+
318 "\1\145\1\146\30\143\1\147\47\143\1\150\2\151\6\150"+
319 "\1\141\1\150\14\141\3\150\2\141\1\150\1\141\1\150"+
320 "\4\141\2\150\1\141\1\142\23\150\14\141\1\152\1\153"+
321 "\1\123\1\152\1\154\1\146\30\152\1\155\47\152\1\31"+
322 "\2\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41"+
323 "\1\42\2\41\1\43\1\41\1\44\1\41\1\45\1\41"+
324 "\1\46\1\41\1\47\1\41\1\50\1\51\1\52\2\41"+
325 "\1\53\1\41\1\54\1\55\1\56\1\57\1\60\1\61"+
326 "\1\62\1\41\1\156\1\157\1\31\1\65\1\66\1\67"+
327 "\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77"+
328 "\1\100\1\101\1\102\1\103\1\104\1\105\1\106\1\107"+
329 "\1\110\1\41\1\111\2\41\1\112\3\41\1\113\3\160"+
330 "\1\161\1\162\1\163\100\160\1\164\2\165\6\164\1\166"+
331 "\1\164\14\166\3\164\2\166\1\164\1\166\1\164\4\166"+
332 "\2\164\1\166\1\167\1\164\1\0\21\164\14\166\1\170"+
333 "\2\123\1\170\1\171\1\172\30\170\1\173\47\170\11\174"+
334 "\1\166\1\174\14\166\3\174\2\166\1\174\1\166\1\174"+
335 "\4\166\2\174\1\166\24\174\14\166\34\174\1\175\51\174"+
336 "\1\176\3\177\1\200\1\201\100\176\1\202\3\177\1\203"+
337 "\101\202\1\204\3\177\1\205\101\204\1\31\2\32\1\33"+
338 "\1\34\1\35\1\36\1\37\1\40\1\41\1\42\2\41"+
339 "\1\43\1\41\1\44\1\41\1\45\1\41\1\46\1\41"+
340 "\1\47\1\41\1\50\1\51\1\52\2\41\1\53\1\41"+
341 "\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\41"+
342 "\1\63\2\31\1\65\1\66\1\67\1\70\1\71\1\72"+
343 "\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102"+
344 "\1\103\1\104\1\105\1\106\1\107\1\110\1\41\1\111"+
345 "\2\41\1\112\3\41\1\113\107\0\3\32\1\206\102\0"+
346 "\1\207\1\33\110\0\1\210\1\211\43\0\1\212\41\0"+
347 "\1\213\25\0\1\214\15\0\1\215\43\0\1\216\147\0"+
348 "\1\217\44\0\16\41\2\0\3\41\1\0\6\41\2\0"+
349 "\1\41\24\0\14\41\12\0\1\42\2\220\2\221\2\222"+
350 "\2\223\2\224\2\225\2\0\1\42\2\0\1\226\62\0"+
351 "\6\41\1\227\1\41\1\230\5\41\2\0\3\41\1\0"+
352 "\6\41\2\0\1\41\24\0\1\41\1\231\4\41\1\232"+
353 "\5\41\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
354 "\1\41\24\0\6\41\1\233\5\41\11\0\4\41\1\234"+
355 "\11\41\2\0\3\41\1\0\2\41\1\235\3\41\2\0"+
356 "\1\41\24\0\5\41\1\236\6\41\11\0\14\41\1\237"+
357 "\1\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
358 "\6\41\1\240\5\41\11\0\6\41\1\241\7\41\2\0"+
359 "\1\41\1\242\1\41\1\0\2\41\1\243\3\41\2\0"+
360 "\1\41\24\0\14\41\27\0\1\244\22\0\1\245\63\0"+
361 "\1\246\21\0\1\247\7\0\1\250\35\0\1\42\2\220"+
362 "\2\221\2\222\2\223\2\224\2\225\2\0\1\42\2\251"+
363 "\1\226\105\0\1\252\32\0\1\253\27\0\14\41\1\254"+
364 "\1\41\2\0\3\41\1\0\6\41\2\0\1\255\24\0"+
365 "\1\41\1\256\12\41\11\0\14\41\1\257\1\41\2\0"+
366 "\3\41\1\0\6\41\2\0\1\41\24\0\14\41\11\0"+
367 "\16\41\2\0\3\41\1\0\3\41\1\260\2\41\2\0"+
368 "\1\41\24\0\11\41\1\261\2\41\11\0\16\41\2\0"+
369 "\3\41\1\0\3\41\1\262\2\41\2\0\1\41\24\0"+
370 "\6\41\1\263\1\41\1\264\3\41\1\265\2\0\1\265"+
371 "\1\266\31\265\1\0\4\265\1\267\42\265\1\270\2\0"+
372 "\1\270\1\271\37\270\1\272\41\270\34\0\1\273\22\0"+
373 "\1\274\100\0\1\275\10\0\1\276\74\0\1\277\6\0"+
374 "\1\300\76\0\1\301\7\0\1\302\75\0\1\303\105\0"+
375 "\1\304\105\0\1\305\13\0\1\306\71\0\1\307\14\0"+
376 "\1\310\27\0\16\41\2\0\3\41\1\0\3\41\1\311"+
377 "\2\41\2\0\1\312\24\0\1\41\1\313\12\41\11\0"+
378 "\16\41\2\0\3\41\1\0\5\41\1\314\2\0\1\41"+
379 "\24\0\4\41\1\315\7\41\11\0\6\41\1\316\7\41"+
380 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\1\41"+
381 "\1\317\4\41\1\320\2\41\1\321\2\41\11\0\16\41"+
382 "\2\0\3\41\1\0\4\41\1\322\1\41\2\0\1\323"+
383 "\24\0\10\41\1\324\1\325\1\41\1\326\11\0\16\41"+
384 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\6\41"+
385 "\1\327\5\41\11\0\16\41\2\0\3\41\1\0\6\41"+
386 "\2\0\1\41\24\0\11\41\1\330\2\41\11\0\16\115"+
387 "\2\0\3\115\1\0\1\115\1\0\4\115\2\0\1\115"+
388 "\24\0\14\115\11\0\16\120\2\0\3\120\1\0\1\120"+
389 "\1\0\4\120\2\0\1\120\24\0\14\120\1\122\2\0"+
390 "\1\122\1\124\31\122\1\0\4\122\1\0\42\122\1\0"+
391 "\3\123\1\331\101\0\1\122\2\0\103\122\4\127\1\130"+
392 "\31\127\1\0\4\127\1\332\43\127\2\0\141\127\1\0"+
393 "\4\127\1\333\42\127\11\0\1\334\1\0\14\334\3\0"+
394 "\2\334\1\0\1\334\1\0\4\334\2\0\1\334\24\0"+
395 "\14\334\11\0\1\335\1\0\14\335\3\0\2\335\1\0"+
396 "\1\335\1\0\4\335\2\0\1\335\24\0\14\335\1\0"+
397 "\3\136\1\336\102\0\3\140\1\337\112\0\16\141\2\0"+
398 "\3\141\1\0\1\141\1\0\4\141\2\0\1\141\24\0"+
399 "\14\141\5\0\1\143\101\0\3\151\1\340\106\0\1\152"+
400 "\101\0\1\341\1\161\103\0\1\342\2\343\1\342\1\344"+
401 "\1\210\1\345\27\342\1\346\47\342\4\0\1\347\102\0"+
402 "\3\165\1\350\112\0\16\166\2\0\3\166\1\0\1\166"+
403 "\1\0\4\166\2\0\1\166\24\0\14\166\1\170\2\0"+
404 "\1\170\1\171\1\172\30\170\1\173\50\170\1\351\2\170"+
405 "\1\171\1\352\30\170\1\353\47\170\5\0\1\172\111\0"+
406 "\1\354\1\0\14\354\3\0\2\354\1\0\1\354\1\0"+
407 "\4\354\2\0\1\354\24\0\14\354\1\0\3\177\1\355"+
408 "\102\0\2\177\110\0\1\210\1\211\100\0\2\32\105\0"+
409 "\1\33\103\0\1\210\2\0\103\210\6\356\1\357\77\356"+
410 "\52\0\1\360\33\0\1\216\2\0\103\216\12\0\1\361"+
411 "\14\0\2\362\1\361\66\0\1\363\16\0\1\363\65\0"+
412 "\16\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
413 "\6\41\1\364\5\41\11\0\16\41\2\0\3\41\1\0"+
414 "\2\41\1\365\3\41\2\0\1\41\24\0\14\41\11\0"+
415 "\6\41\1\366\7\41\2\0\3\41\1\0\6\41\2\0"+
416 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
417 "\3\41\1\367\2\41\2\0\1\41\24\0\14\41\11\0"+
418 "\16\41\2\0\3\41\1\0\2\41\1\370\3\41\2\0"+
419 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
420 "\4\41\1\371\1\41\2\0\1\41\24\0\4\41\1\372"+
421 "\7\41\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
422 "\1\41\24\0\1\373\13\41\11\0\4\41\1\374\11\41"+
423 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
424 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\375"+
425 "\24\0\14\41\11\0\16\41\2\0\3\41\1\0\6\41"+
426 "\2\0\1\41\24\0\4\41\1\376\7\41\11\0\16\41"+
427 "\2\0\3\41\1\0\4\41\1\377\1\41\2\0\1\41"+
428 "\24\0\14\41\11\0\16\41\2\0\3\41\1\0\6\41"+
429 "\2\0\1\u0100\24\0\14\41\11\0\2\u0101\2\0\2\u0101"+
430 "\4\0\4\u0101\2\0\1\u0101\10\0\1\u0101\30\0\2\u0101"+
431 "\45\0\1\u0102\24\0\1\u0103\35\0\16\41\2\0\3\41"+
432 "\1\0\6\41\2\0\1\41\24\0\13\41\1\u0104\11\0"+
433 "\6\41\1\u0105\7\41\2\0\3\41\1\0\6\41\2\0"+
434 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
435 "\4\41\1\u0106\1\41\2\0\1\41\24\0\14\41\11\0"+
436 "\16\41\2\0\3\41\1\0\4\41\1\u0107\1\41\2\0"+
437 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
438 "\6\41\2\0\1\u0108\24\0\1\41\1\u0109\6\41\1\u010a"+
439 "\3\41\11\0\10\41\1\u010b\5\41\2\0\3\41\1\0"+
440 "\3\41\1\u010c\2\41\2\0\1\41\24\0\14\41\11\0"+
441 "\14\41\1\u010d\1\41\2\0\3\41\1\0\6\41\2\0"+
442 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
443 "\6\41\2\0\1\41\24\0\6\41\1\u010e\5\41\11\0"+
444 "\16\41\2\0\3\41\1\0\4\41\1\u010f\1\41\2\0"+
445 "\1\41\24\0\14\41\1\265\2\0\1\265\1\266\31\265"+
446 "\1\0\4\265\1\u0110\43\265\2\0\103\265\43\0\1\u0111"+
447 "\42\0\1\270\2\0\1\270\1\271\37\270\1\u0112\42\270"+
448 "\2\0\103\270\44\0\1\u0113\124\0\1\u0114\104\0\1\u0115"+
449 "\75\0\1\u0116\105\0\1\u0117\7\0\1\u0118\34\0\10\41"+
450 "\1\u0119\5\41\2\0\3\41\1\0\6\41\2\0\1\41"+
451 "\24\0\6\41\1\u011a\5\41\11\0\16\41\2\0\3\41"+
452 "\1\0\5\41\1\u011b\2\0\1\41\24\0\14\41\11\0"+
453 "\16\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
454 "\2\41\1\u011c\11\41\11\0\16\41\2\0\3\41\1\0"+
455 "\6\41\2\0\1\41\24\0\4\41\1\u011d\7\41\11\0"+
456 "\16\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
457 "\4\41\1\u011e\7\41\11\0\16\41\2\0\3\41\1\0"+
458 "\6\41\2\0\1\41\24\0\1\41\1\u011f\12\41\11\0"+
459 "\16\41\2\0\3\41\1\0\4\41\1\u0120\1\41\2\0"+
460 "\1\41\24\0\4\41\1\u0121\7\41\11\0\16\41\2\0"+
461 "\3\41\1\0\2\41\1\u0122\3\41\2\0\1\41\24\0"+
462 "\14\41\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
463 "\1\41\24\0\1\41\1\u0123\12\41\11\0\16\41\2\0"+
464 "\3\41\1\0\3\41\1\u0124\2\41\2\0\1\41\24\0"+
465 "\1\41\1\u0125\12\41\11\0\16\41\2\0\3\41\1\0"+
466 "\6\41\2\0\1\41\24\0\1\u0126\13\41\11\0\16\41"+
467 "\2\0\3\41\1\0\2\41\1\u0127\3\41\2\0\1\41"+
468 "\24\0\14\41\11\0\16\41\2\0\3\41\1\0\6\41"+
469 "\2\0\1\41\24\0\6\41\1\u0128\5\41\11\0\10\41"+
470 "\1\u0129\5\41\2\0\3\41\1\0\6\41\2\0\1\41"+
471 "\24\0\14\41\11\0\6\41\1\u012a\1\41\1\u012b\5\41"+
472 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
473 "\11\0\10\41\1\u012c\5\41\2\0\3\41\1\0\6\41"+
474 "\2\0\1\41\24\0\14\41\1\0\2\123\103\0\36\127"+
475 "\1\0\4\127\1\u012d\100\127\1\0\4\127\1\u012e\42\127"+
476 "\11\0\16\334\2\0\3\334\1\0\1\334\1\0\4\334"+
477 "\2\0\1\334\24\0\14\334\11\0\16\335\2\0\3\335"+
478 "\1\0\1\335\1\0\4\335\2\0\1\335\24\0\14\335"+
479 "\1\0\2\136\104\0\2\140\104\0\2\151\105\0\1\161"+
480 "\103\0\1\342\2\0\1\342\1\344\1\u012f\30\342\1\346"+
481 "\47\342\1\343\2\0\1\343\1\u0130\1\0\30\343\1\147"+
482 "\47\343\1\342\1\u0131\2\342\1\344\1\u0132\30\342\1\u0133"+
483 "\47\342\1\u0134\2\356\1\u0134\1\u0135\1\356\1\u0136\27\u0134"+
484 "\1\356\47\u0134\5\0\1\u012f\100\0\1\164\2\0\103\164"+
485 "\1\0\2\165\103\0\1\170\1\0\2\170\1\171\1\172"+
486 "\30\170\1\173\47\170\11\0\16\354\2\0\3\354\1\0"+
487 "\1\354\1\0\4\354\2\0\1\354\24\0\14\354\6\356"+
488 "\1\u0137\77\356\5\u0138\1\u0139\1\357\77\u0138\12\0\1\361"+
489 "\2\u013a\2\221\4\0\2\224\4\0\1\361\66\0\1\361"+
490 "\16\0\1\361\66\0\1\363\2\u013a\2\221\4\0\2\224"+
491 "\2\225\2\0\1\363\65\0\16\41\2\0\3\41\1\0"+
492 "\6\41\2\0\1\41\24\0\1\41\1\u013b\12\41\11\0"+
493 "\16\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
494 "\1\41\1\u013c\12\41\11\0\16\41\2\0\3\41\1\0"+
495 "\6\41\2\0\1\41\24\0\4\41\1\u013d\7\41\11\0"+
496 "\2\41\1\u013e\13\41\2\0\3\41\1\0\6\41\2\0"+
497 "\1\41\24\0\14\41\11\0\14\41\1\u013f\1\41\2\0"+
498 "\3\41\1\0\6\41\2\0\1\41\24\0\14\41\11\0"+
499 "\16\41\2\0\3\41\1\0\4\41\1\u0140\1\41\2\0"+
500 "\1\41\24\0\14\41\11\0\6\41\1\u0141\7\41\2\0"+
501 "\3\41\1\0\6\41\2\0\1\41\24\0\6\41\1\u0142"+
502 "\5\41\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
503 "\1\41\24\0\1\41\1\u0143\12\41\11\0\16\41\2\0"+
504 "\3\41\1\0\5\41\1\u0144\2\0\1\41\24\0\14\41"+
505 "\11\0\14\41\1\u0145\1\41\2\0\3\41\1\0\6\41"+
506 "\2\0\1\41\24\0\14\41\11\0\14\41\1\u0146\1\41"+
507 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
508 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
509 "\24\0\5\41\1\u0147\6\41\11\0\2\u0101\2\220\2\u0101"+
510 "\2\222\2\223\2\u0101\2\u0148\2\0\1\u0101\2\0\1\226"+
511 "\5\0\1\u0101\30\0\2\u0101\22\0\6\41\1\u0149\7\41"+
512 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
513 "\11\0\10\41\1\u014a\5\41\2\0\3\41\1\0\6\41"+
514 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
515 "\1\0\6\41\2\0\1\u014b\24\0\14\41\11\0\14\41"+
516 "\1\u014c\1\41\2\0\3\41\1\0\6\41\2\0\1\41"+
517 "\24\0\14\41\11\0\16\41\2\0\3\41\1\0\2\41"+
518 "\1\u014d\3\41\2\0\1\41\24\0\14\41\11\0\16\41"+
519 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\4\41"+
520 "\1\u014e\7\41\11\0\16\41\2\0\3\41\1\0\6\41"+
521 "\2\0\1\41\24\0\6\41\1\u014f\5\41\11\0\16\41"+
522 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\1\41"+
523 "\1\u0150\12\41\11\0\6\41\1\u0151\7\41\2\0\3\41"+
524 "\1\0\6\41\2\0\1\41\24\0\14\41\11\0\14\41"+
525 "\1\u0152\1\41\2\0\3\41\1\0\6\41\2\0\1\41"+
526 "\24\0\14\41\4\u0153\1\u0154\31\u0153\1\0\4\u0153\1\u0155"+
527 "\42\u0153\4\u0113\1\u0156\37\u0113\1\u0157\41\u0113\52\0\1\u0158"+
528 "\44\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
529 "\24\0\7\41\1\u0159\4\41\11\0\16\41\2\0\3\41"+
530 "\1\0\4\41\1\u015a\1\41\2\0\1\41\24\0\14\41"+
531 "\11\0\6\41\1\u015b\7\41\2\0\3\41\1\0\6\41"+
532 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
533 "\1\0\6\41\2\0\1\41\24\0\3\41\1\u015c\10\41"+
534 "\11\0\16\41\2\0\3\41\1\0\4\41\1\u015d\1\41"+
535 "\2\0\1\41\24\0\14\41\11\0\14\41\1\u015e\1\41"+
536 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
537 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
538 "\24\0\4\41\1\u015f\7\41\11\0\16\41\2\0\3\41"+
539 "\1\0\6\41\2\0\1\41\24\0\2\41\1\u0160\11\41"+
540 "\11\0\14\41\1\u0161\1\41\2\0\3\41\1\0\6\41"+
541 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
542 "\1\0\4\41\1\u0162\1\41\2\0\1\41\24\0\14\41"+
543 "\11\0\16\41\2\0\3\41\1\0\3\41\1\u0163\2\41"+
544 "\2\0\1\41\24\0\14\41\11\0\10\41\1\u0164\5\41"+
545 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
546 "\11\0\16\41\2\0\3\41\1\0\4\41\1\u0165\1\41"+
547 "\2\0\1\41\24\0\14\41\11\0\14\41\1\u0166\1\41"+
548 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
549 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
550 "\24\0\2\41\1\u0167\11\41\11\0\16\41\2\0\3\41"+
551 "\1\0\3\41\1\u0168\2\41\2\0\1\41\24\0\14\41"+
552 "\11\0\16\41\2\0\3\41\1\0\4\41\1\u0169\1\41"+
553 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
554 "\1\0\6\41\2\0\1\41\24\0\1\41\1\u016a\12\41"+
555 "\11\0\12\41\1\u016b\3\41\2\0\3\41\1\0\6\41"+
556 "\2\0\1\41\24\0\14\41\11\0\6\41\1\u016c\7\41"+
557 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
558 "\36\127\1\0\4\127\1\u016d\42\127\1\343\1\u016e\2\343"+
559 "\1\u0130\31\343\1\u016f\47\343\1\342\1\0\2\342\1\344"+
560 "\1\u012f\30\342\1\346\47\342\1\u0134\2\356\1\u0134\1\u0135"+
561 "\1\356\1\u0170\27\u0134\1\356\50\u0134\1\u0171\2\u0134\1\u0135"+
562 "\1\u0134\1\u0170\77\u0134\1\u0172\2\u0138\1\u0172\1\u0173\1\u0139"+
563 "\1\u0136\27\u0172\1\u0138\47\u0172\5\356\1\u0174\1\u0175\77\356"+
564 "\6\u0138\1\u0176\77\u0138\11\0\16\41\2\0\3\41\1\0"+
565 "\4\41\1\u0177\1\41\2\0\1\41\24\0\14\41\11\0"+
566 "\6\41\1\u0178\7\41\2\0\3\41\1\0\6\41\2\0"+
567 "\1\41\24\0\14\41\11\0\14\41\1\u0179\1\41\2\0"+
568 "\3\41\1\0\6\41\2\0\1\41\24\0\14\41\11\0"+
569 "\16\41\2\0\3\41\1\0\3\41\1\u017a\2\41\2\0"+
570 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
571 "\6\41\2\0\1\41\24\0\1\41\1\u017b\12\41\11\0"+
572 "\14\41\1\u017c\1\41\2\0\3\41\1\0\6\41\2\0"+
573 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
574 "\3\41\1\u017d\2\41\2\0\1\41\24\0\14\41\11\0"+
575 "\16\41\2\0\3\41\1\0\6\41\2\0\1\u017e\24\0"+
576 "\14\41\11\0\6\41\1\u017f\7\41\2\0\3\41\1\0"+
577 "\6\41\2\0\1\41\24\0\14\41\11\0\16\41\2\0"+
578 "\3\41\1\0\2\41\1\u0180\3\41\2\0\1\41\24\0"+
579 "\14\41\11\0\2\u0101\2\220\2\u0101\2\222\2\223\2\u0101"+
580 "\2\u0148\2\362\1\u0101\2\0\1\226\5\0\1\u0101\30\0"+
581 "\2\u0101\22\0\16\41\2\0\3\41\1\0\6\41\2\0"+
582 "\1\41\24\0\7\41\1\u0181\4\41\11\0\16\41\2\0"+
583 "\3\41\1\0\3\41\1\u0182\2\41\2\0\1\41\24\0"+
584 "\14\41\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
585 "\1\41\24\0\4\41\1\u0183\7\41\11\0\16\41\2\0"+
586 "\3\41\1\0\6\41\2\0\1\41\24\0\13\41\1\u0184"+
587 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
588 "\24\0\3\41\1\u0185\10\41\11\0\14\41\1\u0186\1\41"+
589 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
590 "\4\u0153\1\u0154\31\u0153\1\0\4\u0153\1\u0187\43\u0153\2\0"+
591 "\141\u0153\1\0\4\u0153\1\u0188\42\u0153\4\u0113\1\u0156\37\u0113"+
592 "\1\u0189\105\u0113\1\u018a\41\u0113\11\0\16\41\2\0\3\41"+
593 "\1\0\6\41\2\0\1\41\24\0\1\41\1\u018b\12\41"+
594 "\11\0\14\41\1\u018c\1\41\2\0\3\41\1\0\6\41"+
595 "\2\0\1\41\24\0\14\41\11\0\10\41\1\u018d\5\41"+
596 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
597 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
598 "\24\0\1\41\1\u018e\12\41\11\0\16\41\2\0\3\41"+
599 "\1\0\3\41\1\u018f\2\41\2\0\1\41\24\0\14\41"+
600 "\11\0\16\41\2\0\3\41\1\0\3\41\1\u0190\2\41"+
601 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
602 "\1\0\6\41\2\0\1\41\24\0\4\41\1\u0191\7\41"+
603 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
604 "\24\0\11\41\1\u0192\2\41\11\0\10\41\1\u0193\5\41"+
605 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
606 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
607 "\24\0\2\41\1\u0194\11\41\11\0\10\41\1\u0195\5\41"+
608 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
609 "\11\0\16\41\2\0\3\41\1\0\3\41\1\u0196\2\41"+
610 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
611 "\1\0\6\41\2\0\1\41\24\0\11\41\1\u0197\2\41"+
612 "\11\0\16\41\2\0\3\41\1\0\4\41\1\u0198\1\41"+
613 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
614 "\1\0\6\41\2\0\1\41\24\0\2\41\1\u0199\11\41"+
615 "\11\0\16\41\2\0\3\41\1\0\4\41\1\u019a\1\41"+
616 "\2\0\1\41\24\0\14\41\11\0\14\41\1\u019b\1\41"+
617 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
618 "\1\343\1\0\2\343\1\u0130\1\0\30\343\1\147\47\343"+
619 "\1\u0134\2\356\1\u0134\1\u0135\1\u0174\1\u019c\27\u0134\1\356"+
620 "\50\u0134\1\356\2\u0134\1\u0135\1\356\1\u0170\27\u0134\1\356"+
621 "\47\u0134\1\u0172\2\u0138\1\u0172\1\u0173\1\u0138\1\u019d\27\u0172"+
622 "\1\u0138\50\u0172\1\u019e\2\u0172\1\u0173\1\u0172\1\u019d\77\u0172"+
623 "\5\u0138\1\u0139\1\u019f\77\u0138\11\0\6\41\1\u01a0\7\41"+
624 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
625 "\11\0\4\41\1\u01a1\11\41\2\0\3\41\1\0\6\41"+
626 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
627 "\1\0\2\41\1\u01a2\3\41\2\0\1\41\24\0\14\41"+
628 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
629 "\24\0\5\41\1\u01a3\6\41\11\0\16\41\2\0\3\41"+
630 "\1\0\4\41\1\u01a4\1\41\2\0\1\41\24\0\14\41"+
631 "\11\0\6\41\1\u01a5\7\41\2\0\3\41\1\0\6\41"+
632 "\2\0\1\41\24\0\14\41\11\0\14\41\1\u01a6\1\41"+
633 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
634 "\11\0\12\41\1\u01a7\3\41\2\0\3\41\1\0\6\41"+
635 "\2\0\1\41\24\0\14\41\11\0\14\41\1\u01a8\1\41"+
636 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
637 "\11\0\16\41\2\0\3\41\1\0\2\41\1\u01a9\3\41"+
638 "\2\0\1\41\24\0\14\41\11\0\10\41\1\u01aa\5\41"+
639 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
640 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
641 "\24\0\4\41\1\u01ab\7\41\11\0\16\41\2\0\3\41"+
642 "\1\0\6\41\2\0\1\41\24\0\1\41\1\u01ac\12\41"+
643 "\36\u0153\1\0\4\u0153\1\u01ad\100\u0153\1\0\4\u0153\1\0"+
644 "\42\u0153\4\u0113\1\u0156\37\u0113\1\u01ae\105\u0113\1\u0112\41\u0113"+
645 "\11\0\16\41\2\0\3\41\1\0\4\41\1\u01af\1\41"+
646 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
647 "\1\0\6\41\2\0\1\41\24\0\2\41\1\u01b0\11\41"+
648 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
649 "\24\0\2\41\1\u01b1\11\41\11\0\2\41\1\u01b2\13\41"+
650 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
651 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
652 "\24\0\1\41\1\u01b3\12\41\11\0\16\41\2\0\3\41"+
653 "\1\0\4\41\1\u01b4\1\41\2\0\1\41\24\0\14\41"+
654 "\11\0\16\41\2\0\3\41\1\0\2\41\1\u01b5\3\41"+
655 "\2\0\1\41\24\0\14\41\11\0\16\41\2\0\3\41"+
656 "\1\0\4\41\1\u01b6\1\41\2\0\1\41\24\0\14\41"+
657 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
658 "\24\0\2\41\1\u01b7\11\41\11\0\16\41\2\0\3\41"+
659 "\1\0\3\41\1\u01b8\2\41\2\0\1\41\24\0\14\41"+
660 "\11\0\16\41\2\0\3\41\1\0\6\41\2\0\1\41"+
661 "\24\0\11\41\1\u01b9\2\41\11\0\10\41\1\u01ba\5\41"+
662 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\14\41"+
663 "\1\u0172\2\u0138\1\u0172\1\u0173\1\u0139\1\u01bb\27\u0172\1\u0138"+
664 "\50\u0172\1\u0138\2\u0172\1\u0173\1\u0138\1\u019d\27\u0172\1\u0138"+
665 "\47\u0172\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
666 "\1\41\24\0\10\41\1\u01bc\3\41\11\0\16\41\2\0"+
667 "\3\41\1\0\6\41\2\0\1\41\24\0\1\41\1\u01bd"+
668 "\12\41\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
669 "\1\41\24\0\2\41\1\u01be\11\41\11\0\14\41\1\u01bf"+
670 "\1\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
671 "\14\41\11\0\16\41\2\0\3\41\1\0\4\41\1\u01c0"+
672 "\1\41\2\0\1\41\24\0\14\41\11\0\16\41\2\0"+
673 "\3\41\1\0\6\41\2\0\1\41\24\0\4\41\1\u01c1"+
674 "\7\41\11\0\14\41\1\u01c2\1\41\2\0\3\41\1\0"+
675 "\6\41\2\0\1\41\24\0\14\41\11\0\16\41\2\0"+
676 "\3\41\1\0\2\41\1\u01c3\3\41\2\0\1\41\24\0"+
677 "\14\41\36\u0153\1\0\4\u0153\1\u0110\42\u0153\44\u0113\1\u01c4"+
678 "\41\u0113\11\0\14\41\1\u01c5\1\41\2\0\3\41\1\0"+
679 "\6\41\2\0\1\41\24\0\14\41\11\0\16\41\2\0"+
680 "\3\41\1\0\4\41\1\u01c6\1\41\2\0\1\41\24\0"+
681 "\14\41\11\0\14\41\1\u01c7\1\41\2\0\3\41\1\0"+
682 "\6\41\2\0\1\41\24\0\14\41\11\0\16\41\2\0"+
683 "\3\41\1\0\6\41\2\0\1\41\24\0\2\41\1\u01c8"+
684 "\11\41\11\0\16\41\2\0\3\41\1\0\6\41\2\0"+
685 "\1\u01c9\24\0\14\41\11\0\4\41\1\u01ca\11\41\2\0"+
686 "\3\41\1\0\6\41\2\0\1\41\24\0\14\41\11\0"+
687 "\16\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
688 "\6\41\1\u01cb\5\41\11\0\6\41\1\u01cc\7\41\2\0"+
689 "\3\41\1\0\6\41\2\0\1\41\24\0\14\41\11\0"+
690 "\16\41\2\0\3\41\1\0\6\41\2\0\1\41\24\0"+
691 "\2\41\1\u01cd\11\41\11\0\14\41\1\u01ce\1\41\2\0"+
692 "\3\41\1\0\6\41\2\0\1\41\24\0\14\41\11\0"+
693 "\16\41\2\0\3\41\1\0\2\41\1\u01cf\3\41\2\0"+
694 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
695 "\2\41\1\u01d0\3\41\2\0\1\41\24\0\14\41\11\0"+
696 "\14\41\1\u01d1\1\41\2\0\3\41\1\0\6\41\2\0"+
697 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
698 "\4\41\1\u01d2\1\41\2\0\1\41\24\0\14\41\11\0"+
699 "\14\41\1\u01d3\1\41\2\0\3\41\1\0\6\41\2\0"+
700 "\1\41\24\0\14\41\11\0\16\41\2\0\3\41\1\0"+
701 "\6\41\2\0\1\41\24\0\1\u01d4\13\41\11\0\16\41"+
702 "\2\0\3\41\1\0\2\41\1\u01d5\3\41\2\0\1\41"+
703 "\24\0\14\41\11\0\14\41\1\u01d6\1\41\2\0\3\41"+
704 "\1\0\6\41\2\0\1\41\24\0\14\41\11\0\14\41"+
705 "\1\u01d7\1\41\2\0\3\41\1\0\6\41\2\0\1\41"+
706 "\24\0\14\41\11\0\16\41\2\0\3\41\1\0\6\41"+
707 "\2\0\1\41\24\0\6\41\1\u01d8\5\41\11\0\16\41"+
708 "\2\0\3\41\1\0\4\41\1\u01d9\1\41\2\0\1\41"+
709 "\24\0\14\41\11\0\16\41\2\0\3\41\1\0\4\41"+
710 "\1\u01da\1\41\2\0\1\41\24\0\14\41\11\0\12\41"+
711 "\1\u01db\3\41\2\0\3\41\1\0\6\41\2\0\1\41"+
712 "\24\0\14\41\11\0\10\41\1\u01dc\5\41\2\0\3\41"+
713 "\1\0\6\41\2\0\1\41\24\0\14\41\11\0\4\41"+
714 "\1\u01dd\11\41\2\0\3\41\1\0\6\41\2\0\1\41"+
715 "\24\0\14\41\11\0\16\41\2\0\3\41\1\0\6\41"+
716 "\2\0\1\41\24\0\4\41\1\u01de\7\41\11\0\16\41"+
717 "\2\0\3\41\1\0\6\41\2\0\1\41\24\0\12\41"+
718 "\1\u01df\1\41\11\0\14\41\1\u01e0\1\41\2\0\3\41"+
719 "\1\0\6\41\2\0\1\41\24\0\14\41\11\0\12\41"+
720 "\1\u01e1\3\41\2\0\3\41\1\0\6\41\2\0\1\41"+
723 private static int [] zzUnpackTrans() {
724 int [] result
= new int[23730];
726 offset
= zzUnpackTrans(ZZ_TRANS_PACKED_0
, offset
, result
);
730 private static int zzUnpackTrans(String packed
, int offset
, int [] result
) {
731 int i
= 0; /* index in packed string */
732 int j
= offset
; /* index in unpacked array */
733 int l
= packed
.length();
735 int count
= packed
.charAt(i
++);
736 int value
= packed
.charAt(i
++);
738 do result
[j
++] = value
; while (--count
> 0);
745 private static final int ZZ_UNKNOWN_ERROR
= 0;
746 private static final int ZZ_NO_MATCH
= 1;
747 private static final int ZZ_PUSHBACK_2BIG
= 2;
748 private static final char[] EMPTY_BUFFER
= new char[0];
749 private static final int YYEOF
= -1;
750 private static java
.io
.Reader zzReader
= null; // Fake
752 /* error messages for the codes above */
753 private static final String ZZ_ERROR_MSG
[] = {
754 "Unkown internal scanner error",
755 "Error: could not match input",
756 "Error: pushback value was too large"
760 * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
762 private static final int [] ZZ_ATTRIBUTE
= zzUnpackAttribute();
764 private static final String ZZ_ATTRIBUTE_PACKED_0
=
765 "\21\0\1\1\6\0\1\11\1\1\1\11\27\1\2\11"+
766 "\2\1\6\11\2\1\1\11\4\1\2\11\6\1\1\11"+
767 "\1\1\2\11\1\1\1\11\3\1\2\11\1\7\1\1"+
768 "\1\11\1\1\2\3\1\11\1\1\1\11\2\1\2\11"+
769 "\2\1\3\11\1\1\1\11\2\1\5\11\5\1\1\11"+
770 "\2\1\1\11\1\1\1\11\1\3\1\11\3\1\1\11"+
771 "\1\1\1\11\1\1\1\0\3\1\1\11\1\1\2\11"+
772 "\1\1\6\11\2\0\15\1\5\11\1\0\1\1\1\11"+
773 "\11\1\2\0\2\1\1\0\1\1\2\11\1\1\1\11"+
774 "\1\1\1\0\1\11\1\0\6\11\20\1\1\0\2\1"+
775 "\2\5\3\0\2\1\1\0\3\1\2\0\3\1\1\5"+
776 "\1\0\2\1\1\11\1\1\1\0\17\1\2\11\14\1"+
777 "\1\11\1\1\1\11\1\1\4\11\1\0\25\1\2\11"+
778 "\1\0\10\1\2\11\30\1\3\0\1\1\1\0\1\11"+
779 "\24\1\1\15\1\0\5\1\1\11\1\0\21\1\2\0"+
780 "\1\1\1\0\24\1\1\0\15\1\2\0\63\1";
782 private static int [] zzUnpackAttribute() {
783 int [] result
= new int[481];
785 offset
= zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0
, offset
, result
);
789 private static int zzUnpackAttribute(String packed
, int offset
, int [] result
) {
790 int i
= 0; /* index in packed string */
791 int j
= offset
; /* index in unpacked array */
792 int l
= packed
.length();
794 int count
= packed
.charAt(i
++);
795 int value
= packed
.charAt(i
++);
796 do result
[j
++] = value
; while (--count
> 0);
801 /** the current state of the DFA */
804 /** the current lexical state */
805 private int zzLexicalState
= YYINITIAL
;
807 /** this buffer contains the current text to be matched and is
808 the source of the yytext() string */
809 private CharSequence zzBuffer
= "";
811 /** this buffer may contains the current text array to be matched when it is cheap to acquire it */
812 private char[] zzBufferArray
;
814 /** the textposition at the last accepting state */
815 private int zzMarkedPos
;
817 /** the textposition at the last state to be included in yytext */
818 private int zzPushbackPos
;
820 /** the current text position in the buffer */
821 private int zzCurrentPos
;
823 /** startRead marks the beginning of the yytext() string in the buffer */
824 private int zzStartRead
;
826 /** endRead marks the last character in the buffer, that has been read
828 private int zzEndRead
;
831 * zzAtBOL == true <=> the scanner is currently at the beginning of a line
833 private boolean zzAtBOL
= true;
835 /** zzAtEOF == true <=> the scanner is at the EOF */
836 private boolean zzAtEOF
;
838 /** denotes if the user-EOF-code has already been executed */
839 private boolean zzEOFDone
;
843 private Stack
<IElementType
> gStringStack
= new Stack
<IElementType
>();
844 private Stack
<IElementType
> blockStack
= new Stack
<IElementType
>();
846 private int afterComment
= YYINITIAL
;
847 private int afterNls
= YYINITIAL
;
848 private int afterBrace
= YYINITIAL
;
850 private void clearStacks(){
851 gStringStack
.clear();
855 private Stack
<IElementType
> braceCount
= new Stack
<IElementType
>();
859 public _GroovyLexer(java
.io
.Reader in
) {
864 * Creates a new scanner.
865 * There is also java.io.Reader version of this constructor.
867 * @param in the java.io.Inputstream to read input from.
869 public _GroovyLexer(java
.io
.InputStream in
) {
870 this(new java
.io
.InputStreamReader(in
));
874 * Unpacks the compressed character translation table.
876 * @param packed the packed character translation table
877 * @return the unpacked character translation table
879 private static char [] zzUnpackCMap(String packed
) {
880 char [] map
= new char[0x10000];
881 int i
= 0; /* index in packed string */
882 int j
= 0; /* index in unpacked array */
884 int count
= packed
.charAt(i
++);
885 char value
= packed
.charAt(i
++);
886 do map
[j
++] = value
; while (--count
> 0);
891 public final int getTokenStart(){
895 public final int getTokenEnd(){
896 return getTokenStart() + yylength();
899 public void reset(CharSequence buffer
, int start
, int end
,int initialState
){
901 zzBufferArray
= com
.intellij
.util
.text
.CharArrayUtil
.fromSequenceWithoutCopying(buffer
);
902 zzCurrentPos
= zzMarkedPos
= zzStartRead
= start
;
907 yybegin(initialState
);
910 public void reset(CharSequence buffer
, int initialState
){
911 reset(buffer
, 0, buffer
.length(), initialState
);
915 * Refills the input buffer.
917 * @return <code>false</code>, iff there was new input.
919 * @exception java.io.IOException if any I/O-Error occurs
921 private boolean zzRefill() throws java
.io
.IOException
{
927 * Returns the current lexical state.
929 public final int yystate() {
930 return zzLexicalState
;
935 * Enters a new lexical state
937 * @param newState the new lexical state
939 public final void yybegin(int newState
) {
940 zzLexicalState
= newState
;
945 * Returns the text matched by the current regular expression.
947 public final CharSequence
yytext() {
948 return zzBuffer
.subSequence(zzStartRead
, zzMarkedPos
);
953 * Returns the character at position <tt>pos</tt> from the
956 * It is equivalent to yytext().charAt(pos), but faster
958 * @param pos the position of the character to fetch.
959 * A value from 0 to yylength()-1.
961 * @return the character at position pos
963 public final char yycharat(int pos
) {
964 return zzBufferArray
!= null ? zzBufferArray
[zzStartRead
+pos
]:zzBuffer
.charAt(zzStartRead
+pos
);
969 * Returns the length of the matched text region.
971 public final int yylength() {
972 return zzMarkedPos
-zzStartRead
;
977 * Reports an error that occured while scanning.
979 * In a wellformed scanner (no or only correct usage of
980 * yypushback(int) and a match-all fallback rule) this method
981 * will only be called with things that "Can't Possibly Happen".
982 * If this method is called, something is seriously wrong
983 * (e.g. a JFlex bug producing a faulty scanner etc.).
985 * Usual syntax/scanner level error handling should be done
986 * in error fallback rules.
988 * @param errorCode the code of the errormessage to display
990 private void zzScanError(int errorCode
) {
993 message
= ZZ_ERROR_MSG
[errorCode
];
995 catch (ArrayIndexOutOfBoundsException e
) {
996 message
= ZZ_ERROR_MSG
[ZZ_UNKNOWN_ERROR
];
999 throw new Error(message
);
1004 * Pushes the specified amount of characters back into the input stream.
1006 * They will be read again by then next call of the scanning method
1008 * @param number the number of characters to be read again.
1009 * This number must not be greater than yylength()!
1011 public void yypushback(int number
) {
1012 if ( number
> yylength() )
1013 zzScanError(ZZ_PUSHBACK_2BIG
);
1015 zzMarkedPos
-= number
;
1020 * Contains user EOF-code, which will be executed exactly once,
1021 * when the end of file is reached
1023 private void zzDoEOF() {
1032 * Resumes scanning until the next regular expression is matched,
1033 * the end of input is encountered or an I/O-Error occurs.
1035 * @return the next token
1036 * @exception java.io.IOException if any I/O-Error occurs
1038 public IElementType
advance() throws java
.io
.IOException
{
1045 int zzEndReadL
= zzEndRead
;
1046 CharSequence zzBufferL
= zzBuffer
;
1047 char[] zzBufferArrayL
= zzBufferArray
;
1048 char [] zzCMapL
= ZZ_CMAP
;
1050 int [] zzTransL
= ZZ_TRANS
;
1051 int [] zzRowMapL
= ZZ_ROWMAP
;
1052 int [] zzAttrL
= ZZ_ATTRIBUTE
;
1053 int zzPushbackPosL
= zzPushbackPos
= -1;
1054 boolean zzWasPushback
;
1057 zzMarkedPosL
= zzMarkedPos
;
1061 zzCurrentPosL
= zzCurrentPos
= zzStartRead
= zzMarkedPosL
;
1063 zzState
= zzLexicalState
;
1065 zzWasPushback
= false;
1070 if (zzCurrentPosL
< zzEndReadL
)
1071 zzInput
= zzBufferL
.charAt(zzCurrentPosL
++);
1077 // store back cached positions
1078 zzCurrentPos
= zzCurrentPosL
;
1079 zzMarkedPos
= zzMarkedPosL
;
1080 zzPushbackPos
= zzPushbackPosL
;
1081 boolean eof
= zzRefill();
1082 // get translated positions and possibly new buffer
1083 zzCurrentPosL
= zzCurrentPos
;
1084 zzMarkedPosL
= zzMarkedPos
;
1085 zzBufferL
= zzBuffer
;
1086 zzEndReadL
= zzEndRead
;
1087 zzPushbackPosL
= zzPushbackPos
;
1093 zzInput
= zzBufferL
.charAt(zzCurrentPosL
++);
1096 int zzNext
= zzTransL
[ zzRowMapL
[zzState
] + zzCMapL
[zzInput
] ];
1097 if (zzNext
== -1) break zzForAction
;
1100 int zzAttributes
= zzAttrL
[zzState
];
1101 if ( (zzAttributes
& 2) == 2 )
1102 zzPushbackPosL
= zzCurrentPosL
;
1104 if ( (zzAttributes
& 1) == 1 ) {
1105 zzWasPushback
= (zzAttributes
& 4) == 4;
1107 zzMarkedPosL
= zzCurrentPosL
;
1108 if ( (zzAttributes
& 8) == 8 ) break zzForAction
;
1114 // store back cached position
1115 zzMarkedPos
= zzMarkedPosL
;
1117 zzMarkedPos
= zzPushbackPosL
;
1119 switch (zzAction
< 0 ? zzAction
: ZZ_ACTION
[zzAction
]) {
1121 { yybegin(WAIT_FOR_REGEX
);
1126 { yybegin(WAIT_FOR_REGEX
);
1131 { blockStack
.push(mLCURLY
);
1132 braceCount
.push(mLCURLY
);
1133 yybegin(NLS_AFTER_LBRACE
);
1150 { yybegin(WAIT_FOR_REGEX
);
1159 { yybegin(WAIT_FOR_REGEX
);
1164 { yybegin(WAIT_FOR_REGEX
);
1165 return(mRANGE_INCLUSIVE
);
1169 { return mSH_COMMENT
;
1173 { return mWRONG_REGEX_LITERAL
;
1177 { yybegin(WAIT_FOR_REGEX
);
1182 { yybegin(IN_REGEX_DOT
);
1188 if (blockStack
.isEmpty()){
1191 yybegin(IN_INNER_BLOCK
);
1200 { yybegin(WAIT_FOR_REGEX
);
1209 { yybegin(IN_TRIPLE_GSTRING
);
1210 gStringStack
.push(mLBRACK
);
1211 return mGSTRING_BEGIN
;
1215 { yybegin(WAIT_FOR_REGEX
);
1216 return(mDIV_ASSIGN
);
1220 { return( kINSTANCEOF
);
1224 { yybegin(WAIT_FOR_REGEX
);
1229 { yybegin(WAIT_FOR_REGEX
);
1230 braceCount
.push(mLPAREN
);
1235 { yybegin(WAIT_FOR_REGEX
);
1240 { return( kSTATIC
);
1244 { if (blockStack
.isEmpty()){
1247 yybegin(IN_INNER_BLOCK
);
1257 { yybegin(WAIT_FOR_REGEX
);
1262 { return mREGEX_CONTENT
;
1266 { yybegin(WAIT_FOR_REGEX
);
1271 { yybegin(WAIT_FOR_REGEX
);
1276 { return( kPROTECTED
);
1280 { return mNUM_BIG_DECIMAL
;
1284 { yybegin(WAIT_FOR_REGEX
);
1285 return(mSPREAD_DOT
);
1289 { return( kDOUBLE
);
1293 { yybegin(IN_TRIPLE_DOT
);
1298 { blockStack
.push(mLPAREN
);
1299 braceCount
.push(mLCURLY
);
1300 yybegin(NLS_AFTER_LBRACE
);
1305 { yypushback(yytext().length());
1306 yybegin(KING_STATE_INNER_CONTENT
);
1310 { if (!gStringStack
.isEmpty()){
1313 if (blockStack
.isEmpty()){
1316 yybegin(IN_INNER_BLOCK
);
1318 return mGSTRING_END
;
1326 { yypushback(yytext().length());
1327 yybegin(KING_STATE_INNER
);
1331 { return( kNATIVE
);
1335 { yybegin(WAIT_FOR_REGEX
);
1336 return(mMEMBER_POINTER
);
1340 { if (!braceCount
.isEmpty() && mLPAREN
== braceCount
.peek()) {
1348 yybegin(WAIT_FOR_REGEX
);
1360 { return( kIMPORT
);
1364 { yybegin(WAIT_FOR_REGEX
);
1365 return(mOPTIONAL_DOT
);
1369 { yybegin(WAIT_FOR_REGEX
);
1370 return(mBAND_ASSIGN
);
1374 { return( kEXTENDS
);
1378 { yybegin(WAIT_FOR_REGEX
);
1383 { yybegin(NLS_AFTER_NLS
);
1384 afterComment
= WAIT_FOR_REGEX
;
1385 return !braceCount
.isEmpty() &&
1386 mLPAREN
== braceCount
.peek() ? mWS
: mNLS
;
1390 { yybegin(WAIT_FOR_REGEX
);
1391 return(mREGEX_FIND
);
1395 { yybegin(WAIT_FOR_REGEX
);
1400 { yybegin(WAIT_FOR_REGEX
);
1401 return(mBOR_ASSIGN
);
1405 { return( kFINALLY
);
1409 { yybegin(WAIT_FOR_REGEX
);
1414 { yybegin(WAIT_FOR_REGEX
);
1415 return(mSTAR_ASSIGN
);
1423 { return( kPUBLIC
);
1431 { blockStack
.push(mLBRACK
);
1432 braceCount
.push(mLCURLY
);
1433 yybegin(NLS_AFTER_LBRACE
);
1438 { return mSTRING_LITERAL
;
1442 { yybegin(WAIT_FOR_REGEX
);
1443 return(mMINUS_ASSIGN
);
1447 { yybegin(WAIT_FOR_REGEX
);
1448 return(mCLOSABLE_BLOCK_OP
);
1452 { return( kIMPLEMENTS
);
1456 { if (!gStringStack
.isEmpty()) {
1459 if (blockStack
.isEmpty()){
1462 yybegin(IN_INNER_BLOCK
);
1464 return mGSTRING_END
;
1468 { yybegin(WAIT_FOR_REGEX
);
1469 return(mMOD_ASSIGN
);
1473 { yybegin(WAIT_FOR_REGEX
);
1482 { return( kINTERFACE
);
1486 { yybegin(WAIT_FOR_REGEX
);
1491 { return( kPACKAGE
);
1499 { yybegin(WAIT_FOR_REGEX
);
1508 { return mSL_COMMENT
;
1512 { yybegin(IN_SINGLE_GSTRING
);
1513 gStringStack
.push(mLPAREN
);
1514 return mGSTRING_BEGIN
;
1522 { yybegin(WAIT_FOR_REGEX
);
1527 { if (blockStack
.isEmpty()){
1530 yybegin(IN_INNER_BLOCK
);
1532 return(mREGEX_LITERAL
);
1536 { yybegin(WAIT_FOR_REGEX
);
1542 yybegin(IN_SINGLE_GSTRING
);
1546 { yybegin(WAIT_FOR_REGEX
);
1557 yybegin(afterComment
);
1561 { if (zzStartRead
== 0 ||
1562 zzBuffer
.subSequence(0, zzStartRead
).toString().trim().length() == 0) {
1564 yybegin(WAIT_FOR_REGEX
);
1571 { return( kSYNCHRONIZED
);
1575 { yybegin(WAIT_FOR_REGEX
);
1580 { yybegin(KING_STATE
);
1581 return mREGEX_BEGIN
;
1586 yybegin(IN_TRIPLE_GSTRING
);
1594 { yybegin(WAIT_FOR_REGEX
);
1599 { yybegin(WAIT_FOR_REGEX
);
1608 { yybegin(IN_SINGLE_IDENT
);
1613 { return mNUM_DOUBLE
;
1617 { return( kDEFAULT
);
1621 { yybegin(WAIT_FOR_REGEX
);
1622 return(mREGEX_MATCH
);
1626 { gStringStack
.clear();
1628 return mWRONG_REGEX_LITERAL
;
1632 { return( kTRANSIENT
);
1636 { yybegin(KING_STATE_CONTENT
);
1637 return mREGEX_CONTENT
;
1641 { yybegin(WAIT_FOR_REGEX
);
1646 { return GROOVY_DOC_COMMENT
;
1650 { yybegin(NLS_AFTER_NLS
);
1651 afterComment
= YYINITIAL
;
1657 { return( kSWITCH
);
1661 { if (!braceCount
.isEmpty() && mLCURLY
== braceCount
.peek()) {
1668 { return mGSTRING_LITERAL
;
1672 { yybegin(WAIT_FOR_REGEX
);
1673 braceCount
.push(mLPAREN
);
1679 yybegin(IN_TRIPLE_IDENT
);
1687 { yybegin(WAIT_FOR_REGEX
);
1688 return(mBSR_ASSIGN
);
1696 { yybegin(WAIT_FOR_REGEX
);
1705 { yybegin(IN_SINGLE_DOT
);
1710 { yybegin(WAIT_FOR_REGEX
);
1715 { return( kTHROWS
);
1719 { return mNUM_FLOAT
;
1723 { yybegin(WAIT_FOR_REGEX
);
1724 return(mTRIPLE_DOT
);
1728 { yypushback(yytext().length());
1729 gStringStack
.push(mDIV
); // For regexes
1730 yybegin(IN_REGEX_DOLLAR
);
1738 { return( kSTRICTFP
);
1743 yybegin(NLS_AFTER_COMMENT
);
1747 { return( kABSTRACT
);
1759 { yybegin(NLS_AFTER_NLS
);
1760 afterComment
= IN_TRIPLE_IDENT
;
1765 { yybegin(WAIT_FOR_REGEX
);
1766 return(mRANGE_EXCLUSIVE
);
1770 { return( kCONTINUE
);
1774 { yybegin(WAIT_FOR_REGEX
);
1791 { yybegin(WAIT_FOR_REGEX
);
1796 { return( kBOOLEAN
);
1800 { return( kASSERT
);
1804 { yybegin(IN_REGEX_IDENT
);
1809 { if (!blockStack
.isEmpty()) {
1810 IElementType br
= blockStack
.pop();
1811 if (br
.equals(mLPAREN
)) yybegin(IN_SINGLE_GSTRING
);
1812 if (br
.equals(mLBRACK
)) yybegin(IN_TRIPLE_GSTRING
);
1813 if (br
.equals(mDIV
)) yybegin(IN_REGEX
);
1815 if (!braceCount
.isEmpty() && mLCURLY
== braceCount
.peek()) {
1826 { return( kPRIVATE
);
1830 { yybegin(IN_TRIPLE_GSTRING_DOLLAR
);
1839 { if (!braceCount
.isEmpty() && mLPAREN
== braceCount
.peek()) {
1846 { yybegin(NLS_AFTER_LBRACE
);
1847 braceCount
.push(mLCURLY
);
1852 { return( kVOLATILE
);
1856 { yybegin(IN_TRIPLE_NLS
);
1861 { yybegin(WAIT_FOR_REGEX
);
1866 { yybegin(WAIT_FOR_REGEX
);
1871 { return mNUM_BIG_INT
;
1875 { if (!gStringStack
.isEmpty()) {
1878 if (blockStack
.isEmpty()){
1881 yybegin(IN_INNER_BLOCK
);
1891 { yybegin(WAIT_FOR_REGEX
);
1892 return(mPLUS_ASSIGN
);
1896 { yybegin(WAIT_FOR_REGEX
);
1901 { yybegin(WAIT_FOR_REGEX
);
1902 return(mCOMPARE_TO
);
1906 { yybegin(WAIT_FOR_REGEX
);
1907 return(mBXOR_ASSIGN
);
1911 { afterComment
= YYINITIAL
;
1916 { return( kRETURN
);
1920 { return mREGEX_BEGIN
;
1924 { return mGSTRING_CONTENT
;
1928 { yybegin(WAIT_FOR_REGEX
);
1929 return(mSTAR_STAR_ASSIGN
);
1937 { yybegin(IN_SINGLE_GSTRING_DOLLAR
);
1943 yybegin(NLS_AFTER_NLS
);
1944 afterComment
= YYINITIAL
;
1949 { blockStack
.push(mDIV
);
1950 braceCount
.push(mLCURLY
);
1951 yybegin(NLS_AFTER_LBRACE
);
1964 { return mML_COMMENT
;
1968 if (zzInput
== YYEOF
&& zzStartRead
== zzCurrentPos
) {
1974 zzScanError(ZZ_NO_MATCH
);