blob: 33e48f210afa3104f9d145ae67ea467e3eb91cd4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:41 PM */
/*nlsXXX*/
package org.eclipse.wst.html.core.internal.contenttype;
import java.io.IOException;
import java.io.Reader;
import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
/**
* This class is a scanner generated by
* <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
* on 1/27/04 6:41 PM from the specification file
* <tt>file:/D:/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jflex</tt>
*/
public class HTMLHeadTokenizer {
/** this character denotes the end of file */
final public static int YYEOF = -1;
/** lexical states */
final public static int ST_META_TAG = 4;
final public static int YYINITIAL = 0;
final public static int UnDelimitedString = 12;
final public static int DQ_STRING = 8;
final public static int SQ_STRING = 10;
final public static int ST_XMLDecl = 2;
final public static int QuotedAttributeValue = 6;
/**
* YY_LEXSTATE[l] is the state in the DFA for the lexical state l
* YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l
* at the beginning of a line
* l is of the form l = 2*k, k a non negative integer
*/
private final static int YY_LEXSTATE[] = {0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7};
/**
* Translates characters to character classes
*/
final private static String yycmap_packed = "\11\0\1\6\1\7\2\0\1\11\22\0\1\22\1\0\1\40\2\0" + "\1\44\1\0\1\43\5\0\1\34\1\0\1\42\13\0\1\45\1\12" + "\1\10\1\31\1\13\1\0\1\21\1\0\1\24\1\26\1\17\1\0" + "\1\30\1\32\1\27\2\0\1\16\1\15\1\23\1\25\1\33\1\35" + "\2\0\1\20\1\36\1\37\1\0\1\14\1\41\7\0\1\21\1\0" + "\1\24\1\26\1\17\1\0\1\30\1\32\1\27\2\0\1\16\1\15" + "\1\23\1\25\1\33\1\35\2\0\1\20\1\36\1\37\1\0\1\14" + "\1\41\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0" + "\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
/**
* Translates characters to character classes
*/
final private static char[] yycmap = yy_unpack_cmap(yycmap_packed);
/* error codes */
final private static int YY_UNKNOWN_ERROR = 0;
final private static int YY_ILLEGAL_STATE = 1;
final private static int YY_NO_MATCH = 2;
final private static int YY_PUSHBACK_2BIG = 3;
/* error messages for the codes above */
final private static String YY_ERROR_MSG[] = {"Unkown internal scanner error", "Internal error: unknown state", "Error: could not match input", "Error: pushback value was too large"};
/** the input device */
private java.io.Reader yy_reader;
/** the current state of the DFA */
private int yy_state;
/** the current lexical state */
private int yy_lexical_state = YYINITIAL;
/** this buffer contains the current text to be matched and is
the source of the yytext() string */
private char yy_buffer[] = new char[16384];
/** the textposition at the last accepting state */
private int yy_markedPos;
/** the textposition at the last state to be included in yytext */
private int yy_pushbackPos;
/** the current text position in the buffer */
private int yy_currentPos;
/** startRead marks the beginning of the yytext() string in the buffer */
private int yy_startRead;
/** endRead marks the last character in the buffer, that has been read
from input */
private int yy_endRead;
/** the number of characters up to the start of the matched text */
private int yychar;
/**
* yy_atBOL == true <=> the scanner is currently at the beginning of a line
*/
private boolean yy_atBOL;
/** yy_atEOF == true <=> the scanner has returned a value for EOF */
private boolean yy_atEOF;
/** denotes if the user-EOF-code has already been executed */
private boolean yy_eof_done;
/* user code: */
private boolean hasMore = true;
private final static int MAX_TO_SCAN = 8000;
StringBuffer string = new StringBuffer();
// state stack for easier state handling
private IntStack fStateStack = new IntStack();
private String valueText = null;
boolean foundContentTypeValue = false;
public HTMLHeadTokenizer() {
super();
}
public void reset(Reader in) {
/* the input device */
yy_reader = in;
/* the current state of the DFA */
yy_state = 0;
/* the current lexical state */
yy_lexical_state = YYINITIAL;
/* this buffer contains the current text to be matched and is
the source of the yytext() string */
java.util.Arrays.fill(yy_buffer, (char) 0);
/* the textposition at the last accepting state */
yy_markedPos = 0;
/* the textposition at the last state to be included in yytext */
yy_pushbackPos = 0;
/* the current text position in the buffer */
yy_currentPos = 0;
/* startRead marks the beginning of the yytext() string in the buffer */
yy_startRead = 0;
/**
* endRead marks the last character in the buffer, that has been read
* from input
*/
yy_endRead = 0;
/* the number of characters up to the start of the matched text */
yychar = 0;
/**
* yy_atBOL == true <=> the scanner is currently at the beginning
* of a line
*/
yy_atBOL = false;
/* yy_atEOF == true <=> the scanner has returned a value for EOF */
yy_atEOF = false;
/* denotes if the user-EOF-code has already been executed */
yy_eof_done = false;
fStateStack.clear();
hasMore = true;
// its a little wasteful to "throw away" first char array generated
// by class init (via auto generated code), but we really do want
// a small buffer for our head parsers.
if (yy_buffer.length != MAX_TO_SCAN) {
yy_buffer = new char[MAX_TO_SCAN];
}
}
public final HeadParserToken getNextToken() throws IOException {
String context = null;
context = primGetNextToken();
HeadParserToken result = null;
if (valueText != null) {
result = createToken(context, yychar, valueText);
valueText = null;
}
else {
result = createToken(context, yychar, yytext());
}
return result;
}
public final boolean hasMoreTokens() {
return hasMore && yychar < MAX_TO_SCAN;
}
private void pushCurrentState() {
fStateStack.push(yystate());
}
private void popState() {
yybegin(fStateStack.pop());
}
private HeadParserToken createToken(String context, int start, String text) {
return new HeadParserToken(context, start, text);
}
/**
* 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.
*/
public HTMLHeadTokenizer(java.io.Reader in) {
this.yy_reader = in;
}
/**
* Creates a new scanner.
* There is also java.io.Reader version of this constructor.
*
* @param in the java.io.Inputstream to read input from.
*/
public HTMLHeadTokenizer(java.io.InputStream in) {
this(new java.io.InputStreamReader(in));
}
/**
* Unpacks the compressed character translation table.
*
* @param packed the packed character translation table
* @return the unpacked character translation table
*/
private static char[] yy_unpack_cmap(String packed) {
char[] map = new char[0x10000];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
while (i < 174) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do
map[j++] = value;
while (--count > 0);
}
return map;
}
/**
* Gets the next input character.
*
* @return the next character of the input stream, EOF if the
* end of the stream is reached.
* @exception IOException if any I/O-Error occurs
*/
private int yy_advance() throws java.io.IOException {
/* standard case */
if (yy_currentPos < yy_endRead)
return yy_buffer[yy_currentPos++];
/* if the eof is reached, we don't need to work hard */
if (yy_atEOF)
return YYEOF;
/* otherwise: need to refill the buffer */
/* first: make room (if you can) */
if (yy_startRead > 0) {
System.arraycopy(yy_buffer, yy_startRead, yy_buffer, 0, yy_endRead - yy_startRead);
/* translate stored positions */
yy_endRead -= yy_startRead;
yy_currentPos -= yy_startRead;
yy_markedPos -= yy_startRead;
yy_pushbackPos -= yy_startRead;
yy_startRead = 0;
}
/* is the buffer big enough? */
if (yy_currentPos >= yy_buffer.length) {
/* if not: blow it up */
char newBuffer[] = new char[yy_currentPos * 2];
System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
yy_buffer = newBuffer;
}
/* finally: fill the buffer with new input */
int numRead = yy_reader.read(yy_buffer, yy_endRead, yy_buffer.length - yy_endRead);
if (numRead == -1)
return YYEOF;
yy_endRead += numRead;
return yy_buffer[yy_currentPos++];
}
/**
* Closes the input stream.
*/
final public void yyclose() throws java.io.IOException {
yy_atEOF = true; /* indicate end of file */
yy_endRead = yy_startRead; /* invalidate buffer */
yy_reader.close();
}
/**
* Returns the current lexical state.
*/
final public int yystate() {
return yy_lexical_state;
}
/**
* Enters a new lexical state
*
* @param newState the new lexical state
*/
final public void yybegin(int newState) {
yy_lexical_state = newState;
}
/**
* Returns the text matched by the current regular expression.
*/
final public String yytext() {
return new String(yy_buffer, yy_startRead, yy_markedPos - yy_startRead);
}
/**
* Returns the length of the matched text region.
*/
final public int yylength() {
return yy_markedPos - yy_startRead;
}
/**
* Reports an error that occured while scanning.
*
* @param errorCode the code of the errormessage to display
*/
private void yy_ScanError(int errorCode) {
try {
System.out.println(YY_ERROR_MSG[errorCode]);
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
}
System.exit(1);
}
/**
* 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()!
*/
private void yypushback(int number) {
if (number > yylength())
yy_ScanError(YY_PUSHBACK_2BIG);
yy_markedPos -= number;
}
/**
* Contains user EOF-code, which will be executed exactly once,
* when the end of file is reached
*/
private void yy_do_eof() {
if (!yy_eof_done) {
yy_eof_done = true;
hasMore = false;
}
}
/**
* 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 IOException if any I/O-Error occurs
*/
public String primGetNextToken() throws java.io.IOException {
int yy_input;
int yy_action;
while (true) {
yychar += yylength();
yy_atBOL = yy_markedPos <= 0 || yy_buffer[yy_markedPos - 1] == '\n';
if (!yy_atBOL && yy_buffer[yy_markedPos - 1] == '\r') {
yy_atBOL = yy_advance() != '\n';
if (!yy_atEOF)
yy_currentPos--;
}
yy_action = -1;
yy_currentPos = yy_startRead = yy_markedPos;
if (yy_atBOL)
yy_state = YY_LEXSTATE[yy_lexical_state + 1];
else
yy_state = YY_LEXSTATE[yy_lexical_state];
yy_forAction : {
while (true) {
yy_input = yy_advance();
if (yy_input == YYEOF)
break yy_forAction;
yy_input = yycmap[yy_input];
boolean yy_isFinal = false;
boolean yy_noLookAhead = false;
yy_forNext : {
switch (yy_state) {
case 0 :
switch (yy_input) {
case 1 :
yy_isFinal = true;
yy_state = 9;
break yy_forNext;
case 2 :
yy_isFinal = true;
yy_state = 10;
break yy_forNext;
case 3 :
yy_isFinal = true;
yy_state = 11;
break yy_forNext;
case 10 :
yy_isFinal = true;
yy_state = 12;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 8;
break yy_forNext;
}
case 1 :
switch (yy_input) {
case 1 :
yy_isFinal = true;
yy_state = 9;
break yy_forNext;
case 2 :
yy_isFinal = true;
yy_state = 10;
break yy_forNext;
case 3 :
yy_isFinal = true;
yy_state = 11;
break yy_forNext;
case 6 :
case 7 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 13;
break yy_forNext;
case 10 :
yy_isFinal = true;
yy_state = 14;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 8;
break yy_forNext;
}
case 2 :
switch (yy_input) {
case 11 :
yy_isFinal = true;
yy_state = 15;
break yy_forNext;
case 15 :
yy_isFinal = true;
yy_state = 16;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 8;
break yy_forNext;
}
case 3 :
switch (yy_input) {
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 17;
break yy_forNext;
case 26 :
yy_isFinal = true;
yy_state = 18;
break yy_forNext;
case 34 :
yy_isFinal = true;
yy_state = 19;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 8;
break yy_forNext;
}
case 4 :
switch (yy_input) {
case 6 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 21;
break yy_forNext;
case 7 :
yy_isFinal = true;
yy_state = 22;
break yy_forNext;
case 32 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 23;
break yy_forNext;
case 35 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 24;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 20;
break yy_forNext;
}
case 5 :
switch (yy_input) {
case 7 :
case 9 :
case 10 :
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 26;
break yy_forNext;
case 11 :
case 34 :
yy_isFinal = true;
yy_state = 27;
break yy_forNext;
case 32 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 28;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 25;
break yy_forNext;
}
case 6 :
switch (yy_input) {
case 7 :
case 9 :
case 10 :
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 26;
break yy_forNext;
case 34 :
yy_isFinal = true;
yy_state = 27;
break yy_forNext;
case 35 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 28;
break yy_forNext;
case 36 :
yy_isFinal = true;
yy_state = 29;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 25;
break yy_forNext;
}
case 7 :
switch (yy_input) {
case 10 :
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 26;
break yy_forNext;
case 34 :
yy_isFinal = true;
yy_state = 27;
break yy_forNext;
case 11 :
yy_isFinal = true;
yy_state = 29;
break yy_forNext;
case 6 :
case 7 :
case 9 :
case 18 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 30;
break yy_forNext;
case 32 :
case 35 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 31;
break yy_forNext;
case 37 :
yy_isFinal = true;
yy_state = 32;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 25;
break yy_forNext;
}
case 9 :
switch (yy_input) {
case 2 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 33;
break yy_forNext;
default :
break yy_forAction;
}
case 10 :
switch (yy_input) {
case 1 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 34;
break yy_forNext;
default :
break yy_forAction;
}
case 11 :
switch (yy_input) {
case 4 :
yy_state = 35;
break yy_forNext;
default :
break yy_forAction;
}
case 12 :
switch (yy_input) {
case 13 :
yy_state = 36;
break yy_forNext;
default :
break yy_forAction;
}
case 13 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 37;
break yy_forNext;
case 10 :
yy_state = 38;
break yy_forNext;
default :
break yy_forAction;
}
case 14 :
switch (yy_input) {
case 13 :
yy_state = 36;
break yy_forNext;
case 11 :
yy_state = 39;
break yy_forNext;
default :
break yy_forAction;
}
case 15 :
switch (yy_input) {
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 40;
break yy_forNext;
default :
break yy_forAction;
}
case 16 :
switch (yy_input) {
case 19 :
yy_state = 41;
break yy_forNext;
default :
break yy_forAction;
}
case 18 :
switch (yy_input) {
case 16 :
yy_state = 42;
break yy_forNext;
default :
break yy_forAction;
}
case 19 :
switch (yy_input) {
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 43;
break yy_forNext;
default :
break yy_forAction;
}
case 21 :
switch (yy_input) {
case 6 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 21;
break yy_forNext;
case 7 :
yy_state = 44;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 20;
break yy_forNext;
}
case 22 :
switch (yy_input) {
case 6 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 21;
break yy_forNext;
case 7 :
yy_state = 44;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 20;
break yy_forNext;
}
case 27 :
switch (yy_input) {
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 45;
break yy_forNext;
default :
break yy_forAction;
}
case 29 :
switch (yy_input) {
case 25 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 46;
break yy_forNext;
default :
break yy_forAction;
}
case 32 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 32;
break yy_forNext;
default :
break yy_forAction;
}
case 35 :
switch (yy_input) {
case 5 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 47;
break yy_forNext;
default :
break yy_forAction;
}
case 36 :
switch (yy_input) {
case 15 :
yy_state = 48;
break yy_forNext;
default :
break yy_forAction;
}
case 37 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 37;
break yy_forNext;
case 10 :
yy_state = 38;
break yy_forNext;
default :
break yy_forAction;
}
case 38 :
switch (yy_input) {
case 11 :
yy_state = 39;
break yy_forNext;
default :
break yy_forAction;
}
case 39 :
switch (yy_input) {
case 12 :
yy_state = 49;
break yy_forNext;
default :
break yy_forAction;
}
case 41 :
switch (yy_input) {
case 20 :
yy_state = 50;
break yy_forNext;
default :
break yy_forAction;
}
case 42 :
switch (yy_input) {
case 16 :
yy_state = 51;
break yy_forNext;
default :
break yy_forAction;
}
case 44 :
switch (yy_input) {
case 6 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 21;
break yy_forNext;
case 7 :
yy_state = 44;
break yy_forNext;
default :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 20;
break yy_forNext;
}
case 48 :
switch (yy_input) {
case 16 :
yy_state = 52;
break yy_forNext;
default :
break yy_forAction;
}
case 49 :
switch (yy_input) {
case 13 :
yy_state = 53;
break yy_forNext;
default :
break yy_forAction;
}
case 50 :
switch (yy_input) {
case 21 :
yy_state = 54;
break yy_forNext;
default :
break yy_forAction;
}
case 51 :
switch (yy_input) {
case 27 :
yy_state = 55;
break yy_forNext;
default :
break yy_forAction;
}
case 52 :
switch (yy_input) {
case 17 :
yy_state = 56;
break yy_forNext;
default :
break yy_forAction;
}
case 53 :
switch (yy_input) {
case 14 :
yy_state = 57;
break yy_forNext;
default :
break yy_forAction;
}
case 54 :
switch (yy_input) {
case 22 :
yy_state = 58;
break yy_forNext;
default :
break yy_forAction;
}
case 55 :
switch (yy_input) {
case 28 :
yy_state = 59;
break yy_forNext;
default :
break yy_forAction;
}
case 56 :
switch (yy_input) {
case 18 :
yy_isFinal = true;
yy_noLookAhead = true;
yy_state = 60;
break yy_forNext;
default :
break yy_forAction;
}
case 57 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 61;
break yy_forNext;
default :
break yy_forAction;
}
case 58 :
switch (yy_input) {
case 23 :
yy_state = 62;
break yy_forNext;
default :
break yy_forAction;
}
case 59 :
switch (yy_input) {
case 15 :
yy_state = 63;
break yy_forNext;
default :
break yy_forAction;
}
case 61 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 61;
break yy_forNext;
default :
break yy_forAction;
}
case 62 :
switch (yy_input) {
case 19 :
yy_state = 64;
break yy_forNext;
default :
break yy_forAction;
}
case 63 :
switch (yy_input) {
case 29 :
yy_state = 65;
break yy_forNext;
default :
break yy_forAction;
}
case 64 :
switch (yy_input) {
case 24 :
yy_state = 66;
break yy_forNext;
default :
break yy_forAction;
}
case 65 :
switch (yy_input) {
case 30 :
yy_state = 67;
break yy_forNext;
default :
break yy_forAction;
}
case 66 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 66;
break yy_forNext;
case 8 :
yy_isFinal = true;
yy_state = 68;
break yy_forNext;
default :
break yy_forAction;
}
case 67 :
switch (yy_input) {
case 23 :
yy_state = 69;
break yy_forNext;
default :
break yy_forAction;
}
case 68 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 68;
break yy_forNext;
default :
break yy_forAction;
}
case 69 :
switch (yy_input) {
case 31 :
yy_state = 70;
break yy_forNext;
default :
break yy_forAction;
}
case 70 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 70;
break yy_forNext;
case 8 :
yy_state = 71;
break yy_forNext;
default :
break yy_forAction;
}
case 71 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 71;
break yy_forNext;
case 20 :
yy_state = 72;
break yy_forNext;
case 32 :
yy_state = 73;
break yy_forNext;
default :
break yy_forAction;
}
case 72 :
switch (yy_input) {
case 21 :
yy_state = 74;
break yy_forNext;
default :
break yy_forAction;
}
case 73 :
switch (yy_input) {
case 20 :
yy_state = 72;
break yy_forNext;
default :
break yy_forAction;
}
case 74 :
switch (yy_input) {
case 19 :
yy_state = 75;
break yy_forNext;
default :
break yy_forAction;
}
case 75 :
switch (yy_input) {
case 16 :
yy_state = 76;
break yy_forNext;
default :
break yy_forAction;
}
case 76 :
switch (yy_input) {
case 15 :
yy_state = 77;
break yy_forNext;
default :
break yy_forAction;
}
case 77 :
switch (yy_input) {
case 19 :
yy_state = 78;
break yy_forNext;
default :
break yy_forAction;
}
case 78 :
switch (yy_input) {
case 16 :
yy_state = 79;
break yy_forNext;
default :
break yy_forAction;
}
case 79 :
switch (yy_input) {
case 28 :
yy_state = 80;
break yy_forNext;
default :
break yy_forAction;
}
case 80 :
switch (yy_input) {
case 16 :
yy_state = 81;
break yy_forNext;
default :
break yy_forAction;
}
case 81 :
switch (yy_input) {
case 33 :
yy_state = 82;
break yy_forNext;
default :
break yy_forAction;
}
case 82 :
switch (yy_input) {
case 27 :
yy_state = 83;
break yy_forNext;
default :
break yy_forAction;
}
case 83 :
switch (yy_input) {
case 15 :
yy_state = 84;
break yy_forNext;
default :
break yy_forAction;
}
case 84 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 85;
break yy_forNext;
case 32 :
yy_state = 86;
break yy_forNext;
default :
break yy_forAction;
}
case 85 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 85;
break yy_forNext;
case 20 :
yy_state = 87;
break yy_forNext;
default :
break yy_forAction;
}
case 86 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 85;
break yy_forNext;
default :
break yy_forAction;
}
case 87 :
switch (yy_input) {
case 21 :
yy_state = 88;
break yy_forNext;
default :
break yy_forAction;
}
case 88 :
switch (yy_input) {
case 19 :
yy_state = 89;
break yy_forNext;
default :
break yy_forAction;
}
case 89 :
switch (yy_input) {
case 16 :
yy_state = 90;
break yy_forNext;
default :
break yy_forAction;
}
case 90 :
switch (yy_input) {
case 15 :
yy_state = 91;
break yy_forNext;
default :
break yy_forAction;
}
case 91 :
switch (yy_input) {
case 19 :
yy_state = 92;
break yy_forNext;
default :
break yy_forAction;
}
case 92 :
switch (yy_input) {
case 16 :
yy_state = 93;
break yy_forNext;
default :
break yy_forAction;
}
case 93 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_state = 93;
break yy_forNext;
case 8 :
yy_isFinal = true;
yy_state = 94;
break yy_forNext;
default :
break yy_forAction;
}
case 94 :
switch (yy_input) {
case 6 :
case 7 :
case 9 :
case 18 :
yy_isFinal = true;
yy_state = 94;
break yy_forNext;
default :
break yy_forAction;
}
default :
yy_ScanError(YY_ILLEGAL_STATE);
break;
}
}
if (yy_isFinal) {
yy_action = yy_state;
yy_markedPos = yy_currentPos;
if (yy_noLookAhead)
break yy_forAction;
}
}
}
switch (yy_action) {
case 26 :
{
yypushback(1);
popState();
valueText = string.toString();
return EncodingParserConstants.InvalidTerminatedStringValue;
}
case 96 :
break;
case 20 :
case 21 :
{
yypushback(1);
yybegin(UnDelimitedString);
string.setLength(0);
}
case 97 :
break;
case 17 :
{
yybegin(YYINITIAL);
if (foundContentTypeValue)
hasMore = false;
return HTMLHeadTokenizerConstants.MetaTagEnd;
}
case 98 :
break;
case 31 :
{
yypushback(1);
popState();
valueText = string.toString();
return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
}
case 99 :
break;
case 43 :
{
yybegin(YYINITIAL);
if (foundContentTypeValue)
hasMore = false;
return HTMLHeadTokenizerConstants.MetaTagEnd;
}
case 100 :
break;
case 45 :
{
yypushback(2);
popState();
valueText = string.toString();
return EncodingParserConstants.InvalidTerminatedStringValue;
}
case 101 :
break;
case 46 :
{
yypushback(2);
popState();
valueText = string.toString();
return EncodingParserConstants.InvalidTerminatedStringValue;
}
case 102 :
break;
case 61 :
{
if (yychar == 0) {
yybegin(ST_XMLDecl);
return XMLHeadTokenizerConstants.XMLDeclStart;
}
}
case 103 :
break;
case 8 :
case 9 :
case 10 :
case 11 :
case 12 :
case 13 :
case 14 :
case 15 :
case 16 :
case 18 :
case 19 :
case 22 :
{
if (yychar > MAX_TO_SCAN) {
hasMore = false;
return EncodingParserConstants.MAX_CHARS_REACHED;
}
}
case 104 :
break;
case 60 :
{
yybegin(ST_META_TAG);
return HTMLHeadTokenizerConstants.MetaTagStart;
}
case 105 :
break;
case 40 :
{
yybegin(YYINITIAL);
return XMLHeadTokenizerConstants.XMLDeclEnd;
}
case 106 :
break;
case 94 :
{
pushCurrentState();
yybegin(QuotedAttributeValue);
foundContentTypeValue = true;
return HTMLHeadTokenizerConstants.MetaTagContentType;
}
case 107 :
break;
case 68 :
{
pushCurrentState();
yybegin(QuotedAttributeValue);
return XMLHeadTokenizerConstants.XMLDelEncoding;
}
case 108 :
break;
case 33 :
{
hasMore = false;
return EncodingParserConstants.UTF16BE;
}
case 109 :
break;
case 34 :
{
hasMore = false;
return EncodingParserConstants.UTF16LE;
}
case 110 :
break;
case 47 :
{
hasMore = false;
return EncodingParserConstants.UTF83ByteBOM;
}
case 111 :
break;
case 28 :
{
popState();
valueText = string.toString();
return EncodingParserConstants.StringValue;
}
case 112 :
break;
case 25 :
case 27 :
case 29 :
case 32 :
{
string.append(yytext());
}
case 113 :
break;
case 24 :
{
yybegin(SQ_STRING);
string.setLength(0);
}
case 114 :
break;
case 23 :
{
yybegin(DQ_STRING);
string.setLength(0);
}
case 115 :
break;
case 30 :
{
yypushback(1);
popState();
valueText = string.toString();
return EncodingParserConstants.UnDelimitedStringValue;
}
case 116 :
break;
default :
if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
yy_atEOF = true;
yy_do_eof();
{
hasMore = false;
return EncodingParserConstants.EOF;
}
}
else {
yy_ScanError(YY_NO_MATCH);
}
}
}
}
/**
* Runs the scanner on input files.
*
* This main method is the debugging routine for the scanner.
* It prints each returned token to System.out until the end of
* file is reached, or an error occured.
*
* @param argv the command line, contains the filenames to run
* the scanner on.
*/
public static void main(String argv[]) {
for (int i = 0; i < argv.length; i++) {
HTMLHeadTokenizer scanner = null;
try {
scanner = new HTMLHeadTokenizer(new java.io.FileReader(argv[i]));
}
catch (java.io.FileNotFoundException e) {
System.out.println("File not found : \"" + argv[i] + "\"");
System.exit(1);
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Usage : java HTMLHeadTokenizer <inputfile>");
System.exit(1);
}
try {
do {
System.out.println(scanner.primGetNextToken());
}
while (!scanner.yy_atEOF);
}
catch (java.io.IOException e) {
System.out.println("An I/O error occured while scanning :");
System.out.println(e);
System.exit(1);
}
catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
}