|  |  | 
|  | /** This character denotes the end of file */ | 
|  | public static final int YYEOF = LexerInput.EOF; | 
|  |  | 
|  | /** initial size of the lookahead buffer */ | 
|  | --- private static final int ZZ_BUFFERSIZE = ...; | 
|  |  | 
|  | /** lexical states */ | 
|  | ---  lexical states, charmap | 
|  |  | 
|  | /* error codes */ | 
|  | private static final int ZZ_UNKNOWN_ERROR = 0; | 
|  | private static final int ZZ_NO_MATCH = 1; | 
|  | private static final int ZZ_PUSHBACK_2BIG = 2; | 
|  |  | 
|  | /* error messages for the codes above */ | 
|  | private static final String ZZ_ERROR_MSG[] = { | 
|  | "Unkown internal scanner error", | 
|  | "Error: could not match input", | 
|  | "Error: pushback value was too large" | 
|  | }; | 
|  |  | 
|  | --- isFinal list | 
|  | /** the input device */ | 
|  | private java.io.Reader zzReader; | 
|  |  | 
|  | /** the current state of the DFA */ | 
|  | private int zzState; | 
|  |  | 
|  | /** the current lexical state */ | 
|  | private int zzLexicalState = YYINITIAL; | 
|  |  | 
|  | /** this buffer contains the current text to be matched and is | 
|  | the source of the yytext() string */ | 
|  | private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; | 
|  |  | 
|  | /** the textposition at the last accepting state */ | 
|  | private int zzMarkedPos; | 
|  |  | 
|  | /** the textposition at the last state to be included in yytext */ | 
|  | private int zzPushbackPos; | 
|  |  | 
|  | /** the current text position in the buffer */ | 
|  | private int zzCurrentPos; | 
|  |  | 
|  | /** startRead marks the beginning of the yytext() string in the buffer */ | 
|  | private int zzStartRead; | 
|  |  | 
|  | /** endRead marks the last character in the buffer, that has been read | 
|  | from input */ | 
|  | private int zzEndRead; | 
|  |  | 
|  | /** number of newlines encountered up to the start of the matched text */ | 
|  | private int yyline; | 
|  |  | 
|  | /** the number of characters up to the start of the matched text */ | 
|  | private int yychar; | 
|  |  | 
|  | /** | 
|  | * the number of characters from the last newline up to the start of the | 
|  | * matched text | 
|  | */ | 
|  | private int yycolumn; | 
|  |  | 
|  | /** | 
|  | * zzAtBOL == true <=> the scanner is currently at the beginning of a line | 
|  | */ | 
|  | private boolean zzAtBOL = true; | 
|  |  | 
|  | /** zzAtEOF == true <=> the scanner is at the EOF */ | 
|  | private boolean zzAtEOF = false; | 
|  |  | 
|  | --- user class code | 
|  |  | 
|  | /** | 
|  | * Creates a new scanner | 
|  | * There is also a java.io.InputStream version of this constructor. | 
|  | * | 
|  | * @param   in  the java.io.Reader to read input from. | 
|  | */ | 
|  | --- constructor declaration | 
|  |  | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Closes the input stream. | 
|  | */ | 
|  | public final void yyclose() throws java.io.IOException { | 
|  | zzAtEOF = true;            /* indicate end of file */ | 
|  | zzEndRead = zzStartRead;  /* invalidate buffer    */ | 
|  |  | 
|  | if (zzReader != null) | 
|  | zzReader.close(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Resets the scanner to read from a new input stream. | 
|  | * Does not close the old reader. | 
|  | * | 
|  | * All internal variables are reset, the old input stream | 
|  | * <b>cannot</b> be reused (internal buffer is discarded and lost). | 
|  | * Lexical state is set to <tt>ZZ_INITIAL</tt>. | 
|  | * | 
|  | * @param reader   the new input stream | 
|  | */ | 
|  | public final void yyreset(java.io.Reader reader) { | 
|  | zzReader = reader; | 
|  | zzAtBOL  = true; | 
|  | zzAtEOF  = false; | 
|  | zzEndRead = zzStartRead = 0; | 
|  | zzCurrentPos = zzMarkedPos = zzPushbackPos = 0; | 
|  | yyline = yychar = yycolumn = 0; | 
|  | zzLexicalState = YYINITIAL; | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Returns the current lexical state. | 
|  | */ | 
|  | public final int yystate() { | 
|  | return zzLexicalState; | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Enters a new lexical state | 
|  | * | 
|  | * @param newState the new lexical state | 
|  | */ | 
|  | public final void yybegin(int newState) { | 
|  | zzLexicalState = newState; | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Returns the text matched by the current regular expression. | 
|  | */ | 
|  | public final String yytext() { | 
|  | return input.readText().toString(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Returns the character at position <tt>pos</tt> from the | 
|  | * matched text. | 
|  | * | 
|  | * It is equivalent to yytext().charAt(pos), but faster | 
|  | * | 
|  | * @param pos the position of the character to fetch. | 
|  | *            A value from 0 to yylength()-1. | 
|  | * | 
|  | * @return the character at position pos | 
|  | */ | 
|  | public final char yycharat(int pos) { | 
|  | return input.readText().charAt(pos); | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Returns the length of the matched text region. | 
|  | */ | 
|  | public final int yylength() { | 
|  | return input.readLength(); | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Reports an error that occured while scanning. | 
|  | * | 
|  | * In a wellformed scanner (no or only correct usage of | 
|  | * yypushback(int) and a match-all fallback rule) this method | 
|  | * will only be called with things that "Can't Possibly Happen". | 
|  | * If this method is called, something is seriously wrong | 
|  | * (e.g. a JFlex bug producing a faulty scanner etc.). | 
|  | * | 
|  | * Usual syntax/scanner level error handling should be done | 
|  | * in error fallback rules. | 
|  | * | 
|  | * @param   errorCode  the code of the errormessage to display | 
|  | */ | 
|  | --- zzScanError declaration | 
|  | String message; | 
|  | try { | 
|  | message = ZZ_ERROR_MSG[errorCode]; | 
|  | } | 
|  | catch (ArrayIndexOutOfBoundsException e) { | 
|  | message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; | 
|  | } | 
|  |  | 
|  | --- throws clause | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Pushes the specified amount of characters back into the input stream. | 
|  | * | 
|  | * They will be read again by then next call of the scanning method | 
|  | * | 
|  | * @param number  the number of characters to be read again. | 
|  | *                This number must not be greater than yylength()! | 
|  | */ | 
|  | --- yypushback decl (contains zzScanError exception) | 
|  | if ( number > yylength() ) | 
|  | zzScanError(ZZ_PUSHBACK_2BIG); | 
|  |  | 
|  | input.backup(number); | 
|  | //zzMarkedPos -= number; | 
|  | } | 
|  |  | 
|  |  | 
|  | --- zzDoEOF | 
|  | /** | 
|  | * Resumes scanning until the next regular expression is matched, | 
|  | * the end of input is encountered or an I/O-Error occurs. | 
|  | * | 
|  | * @return      the next token | 
|  | * @exception   java.io.IOException  if any I/O-Error occurs | 
|  | */ | 
|  | --- yylex declaration | 
|  | int zzInput; | 
|  | int zzAction; | 
|  |  | 
|  | // cached fields: | 
|  | //int zzCurrentPosL; | 
|  | //int zzMarkedPosL; | 
|  | //int zzEndReadL = zzEndRead; | 
|  | //char [] zzBufferL = zzBuffer; | 
|  | char [] zzCMapL = ZZ_CMAP; | 
|  |  | 
|  | --- local declarations | 
|  |  | 
|  | while (true) { | 
|  | //zzMarkedPosL = zzMarkedPos; | 
|  |  | 
|  | --- start admin (line, char, col count) | 
|  | zzAction = -1; | 
|  |  | 
|  | //zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; | 
|  | int tokenLength = 0; | 
|  |  | 
|  | --- start admin (lexstate etc) | 
|  |  | 
|  | zzForAction: { | 
|  | while (true) { | 
|  | zzInput = input.read(); | 
|  |  | 
|  | if(zzInput == LexerInput.EOF) { | 
|  | //end of input reached | 
|  | zzInput = YYEOF; | 
|  | break zzForAction; | 
|  | //notice: currently LexerInput.EOF == YYEOF | 
|  | } | 
|  |  | 
|  | --- line, col, char count, next transition, isFinal action | 
|  | zzAction = zzState; | 
|  | tokenLength = input.readLength(); | 
|  | --- line count update | 
|  | } | 
|  |  | 
|  | } | 
|  | } | 
|  |  | 
|  | // store back cached position | 
|  | if(zzInput != YYEOF) { | 
|  | input.backup(input.readLength() - tokenLength); | 
|  | } | 
|  | --- char count update | 
|  |  | 
|  | --- actions | 
|  | default: | 
|  | if (zzInput == YYEOF) | 
|  | //zzAtEOF = true; | 
|  | --- eofvalue | 
|  |  | 
|  | else { | 
|  | --- no match | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | --- main | 
|  |  | 
|  | } |