1 package iotpolicy.parser;
3 /* The following code was generated by JFlex 1.6.1 */
5 // JFlex parser specification written by
8 // University of California, Irvine
10 // Technische Universitaet Muenchen
11 // Fakultaet fuer Informatik
13 import java_cup.runtime.Symbol;
14 import java_cup.runtime.ComplexSymbolFactory;
15 import java_cup.runtime.ComplexSymbolFactory.Location;
19 * This class is a scanner generated by
20 * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
21 * from the specification file <tt>iotparser.jflex</tt>
23 public class Lexer implements java_cup.runtime.Scanner, sym {
25 /** This character denotes the end of file */
26 public static final int YYEOF = -1;
28 /** initial size of the lookahead buffer */
29 private static final int ZZ_BUFFERSIZE = 16384;
32 public static final int YYINITIAL = 0;
33 public static final int STRING = 2;
36 * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
37 * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
38 * at the beginning of a line
39 * l is of the form l = 2*k, k a non negative integer
41 private static final int ZZ_LEXSTATE[] = {
46 * Translates characters to character classes
48 private static final String ZZ_CMAP_PACKED =
49 "\11\0\1\6\1\4\1\47\1\6\1\3\22\0\1\6\1\0\1\36"+
50 "\1\0\1\1\3\0\1\41\1\42\2\0\1\37\1\0\1\40\1\0"+
51 "\12\2\1\0\1\5\1\0\1\45\3\0\22\1\1\30\7\1\1\0"+
52 "\1\46\2\0\1\1\1\0\1\24\1\16\1\27\1\25\1\20\1\23"+
53 "\1\22\1\13\1\7\2\1\1\21\1\33\1\10\1\14\1\32\1\34"+
54 "\1\15\1\12\1\11\1\26\1\31\1\35\1\1\1\17\1\1\1\43"+
55 "\1\0\1\44\7\0\1\47\u1fa2\0\1\47\1\47\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\udfe6\0";
58 * Translates characters to character classes
60 private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
63 * Translates DFA states to action switch labels.
65 private static final int [] ZZ_ACTION = zzUnpackAction();
67 private static final String ZZ_ACTION_PACKED_0 =
68 "\2\0\1\1\1\2\2\3\1\4\16\2\1\5\1\6"+
69 "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+
70 "\1\17\1\0\10\2\1\20\11\2\1\21\1\22\1\23"+
71 "\1\24\1\25\25\2\1\26\1\27\3\2\1\30\2\2"+
72 "\1\31\2\2\1\32\2\2\1\33\2\2\1\34\7\2"+
73 "\1\35\2\2\1\36\2\2\1\37\1\40\1\41\2\2"+
74 "\1\42\3\2\1\43\2\2\1\44\3\2\1\45\1\46";
76 private static int [] zzUnpackAction() {
77 int [] result = new int[126];
79 offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
83 private static int zzUnpackAction(String packed, int offset, int [] result) {
84 int i = 0; /* index in packed string */
85 int j = offset; /* index in unpacked array */
86 int l = packed.length();
88 int count = packed.charAt(i++);
89 int value = packed.charAt(i++);
90 do result[j++] = value; while (--count > 0);
97 * Translates a state to a row index in the transition table
99 private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
101 private static final String ZZ_ROWMAP_PACKED_0 =
102 "\0\0\0\50\0\120\0\170\0\240\0\120\0\120\0\310"+
103 "\0\360\0\u0118\0\u0140\0\u0168\0\u0190\0\u01b8\0\u01e0\0\u0208"+
104 "\0\u0230\0\u0258\0\u0280\0\u02a8\0\u02d0\0\120\0\120\0\120"+
105 "\0\120\0\120\0\120\0\120\0\120\0\u02f8\0\120\0\u0320"+
106 "\0\u0348\0\u0370\0\u0398\0\u03c0\0\u03e8\0\u0410\0\u0438\0\u0460"+
107 "\0\u0488\0\170\0\u04b0\0\u04d8\0\u0500\0\u0528\0\u0550\0\u0578"+
108 "\0\u05a0\0\u05c8\0\u05f0\0\120\0\120\0\120\0\120\0\u0618"+
109 "\0\u0640\0\u0668\0\u0690\0\u06b8\0\u06e0\0\u0708\0\u0730\0\u0758"+
110 "\0\u0780\0\u07a8\0\u07d0\0\u07f8\0\u0820\0\u0848\0\u0870\0\u0898"+
111 "\0\u08c0\0\u08e8\0\u0910\0\u0938\0\u0960\0\170\0\170\0\u0988"+
112 "\0\u09b0\0\u09d8\0\170\0\u0a00\0\u0a28\0\170\0\u0a50\0\u0a78"+
113 "\0\170\0\u0aa0\0\u0ac8\0\170\0\u0af0\0\u0b18\0\170\0\u0b40"+
114 "\0\u0b68\0\u0b90\0\u0bb8\0\u0be0\0\u0c08\0\u0c30\0\170\0\u0c58"+
115 "\0\u0c80\0\170\0\u0ca8\0\u0cd0\0\170\0\170\0\170\0\u0cf8"+
116 "\0\u0d20\0\170\0\u0d48\0\u0d70\0\u0d98\0\170\0\u0dc0\0\u0de8"+
117 "\0\170\0\u0e10\0\u0e38\0\u0e60\0\170\0\170";
119 private static int [] zzUnpackRowMap() {
120 int [] result = new int[126];
122 offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
126 private static int zzUnpackRowMap(String packed, int offset, int [] result) {
127 int i = 0; /* index in packed string */
128 int j = offset; /* index in unpacked array */
129 int l = packed.length();
131 int high = packed.charAt(i++) << 16;
132 result[j++] = high | packed.charAt(i++);
138 * The transition table of the DFA
140 private static final int [] ZZ_TRANS = zzUnpackTrans();
142 private static final String ZZ_TRANS_PACKED_0 =
143 "\1\3\1\4\1\3\1\5\1\6\1\7\1\6\1\10"+
144 "\2\4\1\11\2\4\1\12\1\13\2\4\1\14\1\4"+
145 "\1\15\1\16\1\17\1\4\1\20\1\21\1\22\1\23"+
146 "\1\24\1\4\1\25\1\26\1\27\1\30\1\31\1\32"+
147 "\1\33\1\34\1\35\1\3\1\0\3\36\1\0\1\3"+
148 "\31\36\1\37\7\36\1\40\1\36\51\0\2\4\4\0"+
149 "\27\4\16\0\1\41\44\0\2\4\4\0\1\4\1\42"+
150 "\25\4\13\0\2\4\4\0\2\4\1\43\1\4\1\44"+
151 "\22\4\13\0\2\4\4\0\11\4\1\45\15\4\13\0"+
152 "\2\4\4\0\5\4\1\46\2\4\1\47\16\4\13\0"+
153 "\2\4\4\0\5\4\1\50\21\4\13\0\2\4\4\0"+
154 "\12\4\1\51\14\4\13\0\2\4\4\0\3\4\1\52"+
155 "\23\4\13\0\2\4\4\0\5\4\1\53\3\4\1\54"+
156 "\15\4\13\0\2\4\4\0\4\4\1\55\10\4\1\56"+
157 "\11\4\13\0\2\4\4\0\2\4\1\57\24\4\13\0"+
158 "\2\4\4\0\5\4\1\60\21\4\13\0\2\4\4\0"+
159 "\17\4\1\61\7\4\13\0\2\4\4\0\11\4\1\62"+
160 "\15\4\13\0\2\4\4\0\1\63\26\4\12\0\3\36"+
161 "\2\0\31\36\1\0\7\36\1\0\1\36\10\0\1\64"+
162 "\1\65\3\0\1\66\20\0\1\67\16\0\1\6\43\0"+
163 "\2\4\4\0\2\4\1\70\24\4\13\0\2\4\4\0"+
164 "\6\4\1\71\20\4\13\0\2\4\4\0\5\4\1\72"+
165 "\21\4\13\0\2\4\4\0\25\4\1\73\1\4\13\0"+
166 "\2\4\4\0\5\4\1\74\21\4\13\0\2\4\4\0"+
167 "\2\4\1\75\24\4\13\0\2\4\4\0\1\4\1\76"+
168 "\25\4\13\0\2\4\4\0\5\4\1\77\21\4\13\0"+
169 "\2\4\4\0\17\4\1\100\7\4\13\0\2\4\4\0"+
170 "\3\4\1\101\23\4\13\0\2\4\4\0\15\4\1\102"+
171 "\11\4\13\0\2\4\4\0\23\4\1\103\3\4\13\0"+
172 "\2\4\4\0\6\4\1\104\20\4\13\0\2\4\4\0"+
173 "\1\105\26\4\13\0\2\4\4\0\7\4\1\106\17\4"+
174 "\13\0\2\4\4\0\2\4\1\107\24\4\13\0\2\4"+
175 "\4\0\2\4\1\110\24\4\13\0\2\4\4\0\11\4"+
176 "\1\111\15\4\13\0\2\4\4\0\1\112\26\4\13\0"+
177 "\2\4\4\0\6\4\1\113\20\4\13\0\2\4\4\0"+
178 "\17\4\1\114\7\4\13\0\2\4\4\0\12\4\1\115"+
179 "\14\4\13\0\2\4\4\0\11\4\1\116\15\4\13\0"+
180 "\2\4\4\0\13\4\1\117\13\4\13\0\2\4\4\0"+
181 "\15\4\1\120\11\4\13\0\2\4\4\0\7\4\1\121"+
182 "\17\4\13\0\2\4\4\0\20\4\1\122\6\4\13\0"+
183 "\2\4\4\0\6\4\1\123\20\4\13\0\2\4\4\0"+
184 "\15\4\1\124\11\4\13\0\2\4\4\0\1\125\26\4"+
185 "\13\0\2\4\4\0\16\4\1\126\10\4\13\0\2\4"+
186 "\4\0\12\4\1\127\14\4\13\0\2\4\4\0\4\4"+
187 "\1\130\22\4\13\0\2\4\4\0\4\4\1\131\22\4"+
188 "\13\0\2\4\4\0\6\4\1\132\20\4\13\0\2\4"+
189 "\4\0\1\4\1\133\25\4\13\0\2\4\4\0\2\4"+
190 "\1\134\24\4\13\0\2\4\4\0\1\135\26\4\13\0"+
191 "\2\4\4\0\11\4\1\136\15\4\13\0\2\4\4\0"+
192 "\2\4\1\137\24\4\13\0\2\4\4\0\12\4\1\140"+
193 "\14\4\13\0\2\4\4\0\6\4\1\141\20\4\13\0"+
194 "\2\4\4\0\7\4\1\142\17\4\13\0\2\4\4\0"+
195 "\1\4\1\143\25\4\13\0\2\4\4\0\1\144\26\4"+
196 "\13\0\2\4\4\0\5\4\1\145\21\4\13\0\2\4"+
197 "\4\0\14\4\1\146\12\4\13\0\2\4\4\0\13\4"+
198 "\1\147\13\4\13\0\2\4\4\0\6\4\1\150\20\4"+
199 "\13\0\2\4\4\0\15\4\1\151\11\4\13\0\2\4"+
200 "\4\0\11\4\1\152\15\4\13\0\2\4\4\0\1\153"+
201 "\26\4\13\0\2\4\4\0\1\154\26\4\13\0\2\4"+
202 "\4\0\13\4\1\155\13\4\13\0\2\4\4\0\20\4"+
203 "\1\156\6\4\13\0\2\4\4\0\16\4\1\157\10\4"+
204 "\13\0\2\4\4\0\15\4\1\160\11\4\13\0\2\4"+
205 "\4\0\11\4\1\161\15\4\13\0\2\4\4\0\1\4"+
206 "\1\162\25\4\13\0\2\4\4\0\23\4\1\163\3\4"+
207 "\13\0\2\4\4\0\12\4\1\164\14\4\13\0\2\4"+
208 "\4\0\20\4\1\165\6\4\13\0\2\4\4\0\3\4"+
209 "\1\166\23\4\13\0\2\4\4\0\2\4\1\167\24\4"+
210 "\13\0\2\4\4\0\1\170\26\4\13\0\2\4\4\0"+
211 "\11\4\1\171\15\4\13\0\2\4\4\0\1\172\26\4"+
212 "\13\0\2\4\4\0\2\4\1\173\24\4\13\0\2\4"+
213 "\4\0\5\4\1\174\21\4\13\0\2\4\4\0\10\4"+
214 "\1\175\16\4\13\0\2\4\4\0\1\4\1\176\25\4"+
217 private static int [] zzUnpackTrans() {
218 int [] result = new int[3720];
220 offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
224 private static int zzUnpackTrans(String packed, int offset, int [] result) {
225 int i = 0; /* index in packed string */
226 int j = offset; /* index in unpacked array */
227 int l = packed.length();
229 int count = packed.charAt(i++);
230 int value = packed.charAt(i++);
232 do result[j++] = value; while (--count > 0);
239 private static final int ZZ_UNKNOWN_ERROR = 0;
240 private static final int ZZ_NO_MATCH = 1;
241 private static final int ZZ_PUSHBACK_2BIG = 2;
243 /* error messages for the codes above */
244 private static final String ZZ_ERROR_MSG[] = {
245 "Unknown internal scanner error",
246 "Error: could not match input",
247 "Error: pushback value was too large"
251 * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
253 private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
255 private static final String ZZ_ATTRIBUTE_PACKED_0 =
256 "\2\0\1\11\2\1\2\11\16\1\10\11\1\1\1\11"+
257 "\1\1\1\0\22\1\4\11\107\1";
259 private static int [] zzUnpackAttribute() {
260 int [] result = new int[126];
262 offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
266 private static int zzUnpackAttribute(String packed, int offset, int [] result) {
267 int i = 0; /* index in packed string */
268 int j = offset; /* index in unpacked array */
269 int l = packed.length();
271 int count = packed.charAt(i++);
272 int value = packed.charAt(i++);
273 do result[j++] = value; while (--count > 0);
278 /** the input device */
279 private java.io.Reader zzReader;
281 /** the current state of the DFA */
284 /** the current lexical state */
285 private int zzLexicalState = YYINITIAL;
287 /** this buffer contains the current text to be matched and is
288 the source of the yytext() string */
289 private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
291 /** the textposition at the last accepting state */
292 private int zzMarkedPos;
294 /** the current text position in the buffer */
295 private int zzCurrentPos;
297 /** startRead marks the beginning of the yytext() string in the buffer */
298 private int zzStartRead;
300 /** endRead marks the last character in the buffer, that has been read
302 private int zzEndRead;
304 /** number of newlines encountered up to the start of the matched text */
307 /** the number of characters up to the start of the matched text */
311 * the number of characters from the last newline up to the start of the
314 private int yycolumn;
317 * zzAtBOL == true <=> the scanner is currently at the beginning of a line
319 private boolean zzAtBOL = true;
321 /** zzAtEOF == true <=> the scanner is at the EOF */
322 private boolean zzAtEOF;
324 /** denotes if the user-EOF-code has already been executed */
325 private boolean zzEOFDone;
328 * The number of occupied positions in zzBuffer beyond zzEndRead.
329 * When a lead/high surrogate has been read from the input stream
330 * into the final zzBuffer position, this will have a value of 1;
331 * otherwise, it will have a value of 0.
333 private int zzFinalHighSurrogate = 0;
336 StringBuffer string = new StringBuffer();
337 public Lexer(java.io.Reader in, ComplexSymbolFactory sf){
341 ComplexSymbolFactory symbolFactory;
343 private Symbol symbol(String name, int sym) {
344 return symbolFactory.newSymbol(name, sym, new Location(yyline+1,yycolumn+1,yychar), new Location(yyline+1,yycolumn+yylength(),yychar+yylength()));
347 private Symbol symbol(String name, int sym, Object val) {
348 Location left = new Location(yyline+1,yycolumn+1,yychar);
349 Location right= new Location(yyline+1,yycolumn+yylength(), yychar+yylength());
350 return symbolFactory.newSymbol(name, sym, left, right,val);
352 private Symbol symbol(String name, int sym, Object val,int buflength) {
353 Location left = new Location(yyline+1,yycolumn+yylength()-buflength,yychar+yylength()-buflength);
354 Location right= new Location(yyline+1,yycolumn+yylength(), yychar+yylength());
355 return symbolFactory.newSymbol(name, sym, left, right,val);
357 private void error(String message) {
358 System.out.println("Error at line "+(yyline+1)+", column "+(yycolumn+1)+" : "+message);
363 * Creates a new scanner
365 * @param in the java.io.Reader to read input from.
367 public Lexer(java.io.Reader in) {
373 * Unpacks the compressed character translation table.
375 * @param packed the packed character translation table
376 * @return the unpacked character translation table
378 private static char [] zzUnpackCMap(String packed) {
379 char [] map = new char[0x110000];
380 int i = 0; /* index in packed string */
381 int j = 0; /* index in unpacked array */
383 int count = packed.charAt(i++);
384 char value = packed.charAt(i++);
385 do map[j++] = value; while (--count > 0);
392 * Refills the input buffer.
394 * @return <code>false</code>, iff there was new input.
396 * @exception java.io.IOException if any I/O-Error occurs
398 private boolean zzRefill() throws java.io.IOException {
400 /* first: make room (if you can) */
401 if (zzStartRead > 0) {
402 zzEndRead += zzFinalHighSurrogate;
403 zzFinalHighSurrogate = 0;
404 System.arraycopy(zzBuffer, zzStartRead,
406 zzEndRead-zzStartRead);
408 /* translate stored positions */
409 zzEndRead-= zzStartRead;
410 zzCurrentPos-= zzStartRead;
411 zzMarkedPos-= zzStartRead;
415 /* is the buffer big enough? */
416 if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
417 /* if not: blow it up */
418 char newBuffer[] = new char[zzBuffer.length*2];
419 System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
420 zzBuffer = newBuffer;
421 zzEndRead += zzFinalHighSurrogate;
422 zzFinalHighSurrogate = 0;
425 /* fill the buffer with new input */
426 int requested = zzBuffer.length - zzEndRead;
427 int numRead = zzReader.read(zzBuffer, zzEndRead, requested);
429 /* not supposed to occur according to specification of java.io.Reader */
431 throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround.");
434 zzEndRead += numRead;
435 /* If numRead == requested, we might have requested to few chars to
436 encode a full Unicode character. We assume that a Reader would
437 otherwise never return half characters. */
438 if (numRead == requested) {
439 if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
441 zzFinalHighSurrogate = 1;
444 /* potentially more input available */
448 /* numRead < 0 ==> end of stream */
454 * Closes the input stream.
456 public final void yyclose() throws java.io.IOException {
457 zzAtEOF = true; /* indicate end of file */
458 zzEndRead = zzStartRead; /* invalidate buffer */
460 if (zzReader != null)
466 * Resets the scanner to read from a new input stream.
467 * Does not close the old reader.
469 * All internal variables are reset, the old input stream
470 * <b>cannot</b> be reused (internal buffer is discarded and lost).
471 * Lexical state is set to <tt>ZZ_INITIAL</tt>.
473 * Internal scan buffer is resized down to its initial length, if it has grown.
475 * @param reader the new input stream
477 public final void yyreset(java.io.Reader reader) {
482 zzEndRead = zzStartRead = 0;
483 zzCurrentPos = zzMarkedPos = 0;
484 zzFinalHighSurrogate = 0;
485 yyline = yychar = yycolumn = 0;
486 zzLexicalState = YYINITIAL;
487 if (zzBuffer.length > ZZ_BUFFERSIZE)
488 zzBuffer = new char[ZZ_BUFFERSIZE];
493 * Returns the current lexical state.
495 public final int yystate() {
496 return zzLexicalState;
501 * Enters a new lexical state
503 * @param newState the new lexical state
505 public final void yybegin(int newState) {
506 zzLexicalState = newState;
511 * Returns the text matched by the current regular expression.
513 public final String yytext() {
514 return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
519 * Returns the character at position <tt>pos</tt> from the
522 * It is equivalent to yytext().charAt(pos), but faster
524 * @param pos the position of the character to fetch.
525 * A value from 0 to yylength()-1.
527 * @return the character at position pos
529 public final char yycharat(int pos) {
530 return zzBuffer[zzStartRead+pos];
535 * Returns the length of the matched text region.
537 public final int yylength() {
538 return zzMarkedPos-zzStartRead;
543 * Reports an error that occured while scanning.
545 * In a wellformed scanner (no or only correct usage of
546 * yypushback(int) and a match-all fallback rule) this method
547 * will only be called with things that "Can't Possibly Happen".
548 * If this method is called, something is seriously wrong
549 * (e.g. a JFlex bug producing a faulty scanner etc.).
551 * Usual syntax/scanner level error handling should be done
552 * in error fallback rules.
554 * @param errorCode the code of the errormessage to display
556 private void zzScanError(int errorCode) {
559 message = ZZ_ERROR_MSG[errorCode];
561 catch (ArrayIndexOutOfBoundsException e) {
562 message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
565 throw new Error(message);
570 * Pushes the specified amount of characters back into the input stream.
572 * They will be read again by then next call of the scanning method
574 * @param number the number of characters to be read again.
575 * This number must not be greater than yylength()!
577 public void yypushback(int number) {
578 if ( number > yylength() )
579 zzScanError(ZZ_PUSHBACK_2BIG);
581 zzMarkedPos -= number;
586 * Contains user EOF-code, which will be executed exactly once,
587 * when the end of file is reached
589 private void zzDoEOF() throws java.io.IOException {
598 * Resumes scanning until the next regular expression is matched,
599 * the end of input is encountered or an I/O-Error occurs.
601 * @return the next token
602 * @exception java.io.IOException if any I/O-Error occurs
604 public java_cup.runtime.Symbol next_token() throws java.io.IOException {
611 int zzEndReadL = zzEndRead;
612 char [] zzBufferL = zzBuffer;
613 char [] zzCMapL = ZZ_CMAP;
615 int [] zzTransL = ZZ_TRANS;
616 int [] zzRowMapL = ZZ_ROWMAP;
617 int [] zzAttrL = ZZ_ATTRIBUTE;
620 zzMarkedPosL = zzMarkedPos;
622 yychar+= zzMarkedPosL-zzStartRead;
627 for (zzCurrentPosL = zzStartRead ;
628 zzCurrentPosL < zzMarkedPosL ;
629 zzCurrentPosL += zzCharCount ) {
630 zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
631 zzCharCount = Character.charCount(zzCh);
657 yycolumn += zzCharCount;
662 // peek one character ahead if it is \n (if we have counted one line too much)
664 if (zzMarkedPosL < zzEndReadL)
665 zzPeek = zzBufferL[zzMarkedPosL] == '\n';
669 boolean eof = zzRefill();
670 zzEndReadL = zzEndRead;
671 zzMarkedPosL = zzMarkedPos;
672 zzBufferL = zzBuffer;
676 zzPeek = zzBufferL[zzMarkedPosL] == '\n';
678 if (zzPeek) yyline--;
682 zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
684 zzState = ZZ_LEXSTATE[zzLexicalState];
686 // set up zzAction for empty match case:
687 int zzAttributes = zzAttrL[zzState];
688 if ( (zzAttributes & 1) == 1 ) {
696 if (zzCurrentPosL < zzEndReadL) {
697 zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
698 zzCurrentPosL += Character.charCount(zzInput);
705 // store back cached positions
706 zzCurrentPos = zzCurrentPosL;
707 zzMarkedPos = zzMarkedPosL;
708 boolean eof = zzRefill();
709 // get translated positions and possibly new buffer
710 zzCurrentPosL = zzCurrentPos;
711 zzMarkedPosL = zzMarkedPos;
712 zzBufferL = zzBuffer;
713 zzEndReadL = zzEndRead;
719 zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
720 zzCurrentPosL += Character.charCount(zzInput);
723 int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
724 if (zzNext == -1) break zzForAction;
727 zzAttributes = zzAttrL[zzState];
728 if ( (zzAttributes & 1) == 1 ) {
730 zzMarkedPosL = zzCurrentPosL;
731 if ( (zzAttributes & 8) == 8 ) break zzForAction;
737 // store back cached position
738 zzMarkedPos = zzMarkedPosL;
740 if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
743 { return symbolFactory.newSymbol("EOF", EOF, new Location(yyline+1,yycolumn+1,yychar), new Location(yyline+1,yycolumn+1,yychar+1));
747 switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
749 { /* throw new Error("Illegal character <"+ yytext()+">");*/
750 error("Illegal character <"+ yytext()+">");
754 { return symbol("Identifier",IDENT, yytext());
762 { return symbol("semicolon",SEMICOLON);
766 { string.setLength(0); yybegin(STRING);
770 { return symbol("comma",COMMA);
774 { return symbol("dot",DOT);
778 { return symbol("(",LPAR);
782 { return symbol(")",RPAR);
786 { return symbol("{",BEGIN);
790 { return symbol("}",END);
794 { return symbol("=",ASSIGN);
798 { string.append( yytext() );
802 { yybegin(YYINITIAL);
803 return symbol("StringConst",STRINGCONST,string.toString(),string.length());
807 { string.append('\\');
811 { return symbol("as",AS);
815 { string.append('\n');
819 { string.append('\t');
823 { string.append('\r');
827 { string.append('\"');
831 { return symbol("int",TYPE, "int" );
835 { return symbol("byte",TYPE, "byte" );
839 { return symbol("long",TYPE, "long" );
843 { return symbol("char",TYPE, "char" );
847 { return symbol("void",TYPE, "void" );
851 { return symbol("with",WITH);
855 { return symbol("short",TYPE, "short" );
859 { return symbol("float",TYPE, "float" );
863 { return symbol("string",TYPE, "String" );
867 { return symbol("double",TYPE, "double" );
871 { return symbol("String",TYPE, "String" );
875 { return symbol("public",PUBLIC);
879 { return symbol("method",METHOD);
883 { return symbol("boolean",TYPE, "boolean" );
887 { return symbol("requires",REQUIRES);
891 { return symbol("interface",INTERFACE);
895 { return symbol("capability",CAPABILITY);
899 { return symbol("description",DESCRIPTION);
903 zzScanError(ZZ_NO_MATCH);