Skip to contentMethod: yybegin(int)
      1: /* The following code was generated by JFlex 1.6.1 */
2: 
3: package pruefskript.scanner;
4: 
5: /*----------------------------------------------------------------------------
6:  *  lex.l - functions for scanning extended check scripts
7:  *
8:  *  Copyright (c) 2002-2012 The fli4l team
9:  *
10:  *  This file is part of fli4l.
11:  *
12:  *  fli4l is free software: you can redistribute it and/or modify
13:  *  it under the terms of the GNU General Public License as published by
14:  *  the Free Software Foundation, either version 3 of the License, or
15:  *  (at your option) any later version.
16:  *
17:  *  fli4l is distributed in the hope that it will be useful,
18:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
19:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20:  *  GNU General Public License for more details.
21:  *
22:  *  You should have received a copy of the GNU General Public License
23:  *  along with fli4l.  If not, see <http://www.gnu.org/licenses/>.
24:  *
25:  *  Last Update: $Id$
26:  *----------------------------------------------------------------------------
27:  */
28: import pruefskript.parser.ExtParser;
29: import pruefskript.parser.ExtParserVal;
30: import pruefskript.parser.nodes.IDNode;
31: import pruefskript.parser.nodes.IdSetNode;
32: import pruefskript.parser.nodes.MajorVerNode;
33: import pruefskript.parser.nodes.NumNode;
34: import pruefskript.parser.nodes.StringNode;
35: import pruefskript.parser.nodes.VerNode;
36: import pruefskript.parser.nodes.VerExprNode;
37:  // This will suppress all the PMD warnings in this class
38: @SuppressWarnings("PMD")
39: 
40: /**
41:  * This class is a scanner generated by 
42:  * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
43:  * from the specification file <tt>extScanner.flex</tt>
44:  */
45: public class ExtScanner {
46: 
47:   /** This character denotes the end of file */
48:   public static final int YYEOF = -1;
49: 
50:   /** initial size of the lookahead buffer */
51:   private static final int ZZ_BUFFERSIZE = 16384;
52: 
53:   /** lexical states */
54:   public static final int YYINITIAL = 0;
55: 
56:   /**
57:    * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
58:    * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
59:    *                  at the beginning of a line
60:    * l is of the form l = 2*k, k a non negative integer
61:    */
62:   private static final int ZZ_LEXSTATE[] = { 
63:      0, 0
64:   };
65: 
66:   /** 
67:    * Translates characters to character classes
68:    */
69:   private static final String ZZ_CMAP_PACKED = 
70:     "\11\0\1\117\1\72\1\74\1\74\1\73\22\0\1\117\1\76\1\70"+
71:     "\1\116\1\0\1\7\1\107\1\71\1\100\1\101\1\113\1\111\1\104"+
72:     "\1\112\1\64\1\114\1\2\3\4\1\66\5\4\1\65\1\0\1\105"+
73:     "\1\75\1\106\1\115\1\0\1\37\1\63\1\50\1\31\1\22\1\13"+
74:     "\1\41\1\21\1\12\2\5\1\26\1\55\1\23\1\43\1\45\1\57"+
75:     "\1\40\1\27\1\20\1\54\1\61\1\36\1\5\1\51\1\5\1\102"+
76:     "\1\67\1\103\1\0\1\6\1\0\1\33\1\62\1\46\1\30\1\16"+
77:     "\1\11\1\35\1\15\1\10\2\5\1\24\1\53\1\17\1\42\1\44"+
78:     "\1\56\1\34\1\25\1\14\1\52\1\60\1\32\1\3\1\47\1\5"+
79:     "\1\67\1\110\1\67\1\77\6\0\1\74\u1fa2\0\1\74\1\74\uded5\0"+
80:     "\1\1\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u0110\0";
81: 
82:   /** 
83:    * Translates characters to character classes
84:    */
85:   private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
86: 
87:   /** 
88:    * Translates DFA states to action switch labels.
89:    */
90:   private static final int [] ZZ_ACTION = zzUnpackAction();
91: 
92:   private static final String ZZ_ACTION_PACKED_0 =
93:     "\1\0\1\1\1\2\1\3\1\4\1\3\1\1\1\5"+
94:     "\34\4\1\6\2\1\1\7\1\2\1\10\1\11\1\12"+
95:     "\1\13\1\14\1\15\1\16\1\17\1\20\2\1\1\21"+
96:     "\1\22\1\23\1\24\1\1\1\2\1\3\2\0\1\4"+
97:     "\1\0\1\25\1\26\1\27\31\4\1\30\1\4\1\30"+
98:     "\4\4\1\31\12\4\1\0\1\32\1\0\1\33\1\34"+
99:     "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44"+
100:     "\1\0\17\4\1\45\33\4\1\46\1\47\1\44\1\0"+
101:     "\6\4\1\50\1\51\4\4\1\52\10\4\1\53\20\4"+
102:     "\1\54\1\47\1\44\1\0\1\4\1\55\3\4\1\56"+
103:     "\3\4\1\57\15\4\1\60\6\4\1\0\7\4\1\61"+
104:     "\15\4\1\62\2\4\1\0\1\4\1\63\1\4\1\64"+
105:     "\1\65\1\66\1\67\1\70\6\4\1\71\1\0\4\4"+
106:     "\1\72\2\4\1\0\6\4\1\0\2\4\1\73\2\4"+
107:     "\1\0\1\74\2\4\1\54\1\75";
108: 
109:   private static int [] zzUnpackAction() {
110:     int [] result = new int[310];
111:     int offset = 0;
112:     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
113:     return result;
114:   }
115: 
116:   private static int zzUnpackAction(String packed, int offset, int [] result) {
117:     int i = 0;       /* index in packed string  */
118:     int j = offset;  /* index in unpacked array */
119:     int l = packed.length();
120:     while (i < l) {
121:       int count = packed.charAt(i++);
122:       int value = packed.charAt(i++);
123:       do result[j++] = value; while (--count > 0);
124:     }
125:     return j;
126:   }
127: 
128: 
129:   /** 
130:    * Translates a state to a row index in the transition table
131:    */
132:   private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
133: 
134:   private static final String ZZ_ROWMAP_PACKED_0 =
135:     "\0\0\0\120\0\120\0\240\0\360\0\u0140\0\u0190\0\120"+
136:     "\0\u01e0\0\u0230\0\u0280\0\u02d0\0\u0320\0\u0370\0\u03c0\0\u0410"+
137:     "\0\u0460\0\u04b0\0\u0500\0\u0550\0\u05a0\0\u05f0\0\u0640\0\u0690"+
138:     "\0\u06e0\0\u0730\0\u0780\0\u07d0\0\u0820\0\u0870\0\u08c0\0\u0910"+
139:     "\0\u0960\0\u09b0\0\u0a00\0\u0a50\0\120\0\u0aa0\0\u0af0\0\u0b40"+
140:     "\0\u0b90\0\u0be0\0\u0c30\0\120\0\120\0\120\0\120\0\120"+
141:     "\0\u0c80\0\u0cd0\0\u0d20\0\u0d70\0\120\0\120\0\120\0\120"+
142:     "\0\u0dc0\0\u0e10\0\u0e60\0\u0e60\0\u0eb0\0\u0f00\0\u0f50\0\360"+
143:     "\0\360\0\360\0\u0fa0\0\u0ff0\0\u1040\0\u1090\0\u10e0\0\u1130"+
144:     "\0\u1180\0\u11d0\0\u1220\0\u1270\0\u12c0\0\u1310\0\u1360\0\u13b0"+
145:     "\0\u1400\0\u1450\0\u14a0\0\u14f0\0\u1540\0\u1590\0\u15e0\0\u1630"+
146:     "\0\u1680\0\u16d0\0\u1720\0\u1770\0\u17c0\0\u1810\0\u1860\0\u18b0"+
147:     "\0\u1900\0\u1950\0\360\0\u19a0\0\u19f0\0\u1a40\0\u1a90\0\u1ae0"+
148:     "\0\u1b30\0\u1b80\0\u1bd0\0\u1c20\0\u1c70\0\u0aa0\0\120\0\u1cc0"+
149:     "\0\120\0\120\0\120\0\120\0\120\0\120\0\120\0\120"+
150:     "\0\u1d10\0\u1d60\0\u1db0\0\u1e00\0\u1e50\0\u1ea0\0\u1ef0\0\u1f40"+
151:     "\0\u1f90\0\u1fe0\0\u2030\0\u2080\0\u20d0\0\u2120\0\u2170\0\u21c0"+
152:     "\0\u2210\0\u2260\0\360\0\u22b0\0\u2300\0\u2350\0\u23a0\0\u23f0"+
153:     "\0\u2440\0\u2490\0\u24e0\0\u2530\0\u2580\0\u25d0\0\u2620\0\u2670"+
154:     "\0\u26c0\0\u2710\0\u2760\0\u27b0\0\u2800\0\u2850\0\u28a0\0\u28f0"+
155:     "\0\u2940\0\u2990\0\u29e0\0\u2a30\0\u2a80\0\u2ad0\0\120\0\u2b20"+
156:     "\0\u2b70\0\u2bc0\0\u2c10\0\u2c60\0\u2cb0\0\u2d00\0\u2d50\0\u2da0"+
157:     "\0\360\0\360\0\u2df0\0\u2e40\0\u2e90\0\u2ee0\0\360\0\u2f30"+
158:     "\0\u2f80\0\u2fd0\0\u3020\0\u3070\0\u30c0\0\u3110\0\u3160\0\360"+
159:     "\0\u31b0\0\u3200\0\u3250\0\u32a0\0\u32f0\0\u3340\0\u3390\0\u33e0"+
160:     "\0\u3430\0\u3480\0\u34d0\0\u3520\0\u3570\0\u35c0\0\u3610\0\u3660"+
161:     "\0\u36b0\0\u3700\0\u3750\0\u37a0\0\u37f0\0\360\0\u3840\0\u3890"+
162:     "\0\u38e0\0\360\0\u3930\0\u3980\0\u39d0\0\360\0\u3a20\0\u3a70"+
163:     "\0\u3ac0\0\u3b10\0\u3b60\0\u3bb0\0\u3c00\0\u3c50\0\u3ca0\0\u3cf0"+
164:     "\0\u3d40\0\u3d90\0\u3de0\0\360\0\u3e30\0\u3e80\0\u3ed0\0\u3f20"+
165:     "\0\u3f70\0\u3fc0\0\u4010\0\u4060\0\u40b0\0\u4100\0\u4150\0\u41a0"+
166:     "\0\u41f0\0\u4240\0\360\0\u4290\0\u42e0\0\u4330\0\u4380\0\u43d0"+
167:     "\0\u4420\0\u4470\0\u44c0\0\u4510\0\u4560\0\u45b0\0\u4600\0\u4650"+
168:     "\0\360\0\u46a0\0\u46f0\0\u4740\0\u4790\0\360\0\u47e0\0\360"+
169:     "\0\360\0\360\0\360\0\360\0\u4830\0\u4880\0\u48d0\0\u4920"+
170:     "\0\u4970\0\u49c0\0\360\0\u4a10\0\u4a60\0\u4ab0\0\u4b00\0\u4b50"+
171:     "\0\360\0\u4ba0\0\u4bf0\0\u4c40\0\u4c90\0\u4ce0\0\u4d30\0\u4d80"+
172:     "\0\u4dd0\0\u4e20\0\u4e70\0\u4ec0\0\u4f10\0\360\0\u4f60\0\u4fb0"+
173:     "\0\u5000\0\360\0\u5050\0\u50a0\0\120\0\360";
174: 
175:   private static int [] zzUnpackRowMap() {
176:     int [] result = new int[310];
177:     int offset = 0;
178:     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
179:     return result;
180:   }
181: 
182:   private static int zzUnpackRowMap(String packed, int offset, int [] result) {
183:     int i = 0;  /* index in packed string  */
184:     int j = offset;  /* index in unpacked array */
185:     int l = packed.length();
186:     while (i < l) {
187:       int high = packed.charAt(i++) << 16;
188:       result[j++] = high | packed.charAt(i++);
189:     }
190:     return j;
191:   }
192: 
193:   /** 
194:    * The transition table of the DFA
195:    */
196:   private static final int [] ZZ_TRANS = zzUnpackTrans();
197: 
198:   private static final String ZZ_TRANS_PACKED_0 =
199:     "\1\2\1\3\1\4\1\5\1\6\1\5\1\7\1\10"+
200:     "\1\11\1\12\1\13\1\14\1\15\1\5\1\16\1\17"+
201:     "\1\20\1\5\1\21\1\22\1\5\1\23\1\5\1\24"+
202:     "\1\25\1\26\1\27\1\30\2\5\1\31\1\32\2\5"+
203:     "\1\33\1\34\1\35\1\36\1\37\1\5\1\40\1\5"+
204:     "\1\41\1\5\1\42\3\5\1\43\1\44\2\5\1\2"+
205:     "\1\45\1\6\1\2\1\46\1\47\1\50\1\51\1\0"+
206:     "\1\52\1\53\1\2\1\54\1\55\1\56\1\57\1\60"+
207:     "\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70"+
208:     "\1\71\1\72\1\51\122\0\1\73\1\74\1\73\57\0"+
209:     "\1\75\1\0\1\73\33\0\4\5\1\76\1\0\54\5"+
210:     "\2\0\1\5\33\0\1\73\1\0\1\73\57\0\1\75"+
211:     "\1\0\1\73\37\0\1\77\113\0\4\5\1\76\1\0"+
212:     "\1\5\1\100\5\5\1\101\44\5\2\0\1\5\33\0"+
213:     "\4\5\1\76\1\0\1\102\22\5\1\103\1\5\1\104"+
214:     "\4\5\1\105\21\5\2\0\1\5\33\0\4\5\1\76"+
215:     "\1\0\3\5\1\100\7\5\1\101\40\5\2\0\1\5"+
216:     "\33\0\4\5\1\76\1\0\2\5\1\102\24\5\1\106"+
217:     "\1\5\1\107\1\5\1\110\20\5\2\0\1\5\33\0"+
218:     "\4\5\1\76\1\0\5\5\1\111\46\5\2\0\1\5"+
219:     "\33\0\4\5\1\76\1\0\14\5\1\112\7\5\1\113"+
220:     "\27\5\2\0\1\5\33\0\4\5\1\76\1\0\42\5"+
221:     "\1\114\11\5\2\0\1\5\33\0\4\5\1\76\1\0"+
222:     "\11\5\1\115\42\5\2\0\1\5\33\0\4\5\1\76"+
223:     "\1\0\16\5\1\116\11\5\1\117\23\5\2\0\1\5"+
224:     "\33\0\4\5\1\76\1\0\44\5\1\120\7\5\2\0"+
225:     "\1\5\33\0\4\5\1\76\1\0\4\5\1\121\1\5"+
226:     "\1\122\14\5\1\123\10\5\1\124\5\5\1\125\11\5"+
227:     "\2\0\1\5\33\0\4\5\1\76\1\0\10\5\1\126"+
228:     "\1\5\1\127\14\5\1\130\5\5\1\131\6\5\1\132"+
229:     "\7\5\2\0\1\5\33\0\4\5\1\76\1\0\6\5"+
230:     "\1\133\23\5\1\134\21\5\2\0\1\5\33\0\4\5"+
231:     "\1\76\1\0\12\5\1\135\20\5\1\136\20\5\2\0"+
232:     "\1\5\33\0\4\5\1\76\1\0\23\5\1\137\30\5"+
233:     "\2\0\1\5\33\0\4\5\1\76\1\0\20\5\1\140"+
234:     "\33\5\2\0\1\5\33\0\4\5\1\76\1\0\27\5"+
235:     "\1\141\24\5\2\0\1\5\33\0\4\5\1\76\1\0"+
236:     "\21\5\1\142\32\5\2\0\1\5\33\0\4\5\1\76"+
237:     "\1\0\7\5\1\143\44\5\2\0\1\5\33\0\4\5"+
238:     "\1\76\1\0\13\5\1\143\40\5\2\0\1\5\33\0"+
239:     "\4\5\1\76\1\0\24\5\1\144\27\5\2\0\1\5"+
240:     "\33\0\4\5\1\76\1\0\30\5\1\145\23\5\2\0"+
241:     "\1\5\33\0\4\5\1\76\1\0\24\5\1\146\5\5"+
242:     "\1\147\21\5\2\0\1\5\33\0\4\5\1\76\1\0"+
243:     "\30\5\1\150\2\5\1\151\20\5\2\0\1\5\33\0"+
244:     "\4\5\1\76\1\0\7\5\1\152\44\5\2\0\1\5"+
245:     "\33\0\4\5\1\76\1\0\13\5\1\153\40\5\2\0"+
246:     "\1\5\33\0\4\5\1\76\1\0\6\5\1\154\45\5"+
247:     "\2\0\1\5\33\0\4\5\1\76\1\0\12\5\1\155"+
248:     "\41\5\2\0\1\5\31\0\70\156\1\157\27\156\72\160"+
249:     "\3\0\23\160\72\0\1\50\120\0\1\51\23\0\1\51"+
250:     "\75\0\1\161\1\0\1\162\115\0\1\163\117\0\1\164"+
251:     "\117\0\1\165\131\0\1\166\120\0\1\167\74\0\1\170"+
252:     "\32\0\72\72\3\0\23\72\2\0\1\73\1\0\1\73"+
253:     "\61\0\1\73\33\0\1\171\1\0\1\171\61\0\1\171"+
254:     "\33\0\4\5\1\76\1\172\54\5\2\0\1\5\44\0"+
255:     "\1\173\106\0\4\5\1\76\1\0\4\5\1\174\47\5"+
256:     "\2\0\1\5\33\0\4\5\1\76\1\0\24\5\1\175"+
257:     "\27\5\2\0\1\5\33\0\4\5\1\76\1\0\24\5"+
258:     "\1\176\27\5\2\0\1\5\33\0\4\5\1\76\1\0"+
259:     "\10\5\1\177\43\5\2\0\1\5\33\0\4\5\1\76"+
260:     "\1\0\30\5\1\200\23\5\2\0\1\5\33\0\4\5"+
261:     "\1\76\1\0\30\5\1\201\23\5\2\0\1\5\33\0"+
262:     "\4\5\1\76\1\0\6\5\1\202\45\5\2\0\1\5"+
263:     "\33\0\4\5\1\76\1\0\15\5\1\203\36\5\2\0"+
264:     "\1\5\33\0\4\5\1\76\1\0\24\5\1\204\27\5"+
265:     "\2\0\1\5\33\0\4\5\1\76\1\0\43\5\1\205"+
266:     "\10\5\2\0\1\5\33\0\4\5\1\76\1\0\12\5"+
267:     "\1\206\41\5\2\0\1\5\33\0\4\5\1\76\1\0"+
268:     "\17\5\1\207\34\5\2\0\1\5\33\0\4\5\1\76"+
269:     "\1\0\30\5\1\210\23\5\2\0\1\5\33\0\4\5"+
270:     "\1\76\1\0\45\5\1\211\6\5\2\0\1\5\33\0"+
271:     "\4\5\1\76\1\0\23\5\1\212\30\5\2\0\1\5"+
272:     "\33\0\4\5\1\76\1\0\4\5\1\213\47\5\2\0"+
273:     "\1\5\33\0\4\5\1\76\1\0\43\5\1\214\10\5"+
274:     "\2\0\1\5\33\0\4\5\1\76\1\0\14\5\1\215"+
275:     "\37\5\2\0\1\5\33\0\4\5\1\76\1\0\52\5"+
276:     "\1\216\1\5\2\0\1\5\33\0\4\5\1\76\1\0"+
277:     "\27\5\1\217\24\5\2\0\1\5\33\0\4\5\1\76"+
278:     "\1\0\10\5\1\213\43\5\2\0\1\5\33\0\4\5"+
279:     "\1\76\1\0\45\5\1\220\6\5\2\0\1\5\33\0"+
280:     "\4\5\1\76\1\0\16\5\1\221\35\5\2\0\1\5"+
281:     "\33\0\4\5\1\76\1\0\53\5\1\222\2\0\1\5"+
282:     "\33\0\4\5\1\76\1\0\1\5\1\223\32\5\1\224"+
283:     "\17\5\2\0\1\5\33\0\4\5\1\76\1\0\7\5"+
284:     "\1\225\44\5\2\0\1\5\33\0\4\5\1\76\1\0"+
285:     "\3\5\1\226\31\5\1\227\16\5\2\0\1\5\33\0"+
286:     "\4\5\1\76\1\0\13\5\1\230\40\5\2\0\1\5"+
287:     "\33\0\4\5\1\76\1\0\24\5\1\231\27\5\2\0"+
288:     "\1\5\33\0\4\5\1\76\1\0\20\5\1\232\33\5"+
289:     "\2\0\1\5\33\0\4\5\1\76\1\0\30\5\1\233"+
290:     "\23\5\2\0\1\5\33\0\4\5\1\76\1\0\21\5"+
291:     "\1\234\32\5\2\0\1\5\33\0\4\5\1\76\1\0"+
292:     "\32\5\1\235\21\5\2\0\1\5\33\0\4\5\1\76"+
293:     "\1\0\33\5\1\236\20\5\2\0\1\5\33\0\4\5"+
294:     "\1\76\1\0\37\5\1\237\14\5\2\0\1\5\33\0"+
295:     "\4\5\1\76\1\0\34\5\1\240\17\5\2\0\1\5"+
296:     "\33\0\4\5\1\76\1\0\41\5\1\241\12\5\2\0"+
297:     "\1\5\33\0\4\5\1\76\1\0\35\5\1\242\16\5"+
298:     "\2\0\1\5\33\0\4\5\1\76\1\0\1\243\53\5"+
299:     "\2\0\1\5\33\0\4\5\1\76\1\0\2\5\1\244"+
300:     "\51\5\2\0\1\5\33\0\4\5\1\76\1\0\24\5"+
301:     "\1\245\27\5\2\0\1\5\33\0\4\5\1\76\1\0"+
302:     "\30\5\1\246\23\5\2\0\1\5\122\0\1\247\112\0"+
303:     "\1\250\41\0\1\251\137\0\1\252\73\0\4\5\1\76"+
304:     "\1\0\23\5\1\253\30\5\2\0\1\5\33\0\4\5"+
305:     "\1\76\1\0\6\5\1\254\45\5\2\0\1\5\33\0"+
306:     "\4\5\1\76\1\0\6\5\1\255\45\5\2\0\1\5"+
307:     "\33\0\4\5\1\76\1\0\27\5\1\256\24\5\2\0"+
308:     "\1\5\33\0\4\5\1\76\1\0\12\5\1\257\41\5"+
309:     "\2\0\1\5\33\0\4\5\1\76\1\0\12\5\1\260"+
310:     "\41\5\2\0\1\5\33\0\4\5\1\76\1\0\7\5"+
311:     "\1\261\44\5\2\0\1\5\33\0\4\5\1\76\1\0"+
312:     "\6\5\1\262\45\5\2\0\1\5\33\0\4\5\1\76"+
313:     "\1\0\32\5\1\263\21\5\2\0\1\5\33\0\4\5"+
314:     "\1\76\1\0\6\5\1\264\45\5\2\0\1\5\33\0"+
315:     "\4\5\1\76\1\0\13\5\1\261\40\5\2\0\1\5"+
316:     "\33\0\4\5\1\76\1\0\12\5\1\262\41\5\2\0"+
317:     "\1\5\33\0\4\5\1\76\1\0\33\5\1\265\20\5"+
318:     "\2\0\1\5\33\0\4\5\1\76\1\0\12\5\1\266"+
319:     "\41\5\2\0\1\5\33\0\4\5\1\76\1\0\4\5"+
320:     "\1\267\47\5\2\0\1\5\33\0\4\5\1\76\1\0"+
321:     "\6\5\1\270\45\5\2\0\1\5\33\0\4\5\1\76"+
322:     "\1\0\1\271\53\5\2\0\1\5\33\0\4\5\1\76"+
323:     "\1\0\7\5\1\272\44\5\2\0\1\5\33\0\4\5"+
324:     "\1\76\1\0\10\5\1\267\43\5\2\0\1\5\33\0"+
325:     "\4\5\1\76\1\0\12\5\1\273\41\5\2\0\1\5"+
326:     "\33\0\4\5\1\76\1\0\2\5\1\274\51\5\2\0"+
327:     "\1\5\33\0\4\5\1\76\1\0\13\5\1\275\40\5"+
328:     "\2\0\1\5\33\0\4\5\1\76\1\0\1\276\53\5"+
329:     "\2\0\1\5\33\0\4\5\1\76\1\0\6\5\1\277"+
330:     "\45\5\2\0\1\5\33\0\4\5\1\76\1\0\6\5"+
331:     "\1\300\45\5\2\0\1\5\33\0\4\5\1\76\1\0"+
332:     "\2\5\1\301\51\5\2\0\1\5\33\0\4\5\1\76"+
333:     "\1\0\12\5\1\302\41\5\2\0\1\5\33\0\4\5"+
334:     "\1\76\1\0\12\5\1\300\41\5\2\0\1\5\33\0"+
335:     "\4\5\1\76\1\0\7\5\1\303\44\5\2\0\1\5"+
336:     "\33\0\4\5\1\304\1\0\54\5\2\0\1\5\33\0"+
337:     "\4\5\1\76\1\0\13\5\1\305\40\5\2\0\1\5"+
338:     "\33\0\4\5\1\306\1\0\54\5\2\0\1\5\33\0"+
339:     "\4\5\1\76\1\0\50\5\1\307\3\5\2\0\1\5"+
340:     "\33\0\4\5\1\76\1\0\51\5\1\310\2\5\2\0"+
341:     "\1\5\33\0\4\5\1\76\1\0\34\5\1\311\17\5"+
342:     "\2\0\1\5\33\0\4\5\1\76\1\0\37\5\1\312"+
343:     "\14\5\2\0\1\5\33\0\4\5\1\76\1\0\35\5"+
344:     "\1\313\16\5\2\0\1\5\33\0\4\5\1\76\1\0"+
345:     "\41\5\1\314\12\5\2\0\1\5\33\0\4\5\1\76"+
346:     "\1\0\46\5\1\315\5\5\2\0\1\5\33\0\4\5"+
347:     "\1\76\1\0\47\5\1\316\4\5\2\0\1\5\33\0"+
348:     "\4\5\1\76\1\0\15\5\1\317\36\5\2\0\1\5"+
349:     "\33\0\4\5\1\76\1\0\17\5\1\320\34\5\2\0"+
350:     "\1\5\33\0\1\321\1\0\1\321\57\0\1\322\1\0"+
351:     "\1\321\1\322\12\0\2\322\5\0\3\322\1\0\1\322"+
352:     "\4\0\4\251\1\323\1\0\54\251\2\0\1\251\43\0"+
353:     "\1\324\107\0\4\5\1\76\1\0\14\5\1\325\37\5"+
354:     "\2\0\1\5\33\0\4\5\1\76\1\0\34\5\1\326"+
355:     "\17\5\2\0\1\5\33\0\4\5\1\76\1\0\23\5"+
356:     "\1\327\30\5\2\0\1\5\33\0\4\5\1\76\1\0"+
357:     "\16\5\1\330\35\5\2\0\1\5\33\0\4\5\1\76"+
358:     "\1\0\35\5\1\326\16\5\2\0\1\5\33\0\4\5"+
359:     "\1\76\1\0\27\5\1\331\24\5\2\0\1\5\33\0"+
360:     "\4\5\1\76\1\0\24\5\1\332\27\5\2\0\1\5"+
361:     "\33\0\4\5\1\76\1\0\24\5\1\333\27\5\2\0"+
362:     "\1\5\33\0\4\5\1\76\1\0\30\5\1\332\23\5"+
363:     "\2\0\1\5\33\0\4\5\1\76\1\0\30\5\1\334"+
364:     "\23\5\2\0\1\5\33\0\4\5\1\76\1\0\7\5"+
365:     "\1\335\44\5\2\0\1\5\33\0\4\5\1\76\1\0"+
366:     "\4\5\1\336\47\5\2\0\1\5\33\0\4\5\1\76"+
367:     "\1\0\6\5\1\337\45\5\2\0\1\5\33\0\4\5"+
368:     "\1\76\1\0\13\5\1\340\40\5\2\0\1\5\33\0"+
369:     "\4\5\1\76\1\0\10\5\1\336\43\5\2\0\1\5"+
370:     "\33\0\4\5\1\76\1\0\12\5\1\341\41\5\2\0"+
371:     "\1\5\33\0\4\5\1\76\1\0\7\5\1\342\44\5"+
372:     "\2\0\1\5\33\0\4\5\1\76\1\0\7\5\1\343"+
373:     "\44\5\2\0\1\5\33\0\4\5\1\76\1\0\13\5"+
374:     "\1\344\40\5\2\0\1\5\33\0\4\5\1\76\1\0"+
375:     "\13\5\1\345\40\5\2\0\1\5\33\0\4\5\1\76"+
376:     "\1\0\1\346\53\5\2\0\1\5\33\0\4\5\1\76"+
377:     "\1\172\4\5\1\347\47\5\2\0\1\5\33\0\4\5"+
378:     "\1\76\1\0\2\5\1\350\51\5\2\0\1\5\33\0"+
379:     "\4\5\1\76\1\172\10\5\1\351\43\5\2\0\1\5"+
380:     "\33\0\4\5\1\76\1\0\1\352\53\5\2\0\1\5"+
381:     "\33\0\4\5\1\76\1\0\2\5\1\353\51\5\2\0"+
382:     "\1\5\33\0\4\5\1\76\1\0\4\5\1\354\47\5"+
383:     "\2\0\1\5\33\0\4\5\1\355\1\0\54\5\2\0"+
384:     "\1\5\33\0\4\5\1\76\1\0\10\5\1\354\43\5"+
385:     "\2\0\1\5\33\0\4\5\1\356\1\0\54\5\2\0"+
386:     "\1\5\33\0\4\5\1\76\1\0\42\5\1\357\11\5"+
387:     "\2\0\1\5\33\0\4\5\1\76\1\0\44\5\1\360"+
388:     "\7\5\2\0\1\5\33\0\4\5\1\76\1\0\1\361"+
389:     "\53\5\2\0\1\5\33\0\4\5\1\76\1\0\2\5"+
390:     "\1\362\51\5\2\0\1\5\31\0\16\321\1\0\6\321"+
391:     "\1\0\5\321\1\0\10\321\1\0\1\321\1\0\16\321"+
392:     "\1\0\32\321\2\0\1\322\1\0\1\322\57\0\1\322"+
393:     "\1\0\2\322\12\0\2\322\5\0\3\322\1\0\1\322"+
394:     "\4\0\4\251\1\323\1\172\54\251\2\0\1\251\117\0"+
395:     "\1\363\33\0\4\5\1\364\1\0\54\5\2\0\1\5"+
396:     "\33\0\4\5\1\76\1\0\36\5\1\365\15\5\2\0"+
397:     "\1\5\33\0\4\5\1\366\1\0\54\5\2\0\1\5"+
398:     "\33\0\4\5\1\76\1\0\40\5\1\367\13\5\2\0"+
399:     "\1\5\33\0\4\5\1\76\1\0\1\370\53\5\2\0"+
400:     "\1\5\33\0\4\5\1\76\1\0\2\5\1\371\51\5"+
401:     "\2\0\1\5\33\0\4\5\1\76\1\0\6\5\1\372"+
402:     "\45\5\2\0\1\5\33\0\4\5\1\76\1\0\4\5"+
403:     "\1\373\47\5\2\0\1\5\33\0\4\5\1\76\1\0"+
404:     "\12\5\1\374\41\5\2\0\1\5\33\0\4\5\1\76"+
405:     "\1\0\10\5\1\373\43\5\2\0\1\5\33\0\4\5"+
406:     "\1\76\1\0\6\5\1\375\45\5\2\0\1\5\33\0"+
407:     "\4\5\1\76\1\0\20\5\1\376\33\5\2\0\1\5"+
408:     "\33\0\4\5\1\76\1\0\12\5\1\377\41\5\2\0"+
409:     "\1\5\33\0\4\5\1\76\1\0\21\5\1\u0100\32\5"+
410:     "\2\0\1\5\33\0\4\5\1\76\1\0\7\5\1\u0101"+
411:     "\44\5\2\0\1\5\33\0\4\5\1\76\1\0\32\5"+
412:     "\1\u0102\21\5\2\0\1\5\33\0\4\5\1\76\1\0"+
413:     "\13\5\1\u0103\40\5\2\0\1\5\33\0\4\5\1\76"+
414:     "\1\0\33\5\1\u0104\20\5\2\0\1\5\33\0\4\5"+
415:     "\1\76\1\0\20\5\1\u0105\33\5\2\0\1\5\33\0"+
416:     "\4\5\1\76\1\0\21\5\1\u0106\32\5\2\0\1\5"+
417:     "\33\0\4\5\1\76\1\172\34\5\1\u0107\17\5\2\0"+
418:     "\1\5\33\0\4\5\1\76\1\172\35\5\1\u0108\16\5"+
419:     "\2\0\1\5\33\0\4\5\1\76\1\0\6\5\1\u0109"+
420:     "\45\5\2\0\1\5\33\0\4\5\1\76\1\0\12\5"+
421:     "\1\u0109\41\5\2\0\1\5\33\0\4\5\1\76\1\0"+
422:     "\32\5\1\u010a\21\5\2\0\1\5\33\0\4\5\1\76"+
423:     "\1\0\33\5\1\u010b\20\5\2\0\1\5\57\0\1\u010c"+
424:     "\73\0\4\5\1\76\1\172\6\5\1\u010d\45\5\2\0"+
425:     "\1\5\33\0\4\5\1\76\1\0\5\5\1\u010e\46\5"+
426:     "\2\0\1\5\33\0\4\5\1\76\1\172\12\5\1\u010f"+
427:     "\41\5\2\0\1\5\33\0\4\5\1\76\1\0\11\5"+
428:     "\1\u010e\42\5\2\0\1\5\33\0\4\5\1\76\1\0"+
429:     "\36\5\1\u0110\15\5\2\0\1\5\33\0\4\5\1\76"+
430:     "\1\0\40\5\1\u0110\13\5\2\0\1\5\33\0\4\5"+
431:     "\1\76\1\0\4\5\1\u0111\47\5\2\0\1\5\33\0"+
432:     "\4\5\1\76\1\0\10\5\1\u0111\43\5\2\0\1\5"+
433:     "\33\0\4\5\1\76\1\0\20\5\1\u0112\33\5\2\0"+
434:     "\1\5\33\0\4\5\1\76\1\0\15\5\1\u0113\36\5"+
435:     "\2\0\1\5\33\0\4\5\1\76\1\0\21\5\1\u0112"+
436:     "\32\5\2\0\1\5\33\0\4\5\1\76\1\0\17\5"+
437:     "\1\u0113\34\5\2\0\1\5\33\0\4\5\1\76\1\0"+
438:     "\25\5\1\u0114\26\5\2\0\1\5\33\0\4\5\1\u0115"+
439:     "\1\0\54\5\2\0\1\5\33\0\4\5\1\76\1\0"+
440:     "\31\5\1\u0114\22\5\2\0\1\5\33\0\4\5\1\u0116"+
441:     "\1\0\54\5\2\0\1\5\33\0\4\5\1\76\1\0"+
442:     "\6\5\1\u0117\45\5\2\0\1\5\33\0\4\5\1\76"+
443:     "\1\0\12\5\1\u0118\41\5\2\0\1\5\33\0\4\5"+
444:     "\1\76\1\0\6\5\1\u0119\45\5\2\0\1\5\33\0"+
445:     "\4\5\1\76\1\0\12\5\1\u011a\41\5\2\0\1\5"+
446:     "\33\0\4\5\1\76\1\0\7\5\1\u011b\44\5\2\0"+
447:     "\1\5\33\0\4\5\1\76\1\0\13\5\1\u011b\40\5"+
448:     "\2\0\1\5\112\0\1\u011c\40\0\4\5\1\76\1\0"+
449:     "\24\5\1\u011d\27\5\2\0\1\5\33\0\4\5\1\76"+
450:     "\1\0\30\5\1\u011e\23\5\2\0\1\5\33\0\4\5"+
451:     "\1\76\1\172\32\5\1\u011f\21\5\2\0\1\5\33\0"+
452:     "\4\5\1\76\1\172\33\5\1\u0120\20\5\2\0\1\5"+
453:     "\33\0\4\5\1\76\1\0\15\5\1\u0121\36\5\2\0"+
454:     "\1\5\33\0\4\5\1\76\1\0\17\5\1\u0121\34\5"+
455:     "\2\0\1\5\33\0\4\5\1\76\1\0\7\5\1\u0122"+
456:     "\44\5\2\0\1\5\33\0\4\5\1\76\1\0\13\5"+
457:     "\1\u0123\40\5\2\0\1\5\53\0\1\u0124\77\0\4\5"+
458:     "\1\76\1\0\24\5\1\u0125\27\5\2\0\1\5\33\0"+
459:     "\4\5\1\76\1\0\30\5\1\u0126\23\5\2\0\1\5"+
460:     "\33\0\4\5\1\76\1\0\34\5\1\u0127\17\5\2\0"+
461:     "\1\5\33\0\4\5\1\76\1\0\35\5\1\u0128\16\5"+
462:     "\2\0\1\5\33\0\4\5\1\76\1\0\20\5\1\u0129"+
463:     "\33\5\2\0\1\5\33\0\4\5\1\76\1\0\21\5"+
464:     "\1\u012a\32\5\2\0\1\5\71\0\1\u012b\61\0\4\5"+
465:     "\1\76\1\0\32\5\1\u012c\21\5\2\0\1\5\33\0"+
466:     "\4\5\1\76\1\0\33\5\1\u012d\20\5\2\0\1\5"+
467:     "\33\0\4\5\1\76\1\0\4\5\1\u012e\47\5\2\0"+
468:     "\1\5\33\0\4\5\1\76\1\0\10\5\1\u012e\43\5"+
469:     "\2\0\1\5\33\0\4\5\1\76\1\0\1\u012f\53\5"+
470:     "\2\0\1\5\33\0\4\5\1\76\1\0\2\5\1\u0130"+
471:     "\51\5\2\0\1\5\37\0\1\u0131\113\0\4\5\1\76"+
472:     "\1\0\24\5\1\u0132\27\5\2\0\1\5\33\0\4\5"+
473:     "\1\76\1\0\30\5\1\u0132\23\5\2\0\1\5\33\0"+
474:     "\4\5\1\76\1\0\7\5\1\u0133\44\5\2\0\1\5"+
475:     "\33\0\4\5\1\76\1\0\13\5\1\u0134\40\5\2\0"+
476:     "\1\5\37\0\1\u0135\113\0\4\5\1\76\1\0\25\5"+
477:     "\1\u0136\26\5\2\0\1\5\33\0\4\5\1\76\1\0"+
478:     "\31\5\1\u0136\22\5\2\0\1\5\31\0";
479: 
480:   private static int [] zzUnpackTrans() {
481:     int [] result = new int[20720];
482:     int offset = 0;
483:     offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
484:     return result;
485:   }
486: 
487:   private static int zzUnpackTrans(String packed, int offset, int [] result) {
488:     int i = 0;       /* index in packed string  */
489:     int j = offset;  /* index in unpacked array */
490:     int l = packed.length();
491:     while (i < l) {
492:       int count = packed.charAt(i++);
493:       int value = packed.charAt(i++);
494:       value--;
495:       do result[j++] = value; while (--count > 0);
496:     }
497:     return j;
498:   }
499: 
500: 
501:   /* error codes */
502:   private static final int ZZ_UNKNOWN_ERROR = 0;
503:   private static final int ZZ_NO_MATCH = 1;
504:   private static final int ZZ_PUSHBACK_2BIG = 2;
505: 
506:   /* error messages for the codes above */
507:   private static final String ZZ_ERROR_MSG[] = {
508:     "Unknown internal scanner error",
509:     "Error: could not match input",
510:     "Error: pushback value was too large"
511:   };
512: 
513:   /**
514:    * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
515:    */
516:   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
517: 
518:   private static final String ZZ_ATTRIBUTE_PACKED_0 =
519:     "\1\0\2\11\4\1\1\11\34\1\1\11\6\1\5\11"+
520:     "\4\1\4\11\3\1\2\0\1\1\1\0\56\1\1\0"+
521:     "\1\11\1\0\10\11\2\1\1\0\53\1\1\11\2\1"+
522:     "\1\0\51\1\1\0\36\1\1\0\30\1\1\0\17\1"+
523:     "\1\0\7\1\1\0\6\1\1\0\5\1\1\0\3\1"+
524:     "\1\11\1\1";
525: 
526:   private static int [] zzUnpackAttribute() {
527:     int [] result = new int[310];
528:     int offset = 0;
529:     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
530:     return result;
531:   }
532: 
533:   private static int zzUnpackAttribute(String packed, int offset, int [] result) {
534:     int i = 0;       /* index in packed string  */
535:     int j = offset;  /* index in unpacked array */
536:     int l = packed.length();
537:     while (i < l) {
538:       int count = packed.charAt(i++);
539:       int value = packed.charAt(i++);
540:       do result[j++] = value; while (--count > 0);
541:     }
542:     return j;
543:   }
544: 
545:   /** the input device */
546:   private java.io.Reader zzReader;
547: 
548:   /** the current state of the DFA */
549:   private int zzState;
550: 
551:   /** the current lexical state */
552:   private int zzLexicalState = YYINITIAL;
553: 
554:   /** this buffer contains the current text to be matched and is
555:       the source of the yytext() string */
556:   private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
557: 
558:   /** the textposition at the last accepting state */
559:   private int zzMarkedPos;
560: 
561:   /** the current text position in the buffer */
562:   private int zzCurrentPos;
563: 
564:   /** startRead marks the beginning of the yytext() string in the buffer */
565:   private int zzStartRead;
566: 
567:   /** endRead marks the last character in the buffer, that has been read
568:       from input */
569:   private int zzEndRead;
570: 
571:   /** number of newlines encountered up to the start of the matched text */
572:   private int yyline;
573: 
574:   /** the number of characters up to the start of the matched text */
575:   private int yychar;
576: 
577:   /**
578:    * the number of characters from the last newline up to the start of the 
579:    * matched text
580:    */
581:   private int yycolumn;
582: 
583:   /** 
584:    * zzAtBOL == true <=> the scanner is currently at the beginning of a line
585:    */
586:   private boolean zzAtBOL = true;
587: 
588:   /** zzAtEOF == true <=> the scanner is at the EOF */
589:   private boolean zzAtEOF;
590: 
591:   /** denotes if the user-EOF-code has already been executed */
592:   private boolean zzEOFDone;
593:   
594:   /** 
595:    * The number of occupied positions in zzBuffer beyond zzEndRead.
596:    * When a lead/high surrogate has been read from the input stream
597:    * into the final zzBuffer position, this will have a value of 1;
598:    * otherwise, it will have a value of 0.
599:    */
600:   private int zzFinalHighSurrogate = 0;
601: 
602:   /* user code: */
603: /* store a reference to the parser object */
604: private ExtParser parser = new ExtParser();
605: /* constructor taking an additional parser object */
606: public ExtScanner(java.io.Reader reader, ExtParser parser) {
607: this.zzReader = reader;
608: this.parser = parser;
609: }
610: 
611: 
612:   /**
613:    * Creates a new scanner
614:    *
615:    * @param   in  the java.io.Reader to read input from.
616:    */
617:   public ExtScanner(java.io.Reader in) {
618:     this.zzReader = in;
619:   }
620: 
621: 
622:   /** 
623:    * Unpacks the compressed character translation table.
624:    *
625:    * @param packed   the packed character translation table
626:    * @return         the unpacked character translation table
627:    */
628:   private static char [] zzUnpackCMap(String packed) {
629:     char [] map = new char[0x110000];
630:     int i = 0;  /* index in packed string  */
631:     int j = 0;  /* index in unpacked array */
632:     while (i < 236) {
633:       int  count = packed.charAt(i++);
634:       char value = packed.charAt(i++);
635:       do map[j++] = value; while (--count > 0);
636:     }
637:     return map;
638:   }
639: 
640: 
641:   /**
642:    * Refills the input buffer.
643:    *
644:    * @return      <code>false</code>, iff there was new input.
645:    * 
646:    * @exception   java.io.IOException  if any I/O-Error occurs
647:    */
648:   private boolean zzRefill() throws java.io.IOException {
649: 
650:     /* first: make room (if you can) */
651:     if (zzStartRead > 0) {
652:       zzEndRead += zzFinalHighSurrogate;
653:       zzFinalHighSurrogate = 0;
654:       System.arraycopy(zzBuffer, zzStartRead,
655:                        zzBuffer, 0,
656:                        zzEndRead-zzStartRead);
657: 
658:       /* translate stored positions */
659:       zzEndRead-= zzStartRead;
660:       zzCurrentPos-= zzStartRead;
661:       zzMarkedPos-= zzStartRead;
662:       zzStartRead = 0;
663:     }
664: 
665:     /* is the buffer big enough? */
666:     if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
667:       /* if not: blow it up */
668:       char newBuffer[] = new char[zzBuffer.length*2];
669:       System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
670:       zzBuffer = newBuffer;
671:       zzEndRead += zzFinalHighSurrogate;
672:       zzFinalHighSurrogate = 0;
673:     }
674: 
675:     /* fill the buffer with new input */
676:     int requested = zzBuffer.length - zzEndRead;
677:     int numRead = zzReader.read(zzBuffer, zzEndRead, requested);
678: 
679:     /* not supposed to occur according to specification of java.io.Reader */
680:     if (numRead == 0) {
681:       throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround.");
682:     }
683:     if (numRead > 0) {
684:       zzEndRead += numRead;
685:       /* If numRead == requested, we might have requested to few chars to
686:          encode a full Unicode character. We assume that a Reader would
687:          otherwise never return half characters. */
688:       if (numRead == requested) {
689:         if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
690:           --zzEndRead;
691:           zzFinalHighSurrogate = 1;
692:         }
693:       }
694:       /* potentially more input available */
695:       return false;
696:     }
697: 
698:     /* numRead < 0 ==> end of stream */
699:     return true;
700:   }
701: 
702:     
703:   /**
704:    * Closes the input stream.
705:    */
706:   public final void yyclose() throws java.io.IOException {
707:     zzAtEOF = true;            /* indicate end of file */
708:     zzEndRead = zzStartRead;  /* invalidate buffer    */
709: 
710:     if (zzReader != null)
711:       zzReader.close();
712:   }
713: 
714: 
715:   /**
716:    * Resets the scanner to read from a new input stream.
717:    * Does not close the old reader.
718:    *
719:    * All internal variables are reset, the old input stream 
720:    * <b>cannot</b> be reused (internal buffer is discarded and lost).
721:    * Lexical state is set to <tt>ZZ_INITIAL</tt>.
722:    *
723:    * Internal scan buffer is resized down to its initial length, if it has grown.
724:    *
725:    * @param reader   the new input stream 
726:    */
727:   public final void yyreset(java.io.Reader reader) {
728:     zzReader = reader;
729:     zzAtBOL  = true;
730:     zzAtEOF  = false;
731:     zzEOFDone = false;
732:     zzEndRead = zzStartRead = 0;
733:     zzCurrentPos = zzMarkedPos = 0;
734:     zzFinalHighSurrogate = 0;
735:     yyline = yychar = yycolumn = 0;
736:     zzLexicalState = YYINITIAL;
737:     if (zzBuffer.length > ZZ_BUFFERSIZE)
738:       zzBuffer = new char[ZZ_BUFFERSIZE];
739:   }
740: 
741: 
742:   /**
743:    * Returns the current lexical state.
744:    */
745:   public final int yystate() {
746:     return zzLexicalState;
747:   }
748: 
749: 
750:   /**
751:    * Enters a new lexical state
752:    *
753:    * @param newState the new lexical state
754:    */
755:   public final void yybegin(int newState) {
756:     zzLexicalState = newState;
757:   }
758: 
759: 
760:   /**
761:    * Returns the text matched by the current regular expression.
762:    */
763:   public final String yytext() {
764:     return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
765:   }
766: 
767: 
768:   /**
769:    * Returns the character at position <tt>pos</tt> from the 
770:    * matched text. 
771:    * 
772:    * It is equivalent to yytext().charAt(pos), but faster
773:    *
774:    * @param pos the position of the character to fetch. 
775:    *            A value from 0 to yylength()-1.
776:    *
777:    * @return the character at position pos
778:    */
779:   public final char yycharat(int pos) {
780:     return zzBuffer[zzStartRead+pos];
781:   }
782: 
783: 
784:   /**
785:    * Returns the length of the matched text region.
786:    */
787:   public final int yylength() {
788:     return zzMarkedPos-zzStartRead;
789:   }
790: 
791: 
792:   /**
793:    * Reports an error that occured while scanning.
794:    *
795:    * In a wellformed scanner (no or only correct usage of 
796:    * yypushback(int) and a match-all fallback rule) this method 
797:    * will only be called with things that "Can't Possibly Happen".
798:    * If this method is called, something is seriously wrong
799:    * (e.g. a JFlex bug producing a faulty scanner etc.).
800:    *
801:    * Usual syntax/scanner level error handling should be done
802:    * in error fallback rules.
803:    *
804:    * @param   errorCode  the code of the errormessage to display
805:    */
806:   private void zzScanError(int errorCode) {
807:     String message;
808:     try {
809:       message = ZZ_ERROR_MSG[errorCode];
810:     }
811:     catch (ArrayIndexOutOfBoundsException e) {
812:       message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
813:     }
814: 
815:     throw new Error(message);
816:   } 
817: 
818: 
819:   /**
820:    * Pushes the specified amount of characters back into the input stream.
821:    *
822:    * They will be read again by then next call of the scanning method
823:    *
824:    * @param number  the number of characters to be read again.
825:    *                This number must not be greater than yylength()!
826:    */
827:   public void yypushback(int number)  {
828:     if ( number > yylength() )
829:       zzScanError(ZZ_PUSHBACK_2BIG);
830: 
831:     zzMarkedPos -= number;
832:   }
833: 
834: 
835:   /**
836:    * Resumes scanning until the next regular expression is matched,
837:    * the end of input is encountered or an I/O-Error occurs.
838:    *
839:    * @return      the next token
840:    * @exception   java.io.IOException  if any I/O-Error occurs
841:    */
842:   public int next_token() throws java.io.IOException {
843:     int zzInput;
844:     int zzAction;
845: 
846:     // cached fields:
847:     int zzCurrentPosL;
848:     int zzMarkedPosL;
849:     int zzEndReadL = zzEndRead;
850:     char [] zzBufferL = zzBuffer;
851:     char [] zzCMapL = ZZ_CMAP;
852: 
853:     int [] zzTransL = ZZ_TRANS;
854:     int [] zzRowMapL = ZZ_ROWMAP;
855:     int [] zzAttrL = ZZ_ATTRIBUTE;
856: 
857:     while (true) {
858:       zzMarkedPosL = zzMarkedPos;
859: 
860:       zzAction = -1;
861: 
862:       zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
863:   
864:       zzState = ZZ_LEXSTATE[zzLexicalState];
865: 
866:       // set up zzAction for empty match case:
867:       int zzAttributes = zzAttrL[zzState];
868:       if ( (zzAttributes & 1) == 1 ) {
869:         zzAction = zzState;
870:       }
871: 
872: 
873:       zzForAction: {
874:         while (true) {
875:     
876:           if (zzCurrentPosL < zzEndReadL) {
877:             zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
878:             zzCurrentPosL += Character.charCount(zzInput);
879:           }
880:           else if (zzAtEOF) {
881:             zzInput = YYEOF;
882:             break zzForAction;
883:           }
884:           else {
885:             // store back cached positions
886:             zzCurrentPos  = zzCurrentPosL;
887:             zzMarkedPos   = zzMarkedPosL;
888:             boolean eof = zzRefill();
889:             // get translated positions and possibly new buffer
890:             zzCurrentPosL  = zzCurrentPos;
891:             zzMarkedPosL   = zzMarkedPos;
892:             zzBufferL      = zzBuffer;
893:             zzEndReadL     = zzEndRead;
894:             if (eof) {
895:               zzInput = YYEOF;
896:               break zzForAction;
897:             }
898:             else {
899:               zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
900:               zzCurrentPosL += Character.charCount(zzInput);
901:             }
902:           }
903:           int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
904:           if (zzNext == -1) break zzForAction;
905:           zzState = zzNext;
906: 
907:           zzAttributes = zzAttrL[zzState];
908:           if ( (zzAttributes & 1) == 1 ) {
909:             zzAction = zzState;
910:             zzMarkedPosL = zzCurrentPosL;
911:             if ( (zzAttributes & 8) == 8 ) break zzForAction;
912:           }
913: 
914:         }
915:       }
916: 
917:       // store back cached position
918:       zzMarkedPos = zzMarkedPosL;
919: 
920:       if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
921:         zzAtEOF = true;
922:           { return 0;
923:  }
924:       }
925:       else {
926:         switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
927:           case 1: 
928:             { return ExtParser.UNKNOWN;
929:             }
930:           case 62: break;
931:           case 2: 
932:             { /* ignore */
933:             }
934:           case 63: break;
935:           case 3: 
936:             { Integer num = 1;if (!yytext().equals("0x1")) {num = Integer.parseInt(yytext());}parser.yylval = new ExtParserVal(new NumNode(num)); return ExtParser.NUM;
937:             }
938:           case 64: break;
939:           case 4: 
940:             { parser.yylval = new ExtParserVal(new IDNode(yytext()));return ExtParser.ID;
941:             }
942:           case 65: break;
943:           case 5: 
944:             { return ExtParser.MOD;
945:             }
946:           case 66: break;
947:           case 6: 
948:             { return ExtParser.CAST;
949:             }
950:           case 67: break;
951:           case 7: 
952:             { /* ignore*/
953:             }
954:           case 68: break;
955:           case 8: 
956:             { return ExtParser.ASSIGN;
957:             }
958:           case 69: break;
959:           case 9: 
960:             { return ExtParser.NOT;
961:             }
962:           case 70: break;
963:           case 10: 
964:             { return "(".charAt(0);
965:             }
966:           case 71: break;
967:           case 11: 
968:             { return ")".charAt(0);
969:             }
970:           case 72: break;
971:           case 12: 
972:             { return "[".charAt(0);
973:             }
974:           case 73: break;
975:           case 13: 
976:             { return "]".charAt(0);
977:             }
978:           case 74: break;
979:           case 14: 
980:             { return ",".charAt(0);
981:             }
982:           case 75: break;
983:           case 15: 
984:             { return ExtParser.LESS;
985:             }
986:           case 76: break;
987:           case 16: 
988:             { return ExtParser.GREATER;
989:             }
990:           case 77: break;
991:           case 17: 
992:             { return ExtParser.ADD;
993:             }
994:           case 78: break;
995:           case 18: 
996:             { return ExtParser.SUB;
997:             }
998:           case 79: break;
999:           case 19: 
1000:             { return ExtParser.MULT;
1001:             }
1002:           case 80: break;
1003:           case 20: 
1004:             { return ExtParser.DIV;
1005:             }
1006:           case 81: break;
1007:           case 21: 
1008:             { return ExtParser.IF;
1009:             }
1010:           case 82: break;
1011:           case 22: 
1012:             { return ExtParser.IN;
1013:             }
1014:           case 83: break;
1015:           case 23: 
1016:             { return ExtParser.FI;
1017:             }
1018:           case 84: break;
1019:           case 24: 
1020:             { return ExtParser.DO;
1021:             }
1022:           case 85: break;
1023:           case 25: 
1024:             { return ExtParser.ON;
1025:             }
1026:           case 86: break;
1027:           case 26: 
1028:             { final String value = yytext(); parser.yylval = new ExtParserVal(new StringNode(value.substring(1, value.length() - 1))); return ExtParser.STRING;
1029:             }
1030:           case 87: break;
1031:           case 27: 
1032:             { return ExtParser.EQUAL;
1033:             }
1034:           case 88: break;
1035:           case 28: 
1036:             { return ExtParser.MATCH;
1037:             }
1038:           case 89: break;
1039:           case 29: 
1040:             { return ExtParser.NOT_EQUAL;
1041:             }
1042:           case 90: break;
1043:           case 30: 
1044:             { return ExtParser.LE;
1045:             }
1046:           case 91: break;
1047:           case 31: 
1048:             { return ExtParser.GE;
1049:             }
1050:           case 92: break;
1051:           case 32: 
1052:             { return ExtParser.AND;
1053:             }
1054:           case 93: break;
1055:           case 33: 
1056:             { return ExtParser.OR;
1057:             }
1058:           case 94: break;
1059:           case 34: 
1060:             { return ExtParser.ORELSE;
1061:             }
1062:           case 95: break;
1063:           case 35: 
1064:             { parser.yylval = new ExtParserVal(new MajorVerNode(yytext()));return ExtParser.MAJOR_VER;
1065:             }
1066:           case 96: break;
1067:           case 36: 
1068:             { parser.yylval = new ExtParserVal(new IdSetNode(yytext()));return ExtParser.IDSET;
1069:             }
1070:           case 97: break;
1071:           case 37: 
1072:             { return ExtParser.SET;
1073:             }
1074:           case 98: break;
1075:           case 38: 
1076:             { final String value = yytext(); parser.yylval = new ExtParserVal(new StringNode(value.substring(1, value.length() - 1))); return ExtParser.CHAR;
1077:             }
1078:           case 99: break;
1079:           case 39: 
1080:             { parser.yylval = new ExtParserVal(new VerExprNode(yytext()));return ExtParser.VER_EXPR;
1081:             }
1082:           case 100: break;
1083:           case 40: 
1084:             { return ExtParser.THEN;
1085:             }
1086:           case 101: break;
1087:           case 41: 
1088:             { return ExtParser.ELSE;
1089:             }
1090:           case 102: break;
1091:           case 42: 
1092:             { return ExtParser.STAT;
1093:             }
1094:           case 103: break;
1095:           case 43: 
1096:             { return ExtParser.DONE;
1097:             }
1098:           case 104: break;
1099:           case 44: 
1100:             { parser.yylval = new ExtParserVal(new VerNode(yytext())); return ExtParser.VER;
1101:             }
1102:           case 105: break;
1103:           case 45: 
1104:             { return ExtParser.FGREP;
1105:             }
1106:           case 106: break;
1107:           case 46: 
1108:             { return ExtParser.ERROR;
1109:             }
1110:           case 107: break;
1111:           case 47: 
1112:             { return ExtParser.SPLIT;
1113:             }
1114:           case 108: break;
1115:           case 48: 
1116:             { return ExtParser.CRYPT;
1117:             }
1118:           case 109: break;
1119:           case 49: 
1120:             { return ExtParser.SUBNET;
1121:             }
1122:           case 110: break;
1123:           case 50: 
1124:             { return ExtParser.UNIQUE;
1125:             }
1126:           case 111: break;
1127:           case 51: 
1128:             { return ExtParser.FOREACH;
1129:             }
1130:           case 112: break;
1131:           case 52: 
1132:             { return ExtParser.NUMERIC;
1133:             }
1134:           case 113: break;
1135:           case 53: 
1136:             { return ExtParser.SAMENET;
1137:             }
1138:           case 114: break;
1139:           case 54: 
1140:             { return ExtParser.DEFINED;
1141:             }
1142:           case 115: break;
1143:           case 55: 
1144:             { return ExtParser.DEPENDS;
1145:             }
1146:           case 116: break;
1147:           case 56: 
1148:             { return ExtParser.WARNING;
1149:             }
1150:           case 117: break;
1151:           case 57: 
1152:             { return ExtParser.VERSION;
1153:             }
1154:           case 118: break;
1155:           case 58: 
1156:             { return ExtParser.PROVIDES;
1157:             }
1158:           case 119: break;
1159:           case 59: 
1160:             { return ExtParser.ADD_TO_OPT;
1161:             }
1162:           case 120: break;
1163:           case 60: 
1164:             { return ExtParser.FATAL_ERROR;
1165:             }
1166:           case 121: break;
1167:           case 61: 
1168:             { return ExtParser.COPY_PENDING;
1169:             }
1170:           case 122: break;
1171:           default:
1172:             zzScanError(ZZ_NO_MATCH);
1173:         }
1174:       }
1175:     }
1176:   }
1177: 
1178: 
1179: }