diff options
Diffstat (limited to 'bundles/org.eclipse.wst.sse.core/DevTimeSupport')
39 files changed, 0 insertions, 17537 deletions
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex deleted file mode 100644 index 96fe58a015..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex +++ /dev/null @@ -1,286 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 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 - *******************************************************************************/ -/*nlsXXX*/ -package org.eclipse.wst.common.encoding.contentspecific.css; -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants; -import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken; -import org.eclipse.wst.common.encoding.contentspecific.IntStack; -import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants; - - - -%% - -%{ - - - 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; - - - - public CSSHeadTokenizer() { - 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; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start - * of the matched text - */ - yycolumn = 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); - } - - -%} - -%eof{ - hasMore=false; -%eof} - -%public -%class CSSHeadTokenizer -%function primGetNextToken -%type String -%char -%unicode -%ignorecase -%debug -%switch - - -UTF16BE = \xFE\xFF -UTF16LE = \xFF\xFE -UTF83ByteBOM = \xEF\xBB\xBF - -//SpaceChar = [\x20\x09] - - - -// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+ -S = [\x20\x09\x0D\x0A] - -BeginAttribeValue = {S}* \= {S}* - -LineTerminator = \r|\n - - -%state ST_XMLDecl -%state CHARSET_RULE -%state QuotedAttributeValue -%state DQ_STRING -%state SQ_STRING -%state UnDelimitedString - -%% - - -<YYINITIAL> -{ - {UTF16BE} {hasMore = false; return EncodingParserConstants.UTF16BE;} - {UTF16LE} {hasMore = false; return EncodingParserConstants.UTF16LE;} - {UTF83ByteBOM} {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;} - - // force to be started on first line, but we do allow preceeding spaces - ^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}} - - ^ {S}* "@charset" {if (yychar == 0 ) {yybegin(CHARSET_RULE); return CSSHeadTokenizerConstants.CHARSET_RULE;}} - - -} - -// I don't think there's really an XML form of CSS files ... but will leave here for consistency -<ST_XMLDecl> -{ - //"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;} - "encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;} - // note this "forced end" once end of XML Declaration found - "\?>" {yybegin(YYINITIAL); return XMLHeadTokenizerConstants.XMLDeclEnd;} -} - -<CHARSET_RULE> -{ - - {S}* {pushCurrentState(); yybegin(QuotedAttributeValue);} - ";" { yybegin(YYINITIAL); hasMore = false; return CSSHeadTokenizerConstants.RuleEnd;} -} - - -<QuotedAttributeValue> -{ - \" { yybegin(DQ_STRING); string.setLength(0); } - \' { yybegin(SQ_STRING); string.setLength(0); } - // in this state, anything other than a space character can start an undelimited string - {S}*. { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);} - -} - - -<DQ_STRING> -{ - - \" { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; } - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\?>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "<" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - - ">" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\/>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - ";" { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - - . { string.append( yytext() ); } - - -} - -<SQ_STRING> -{ - - \' { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;} - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "%>" { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "<" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - ">" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\/>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - ";" { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - . { string.append( yytext() ); } - - -} - -<UnDelimitedString> -{ - - - {S} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; } - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\?>" { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "<" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - // these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote - \' { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;} - \" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;} - - ">" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\/>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - ";" { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; } - . { string.append( yytext() ); } - -} - -// The "match anything" rule should always be in effect except for when looking for end of string -// (That is, remember to update state list if/when new states added) -<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, CHARSET_RULE> -{ -// this is the fallback (match "anything") rule (for this scanner, input is ignored, and position advanced, if not recognized) -.|\n {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}} -} - -// this rule always in effect -<<EOF>> {hasMore = false; return EncodingParserConstants.EOF;} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java deleted file mode 100644 index 4dfc385756..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java +++ /dev/null @@ -1,977 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 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 - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:42 PM */ - -/*nlsXXX*/ -package org.eclipse.wst.common.encoding.contentspecific.css; -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants; -import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken; -import org.eclipse.wst.common.encoding.contentspecific.IntStack; -import org.eclipse.wst.common.encoding.contentspecific.xml.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:42 PM from the specification file - * <tt>file:/D:/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jflex</tt> - */ -public class CSSHeadTokenizer { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - 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; - final public static int CHARSET_RULE = 4; - - /** - * 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\11\2\0\1\10\22\0\1\6\1\0\1\36\2\0"+ - "\1\41\1\0\1\37\7\0\1\40\13\0\1\35\1\12\1\7\1\34"+ - "\1\13\1\17\1\22\1\0\1\20\1\31\1\25\1\0\1\33\1\21"+ - "\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24\1\26"+ - "\3\0\1\14\10\0\1\22\1\0\1\20\1\31\1\25\1\0\1\33"+ - "\1\21\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24"+ - "\1\26\3\0\1\14\102\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; - - /** 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; - - /** - * 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 = 1000; - StringBuffer string = new StringBuffer(); - // state stack for easier state handling - private IntStack fStateStack = new IntStack(); - private String valueText = null; - - - - public CSSHeadTokenizer() { - 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; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start - * of the matched text - */ - yycolumn = 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 CSSHeadTokenizer(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 CSSHeadTokenizer(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 < 158) { - 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; - 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 8: - case 9: yy_isFinal = true; yy_state = 12; break yy_forNext; - case 10: yy_isFinal = true; yy_state = 13; break yy_forNext; - case 15: 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 21: 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 6: - case 8: - case 9: yy_isFinal = true; yy_state = 17; break yy_forNext; - case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 18; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext; - } - - case 4: - switch (yy_input) { - case 6: - case 8: yy_isFinal = true; yy_state = 20; break yy_forNext; - case 9: yy_isFinal = true; yy_state = 21; break yy_forNext; - case 30: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext; - case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 23; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext; - } - - case 5: - switch (yy_input) { - case 8: - case 9: - case 10: - case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext; - case 11: - case 32: yy_isFinal = true; yy_state = 26; break yy_forNext; - case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext; - case 30: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext; - } - - case 6: - switch (yy_input) { - case 8: - case 9: - case 10: - case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext; - case 32: yy_isFinal = true; yy_state = 26; break yy_forNext; - case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext; - case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext; - case 33: yy_isFinal = true; yy_state = 29; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext; - } - - case 7: - switch (yy_input) { - case 10: - case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext; - case 32: yy_isFinal = true; yy_state = 26; break yy_forNext; - case 11: yy_isFinal = true; yy_state = 29; break yy_forNext; - case 6: - case 8: - case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 30; break yy_forNext; - case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext; - case 30: - case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 32; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; 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 6: - case 8: - case 9: yy_state = 36; break yy_forNext; - case 10: yy_state = 37; break yy_forNext; - case 15: yy_state = 38; break yy_forNext; - default: break yy_forAction; - } - - case 13: - switch (yy_input) { - case 11: yy_state = 39; break yy_forNext; - default: break yy_forAction; - } - - case 14: - switch (yy_input) { - case 16: yy_state = 40; break yy_forNext; - default: break yy_forAction; - } - - case 15: - switch (yy_input) { - case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 41; break yy_forNext; - default: break yy_forAction; - } - - case 16: - switch (yy_input) { - case 23: yy_state = 42; break yy_forNext; - default: break yy_forAction; - } - - case 17: - switch (yy_input) { - case 6: - case 8: - case 9: yy_isFinal = true; yy_state = 17; break yy_forNext; - default: break yy_forAction; - } - - case 20: - switch (yy_input) { - case 6: - case 8: yy_isFinal = true; yy_state = 20; break yy_forNext; - case 9: yy_state = 43; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext; - } - - case 21: - switch (yy_input) { - case 6: - case 8: yy_isFinal = true; yy_state = 20; break yy_forNext; - case 9: yy_state = 43; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext; - } - - case 26: - switch (yy_input) { - case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 44; break yy_forNext; - default: break yy_forAction; - } - - case 29: - switch (yy_input) { - case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 45; break yy_forNext; - default: break yy_forAction; - } - - case 35: - switch (yy_input) { - case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 46; break yy_forNext; - default: break yy_forAction; - } - - case 36: - switch (yy_input) { - case 6: - case 8: - case 9: yy_state = 36; break yy_forNext; - case 10: yy_state = 37; break yy_forNext; - case 15: yy_state = 38; break yy_forNext; - default: break yy_forAction; - } - - case 37: - switch (yy_input) { - case 11: yy_state = 39; break yy_forNext; - default: break yy_forAction; - } - - case 38: - switch (yy_input) { - case 16: yy_state = 40; break yy_forNext; - default: break yy_forAction; - } - - case 39: - switch (yy_input) { - case 12: yy_state = 47; break yy_forNext; - default: break yy_forAction; - } - - case 40: - switch (yy_input) { - case 17: yy_state = 48; break yy_forNext; - default: break yy_forAction; - } - - case 42: - switch (yy_input) { - case 16: yy_state = 49; break yy_forNext; - default: break yy_forAction; - } - - case 43: - switch (yy_input) { - case 6: - case 8: yy_isFinal = true; yy_state = 20; break yy_forNext; - case 9: yy_state = 43; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext; - } - - case 47: - switch (yy_input) { - case 13: yy_state = 50; break yy_forNext; - default: break yy_forAction; - } - - case 48: - switch (yy_input) { - case 18: yy_state = 51; break yy_forNext; - default: break yy_forAction; - } - - case 49: - switch (yy_input) { - case 24: yy_state = 52; break yy_forNext; - default: break yy_forAction; - } - - case 50: - switch (yy_input) { - case 14: yy_state = 53; break yy_forNext; - default: break yy_forAction; - } - - case 51: - switch (yy_input) { - case 19: yy_state = 54; break yy_forNext; - default: break yy_forAction; - } - - case 52: - switch (yy_input) { - case 25: yy_state = 55; break yy_forNext; - default: break yy_forAction; - } - - case 53: - switch (yy_input) { - case 6: - case 8: - case 9: yy_isFinal = true; yy_state = 56; break yy_forNext; - default: break yy_forAction; - } - - case 54: - switch (yy_input) { - case 20: yy_state = 57; break yy_forNext; - default: break yy_forAction; - } - - case 55: - switch (yy_input) { - case 26: yy_state = 58; break yy_forNext; - default: break yy_forAction; - } - - case 56: - switch (yy_input) { - case 6: - case 8: - case 9: yy_isFinal = true; yy_state = 56; break yy_forNext; - default: break yy_forAction; - } - - case 57: - switch (yy_input) { - case 21: yy_state = 59; break yy_forNext; - default: break yy_forAction; - } - - case 58: - switch (yy_input) { - case 23: yy_state = 60; break yy_forNext; - default: break yy_forAction; - } - - case 59: - switch (yy_input) { - case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 61; break yy_forNext; - default: break yy_forAction; - } - - case 60: - switch (yy_input) { - case 27: yy_state = 62; break yy_forNext; - default: break yy_forAction; - } - - case 62: - switch (yy_input) { - case 6: - case 8: - case 9: yy_state = 62; break yy_forNext; - case 7: yy_isFinal = true; yy_state = 63; break yy_forNext; - default: break yy_forAction; - } - - case 63: - switch (yy_input) { - case 6: - case 8: - case 9: yy_isFinal = true; yy_state = 63; 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 45: - { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - case 65: break; - case 25: - { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - case 66: break; - case 19: - case 20: - { yypushback(1); yybegin(UnDelimitedString); string.setLength(0); } - case 67: break; - case 18: - { yybegin(YYINITIAL); hasMore = false; return CSSHeadTokenizerConstants.RuleEnd; } - case 68: break; - case 32: - { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; } - case 69: break; - case 44: - { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - case 70: break; - case 61: - { if (yychar == 0 ) {yybegin(CHARSET_RULE); return CSSHeadTokenizerConstants.CHARSET_RULE;} } - case 71: break; - case 56: - { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} } - case 72: break; - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 21: - { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} } - case 73: break; - case 41: - { yybegin(YYINITIAL); return XMLHeadTokenizerConstants.XMLDeclEnd; } - case 74: break; - case 63: - { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; } - case 75: break; - case 3: - case 17: - { pushCurrentState(); yybegin(QuotedAttributeValue); } - case 76: break; - case 46: - { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; } - case 77: break; - case 33: - { hasMore = false; return EncodingParserConstants.UTF16BE; } - case 78: break; - case 34: - { hasMore = false; return EncodingParserConstants.UTF16LE; } - case 79: break; - case 24: - case 26: - case 29: - { string.append( yytext() ); } - case 80: break; - case 23: - { yybegin(SQ_STRING); string.setLength(0); } - case 81: break; - case 22: - { yybegin(DQ_STRING); string.setLength(0); } - case 82: break; - case 27: - { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - case 83: break; - case 28: - { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; } - case 84: break; - case 30: - { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; } - case 85: break; - case 31: - { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; } - case 86: 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++) { - CSSHeadTokenizer scanner = null; - try { - scanner = new CSSHeadTokenizer( new java.io.FileReader(argv[i]) ); - } - catch (java.io.FileNotFoundException e) { - System.out.println("File not found : \""+argv[i]+"\""); - System.exit(1); - } - catch (java.io.IOException e) { - System.out.println("Error opening file \""+argv[i]+"\""); - System.exit(1); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Usage : java CSSHeadTokenizer <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); - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizerGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizerGenJava.cmd deleted file mode 100644 index 9ef06e965e..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizerGenJava.cmd +++ /dev/null @@ -1,23 +0,0 @@ -@echo off
-
-rem The following variables need to be set/specified for each "development machine"
-set PATH=%PATH%;d:jdks\j2sdk1.4.1_02\bin
-set WORKSPACE_LOCATION=D:\builds\Workspaces\PureHeadWorkspace
-set JFLEX_LIB_LOCATION=D:\DevTimeSupport\JFlex\lib
-
-rem The following variables differ from project to project, but should be otherwise constant
-set MAIN_NAME=CSSHeadTokenizer
-set PROJECT_SRC=\org.eclipse.wst.common.encoding.contentspecific\src\
-set PACKAGE_DIR=com\ibm\encoding\resource\contentspecific\css\
-
-rem Given the above "framework" and the command themselves, these variables should never need to be modified
-set JAVA_FILE=%MAIN_NAME%.java
-set JFLEX_RULES=%MAIN_NAME%.jflex
-set SKELETON_FILE=%MAIN_NAME%.skeleton
-
-IF EXIST %JAVA_FILE% del %JAVA_FILE%
-rem java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% -skel %SKELETON_FILE% 1>jflexout.txt 2>jflexerr.txt
-java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% 1>jflexout.txt 2>jflexerr.txt
-IF EXIST %JAVA_FILE% copy %JAVA_FILE% %WORKSPACE_LOCATION%%PROJECT_SRC%%PACKAGE_DIR%%JAVA_FILE%
-
-rem pause
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexerr.txt deleted file mode 100644 index e69de29bb2..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexerr.txt +++ /dev/null diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexout.txt deleted file mode 100644 index e0743ca042..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/jflexout.txt +++ /dev/null @@ -1,6 +0,0 @@ -Reading "CSSHeadTokenizer.jflex" -Constructing NFA : 458 states in NFA -Converting NFA to DFA : -........................................................................................ -102 states before minimization, 64 states in minimized DFA -Writing code to "CSSHeadTokenizer.java" diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex deleted file mode 100644 index 2bc923d218..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex +++ /dev/null @@ -1,285 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 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 - *******************************************************************************/ -/*nlsXXX*/ -package org.eclipse.wst.common.encoding.contentspecific.html; -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants; -import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken; -import org.eclipse.wst.common.encoding.contentspecific.IntStack; -import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants; - - - -%% - -%{ - - - 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; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start - * of the matched text - */ - yycolumn = 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); - } - - -%} - -%eof{ - hasMore=false; -%eof} - -%public -%class HTMLHeadTokenizer -%function primGetNextToken -%type String -%char -%unicode -%ignorecase -%debug -%switch - - -UTF16BE = \xFE\xFF -UTF16LE = \xFF\xFE -UTF83ByteBOM = \xEF\xBB\xBF - -SpaceChar = [\x20\x09] - - - -// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+ -S = [\x20\x09\x0D\x0A] - -BeginAttribeValue = {S}* \= {S}* - -LineTerminator = \r|\n - - -%state ST_XMLDecl -%state ST_META_TAG -%state QuotedAttributeValue -%state DQ_STRING -%state SQ_STRING -%state UnDelimitedString - -%% - - -<YYINITIAL> -{ - {UTF16BE} {hasMore = false; return EncodingParserConstants.UTF16BE;} - {UTF16LE} {hasMore = false; return EncodingParserConstants.UTF16LE;} - {UTF83ByteBOM} {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;} - - // force to be started on first line, but we do allow preceeding spaces - ^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}} - - "<META " {yybegin(ST_META_TAG); return HTMLHeadTokenizerConstants.MetaTagStart;} - - -} - -<ST_XMLDecl> -{ - //"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;} - "encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;} - // note this "forced end" once end of XML Declaration found - "\?>" {yybegin(YYINITIAL); return XMLHeadTokenizerConstants.XMLDeclEnd;} -} - -<ST_META_TAG> -{ - - "http-equiv" {S}* \= {S}* \"? "Content-Type" \"? {S}+ "content" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType;} - ">" { yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;} - "\/>" { yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;} -} - - -<QuotedAttributeValue> -{ - \" { yybegin(DQ_STRING); string.setLength(0); } - \' { yybegin(SQ_STRING); string.setLength(0); } - // in this state, anything other than a space character can start an undelimited string - {S}*. { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);} - -} - - -<DQ_STRING> -{ - - \" { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; } - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\?>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "<" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - - ">" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\/>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - . { string.append( yytext() ); } - - -} - -<SQ_STRING> -{ - - \' { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;} - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "%>" { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "<" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - ">" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\/>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - . { string.append( yytext() ); } - - -} - -<UnDelimitedString> -{ - - - // note this initial special case for HTTP contenttype values - ";"{S}* { string.append( yytext() ); } - {S} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; } - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\?>" { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "<" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - // these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote - \' { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;} - \" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;} - - ">" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\/>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - . { string.append( yytext() ); } - -} - -// The "match anything" rule should always be in effect except for when looking for end of string -// (That is, remember to update state list if/when new states added) -<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, ST_META_TAG> -{ -// this is the fallback (match "anything") rule (for this scanner, input is ignored, and position advanced, if not recognized) -.|\n {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}} -} - -// this rule always in effect -<<EOF>> {hasMore = false; return EncodingParserConstants.EOF;} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java deleted file mode 100644 index a1ec0f50ee..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java +++ /dev/null @@ -1,1206 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 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 - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:41 PM */ - -/*nlsXXX*/ -package org.eclipse.wst.common.encoding.contentspecific.html; -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants; -import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken; -import org.eclipse.wst.common.encoding.contentspecific.IntStack; -import org.eclipse.wst.common.encoding.contentspecific.xml.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; - - /** 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; - - /** - * 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; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start - * of the matched text - */ - yycolumn = 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 (java.io.IOException e) { - System.out.println("Error opening file \""+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); - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizerGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizerGenJava.cmd deleted file mode 100644 index 96f2325cf6..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizerGenJava.cmd +++ /dev/null @@ -1,23 +0,0 @@ -@echo off
-
-rem The following variables need to be set/specified for each "development machine"
-set PATH=%PATH%;d:jdks\j2sdk1.4.1_02\bin
-set WORKSPACE_LOCATION=D:\builds\Workspaces\PureHeadWorkspace
-set JFLEX_LIB_LOCATION=D:\DevTimeSupport\JFlex\lib
-
-rem The following variables differ from project to project, but should be otherwise constant
-set MAIN_NAME=HTMLHeadTokenizer
-set PROJECT_SRC=\org.eclipse.wst.common.encoding.contentspecific\src\
-set PACKAGE_DIR=com\ibm\encoding\resource\contentspecific\html\
-
-rem Given the above "framework" and the command themselves, these variables should never need to be modified
-set JAVA_FILE=%MAIN_NAME%.java
-set JFLEX_RULES=%MAIN_NAME%.jflex
-set SKELETON_FILE=%MAIN_NAME%.skeleton
-
-IF EXIST %JAVA_FILE% del %JAVA_FILE%
-rem java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% -skel %SKELETON_FILE% 1>jflexout.txt 2>jflexerr.txt
-java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% 1>jflexout.txt 2>jflexerr.txt
-IF EXIST %JAVA_FILE% copy %JAVA_FILE% %WORKSPACE_LOCATION%%PROJECT_SRC%%PACKAGE_DIR%%JAVA_FILE%
-
-rem pause
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexerr.txt deleted file mode 100644 index e69de29bb2..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexerr.txt +++ /dev/null diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexout.txt deleted file mode 100644 index 1469e9c1d2..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/jflexout.txt +++ /dev/null @@ -1,8 +0,0 @@ -Reading "HTMLHeadTokenizer.jflex" - -Warning : Macro "SpaceChar" has been declared but never used. -Constructing NFA : 660 states in NFA -Converting NFA to DFA : -......................................................................................................................... -135 states before minimization, 95 states in minimized DFA -Writing code to "HTMLHeadTokenizer.java" diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex deleted file mode 100644 index a5dd0f4163..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 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 - *******************************************************************************/ -/*nlsXXX*/ -package org.eclipse.wst.sse.core.xml.internal.parser; - - - -%% - -%table -%public -%final -%class XML10Names -%function isValidXML10Name -%type boolean -%unicode -%ignorecase -%buffer 2048 -%apiprivate - -S = (\x20 | \x09 | \x0D | \x0A) - -BaseChar = [\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8-\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u212A-\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3] - -Ideographic = [\u4E00-\u9FA5\u3007\u3021-\u3029] - -CombiningChar = [\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05A1\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1-\u05C2\u05C4\u064B-\u0652\u0670\u06D6-\u06DC\u06DD-\u06DF\u06E0-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094C\u094D\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09BC\u09BE\u09BF\u09C0-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3\u0A02\u0A3C\u0A3E\u0A3F\u0A40-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A70-\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B82-\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C82-\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A] - -Digit = [\u0030-\u0039\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29] - -Extender = [\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D-\u309E\u30FC-\u30FE] - -Letter = ({BaseChar} | {Ideographic}) - -NameChar = ({Letter} | {Digit} | . | - | _ | : | {CombiningChar} | {Extender}) - -Name = ({Letter} | _ | : ) ({NameChar})* - - - -%{ - - /** - * Creates a new scanner - */ - public XML10Names() { - this.zzReader = null; - } - - public boolean isValidXML10Name(String stringToCheck) { - boolean result = false; - yyreset(new java.io.StringReader(stringToCheck)); - try { - result = isValidXML10Name(); - } - catch (java.io.IOException e) { - // should be impossible with strings, but if occurs, just means - // "not" - result = false; - } - return result; - } - -%} - - - - -%% - -<YYINITIAL> -{ - - // don't match if contains trailing or embedded space - {Name} {S}+ {return false;} - {Name} {S}+ {Name} {return false;} - - {Name} {return true;} - - // match anything should come last - . {return false;} - -} - - -// this rule always in effect -<<EOF>> -{ - {return false;} -} - - diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java deleted file mode 100644 index 07bdcf2514..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java +++ /dev/null @@ -1,594 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 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 - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -/* The following code was generated by JFlex 1.4 on 7/17/04 3:43 AM */ - -/*nlsXXX*/ -package org.eclipse.wst.sse.core.xml.internal.parser; - - - - -/** - * This class is a scanner generated by - * <a href="http://www.jflex.de/">JFlex</a> 1.4 - * on 7/17/04 3:43 AM from the specification file - * <tt>XML10Names.jflex</tt> - */ -public final class XML10Names { - - /** This character denotes the end of file */ - private static final int YYEOF = -1; - - /** initial size of the lookahead buffer */ - private static final int ZZ_BUFFERSIZE = 2048; - - /** lexical states */ - private static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\1\1\2\2\0\1\1\22\0\1\1\14\0\1\0\2\0"+ - "\12\0\1\3\6\0\32\3\4\0\1\3\1\0\32\3\74\0\1\0"+ - "\10\0\27\3\1\0\37\3\1\0\72\3\2\0\13\3\2\0\10\3"+ - "\1\0\65\3\1\0\104\3\11\0\44\3\3\0\2\3\4\0\36\3"+ - "\70\0\131\3\22\0\7\3\16\0\2\0\56\0\106\0\32\0\2\0"+ - "\44\0\1\3\1\0\3\3\1\0\1\3\1\0\24\3\1\0\54\3"+ - "\1\0\7\3\3\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+ - "\1\0\22\3\15\0\14\3\1\0\102\3\1\0\14\3\1\0\44\3"+ - "\1\0\4\0\11\0\65\3\2\0\2\3\2\0\2\3\3\0\34\3"+ - "\2\0\10\3\2\0\2\3\67\0\46\3\2\0\1\3\7\0\46\3"+ - "\12\0\21\0\1\0\27\0\1\0\3\0\1\0\1\0\1\0\2\0"+ - "\1\0\1\0\13\0\33\3\5\0\3\3\56\0\32\3\5\0\1\0"+ - "\12\3\10\0\15\0\12\0\6\0\1\0\107\3\2\0\5\3\1\0"+ - "\17\3\1\0\4\3\1\0\1\3\17\0\2\3\2\0\1\0\4\0"+ - "\2\0\12\0\u0207\0\3\0\1\0\65\3\2\0\1\0\1\3\20\0"+ - "\3\0\4\0\3\0\12\3\2\0\2\0\12\0\21\0\3\0\1\0"+ - "\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0\1\3\3\0"+ - "\4\3\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\11\0"+ - "\1\0\4\0\2\3\1\0\3\3\2\0\2\0\12\0\2\3\20\0"+ - "\1\0\2\0\6\3\4\0\2\3\2\0\26\3\1\0\7\3\1\0"+ - "\2\3\1\0\2\3\1\0\2\3\2\0\1\0\1\0\5\0\4\0"+ - "\2\0\2\0\3\0\13\0\4\3\1\0\1\3\7\0\12\0\2\0"+ - "\3\3\14\0\3\0\1\0\7\3\1\0\1\3\1\0\3\3\1\0"+ - "\26\3\1\0\7\3\1\0\2\3\1\0\5\3\2\0\1\0\1\3"+ - "\10\0\1\0\3\0\1\0\3\0\22\0\1\3\5\0\12\0\21\0"+ - "\3\0\1\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0"+ - "\2\3\2\0\4\3\2\0\1\0\1\3\6\0\3\0\2\0\2\0"+ - "\3\0\10\0\2\0\4\0\2\3\1\0\3\3\4\0\12\0\22\0"+ - "\2\0\1\0\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1\0"+ - "\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0\10\3\1\0"+ - "\3\3\4\0\5\0\3\0\3\0\1\0\4\0\11\0\1\0\17\0"+ - "\11\0\21\0\3\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+ - "\12\3\1\0\5\3\4\0\7\0\1\0\3\0\1\0\4\0\7\0"+ - "\2\0\11\0\2\3\4\0\12\0\22\0\2\0\1\0\10\3\1\0"+ - "\3\3\1\0\27\3\1\0\12\3\1\0\5\3\4\0\7\0\1\0"+ - "\3\0\1\0\4\0\7\0\2\0\7\0\1\3\1\0\2\3\4\0"+ - "\12\0\22\0\2\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+ - "\20\3\4\0\6\0\2\0\3\0\1\0\4\0\11\0\1\0\10\0"+ - "\2\3\4\0\12\0\221\0\56\3\1\0\1\3\1\0\2\3\7\0"+ - "\5\0\6\3\1\0\10\0\1\0\12\0\47\0\2\3\1\0\1\3"+ - "\2\0\2\3\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3"+ - "\1\0\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\2\3"+ - "\1\0\1\3\1\0\2\3\6\0\1\0\2\0\1\3\2\0\5\3"+ - "\1\0\1\0\1\0\6\0\2\0\12\0\76\0\2\0\6\0\12\0"+ - "\13\0\1\0\1\0\1\0\1\0\1\0\4\0\2\0\10\3\1\0"+ - "\41\3\7\0\24\0\1\0\6\0\4\0\6\0\1\0\1\0\1\0"+ - "\25\0\3\0\7\0\1\0\1\0\346\0\46\3\12\0\47\3\11\0"+ - "\1\3\1\0\2\3\1\0\3\3\1\0\1\3\1\0\2\3\1\0"+ - "\5\3\51\0\1\3\1\0\1\3\1\0\1\3\13\0\1\3\1\0"+ - "\1\3\1\0\1\3\3\0\2\3\3\0\1\3\5\0\3\3\1\0"+ - "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\3\0\2\3\3\0"+ - "\2\3\1\0\1\3\50\0\1\3\11\0\1\3\2\0\1\3\2\0"+ - "\2\3\7\0\2\3\1\0\1\3\1\0\7\3\50\0\1\3\4\0"+ - "\1\3\10\0\1\3\u0c06\0\234\3\4\0\132\3\6\0\26\3\2\0"+ - "\6\3\2\0\46\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0"+ - "\1\3\1\0\1\3\1\0\37\3\2\0\65\3\1\0\7\3\1\0"+ - "\1\3\3\0\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0"+ - "\15\3\5\0\3\3\1\0\7\3\323\0\15\0\4\0\1\0\104\0"+ - "\1\3\3\0\2\3\2\0\1\3\121\0\3\3\u0e82\0\1\0\1\0"+ - "\1\3\31\0\11\3\6\0\1\0\5\0\13\0\124\3\4\0\2\0"+ - "\2\0\2\0\2\0\132\3\1\0\3\0\6\0\50\3\u1cd3\0\u51a6\3"+ - "\u0c5a\0\u2ba4\3\u285c\0"; - - /** - * Translates characters to character classes - */ - private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); - - /** - * Translates DFA states to action switch labels. - */ - private static final int [] ZZ_ACTION = zzUnpackAction(); - - private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\4\1"; - - private static int [] zzUnpackAction() { - int [] result = new int[7]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /** - * Translates a state to a row index in the transition table - */ - private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); - - private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\4\0\10\0\14\0\20\0\24\0\30"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[7]; - int offset = 0; - offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackRowMap(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int high = packed.charAt(i++) << 16; - result[j++] = high | packed.charAt(i++); - } - return j; - } - - /** - * The transition table of the DFA - */ - private static final int ZZ_TRANS [] = { - 1, 1, -1, 2, -1, -1, -1, -1, 2, 3, - 4, 2, 2, 3, 4, 5, -1, 4, 4, 6, - 5, 5, 4, 5, 6, 6, -1, 6, - }; - - /* 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" - }; - - /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code> - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\5\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[7]; - int offset = 0; - offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAttribute(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - /** 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; - - /* user code: */ - - /** - * Creates a new scanner - */ - public XML10Names() { - this.zzReader = null; - } - - public boolean isValidXML10Name(String stringToCheck) { - boolean result = false; - yyreset(new java.io.StringReader(stringToCheck)); - try { - result = isValidXML10Name(); - } - catch (java.io.IOException e) { - // should be impossible with strings, but if occurs, just means - // "not" - result = false; - } - return result; - } - - - - /** - * 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 XML10Names(java.io.Reader in) { - this.zzReader = 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 XML10Names(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 [] zzUnpackCMap(String packed) { - char [] map = new char[0x10000]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 1226) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * Refills the input buffer. - * - * @return <code>false</code>, iff there was new input. - * - * @exception java.io.IOException if any I/O-Error occurs - */ - private boolean zzRefill() throws java.io.IOException { - - /* first: make room (if you can) */ - if (zzStartRead > 0) { - System.arraycopy(zzBuffer, zzStartRead, - zzBuffer, 0, - zzEndRead-zzStartRead); - - /* translate stored positions */ - zzEndRead-= zzStartRead; - zzCurrentPos-= zzStartRead; - zzMarkedPos-= zzStartRead; - zzPushbackPos-= zzStartRead; - zzStartRead = 0; - } - - /* is the buffer big enough? */ - if (zzCurrentPos >= zzBuffer.length) { - /* if not: blow it up */ - char newBuffer[] = new char[zzCurrentPos*2]; - System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); - zzBuffer = newBuffer; - } - - /* finally: fill the buffer with new input */ - int numRead = zzReader.read(zzBuffer, zzEndRead, - zzBuffer.length-zzEndRead); - - if (numRead < 0) { - return true; - } - else { - zzEndRead+= numRead; - return false; - } - } - - - /** - * Closes the input stream. - */ - private 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 - */ - private 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. - */ - private final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - private final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - private final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * 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 - */ - private final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - private final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * 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 - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * 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() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * 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 - */ - private boolean isValidXML10Name() throws java.io.IOException { - int zzInput; - int zzAction; - - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - char [] zzBufferL = zzBuffer; - char [] zzCMapL = ZZ_CMAP; - - int [] zzTransL = ZZ_TRANS; - int [] zzRowMapL = ZZ_ROWMAP; - int [] zzAttrL = ZZ_ATTRIBUTE; - - while (true) { - zzMarkedPosL = zzMarkedPos; - - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - zzState = zzLexicalState; - - - zzForAction: { - while (true) { - - if (zzCurrentPosL < zzEndReadL) - zzInput = zzBufferL[zzCurrentPosL++]; - else if (zzAtEOF) { - zzInput = YYEOF; - break zzForAction; - } - else { - // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; - boolean eof = zzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) { - zzInput = YYEOF; - break zzForAction; - } - else { - zzInput = zzBufferL[zzCurrentPosL++]; - } - } - int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; - if (zzNext == -1) break zzForAction; - zzState = zzNext; - - int zzAttributes = zzAttrL[zzState]; - if ( (zzAttributes & 1) == 1 ) { - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ( (zzAttributes & 8) == 8 ) break zzForAction; - } - - } - } - - // store back cached position - zzMarkedPos = zzMarkedPosL; - - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 1: - { return false; - } - case 3: break; - case 2: - { return true; - } - case 4: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - { {return false;} } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd deleted file mode 100644 index 2477d14a70..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd +++ /dev/null @@ -1,25 +0,0 @@ -@echo on
-
-rem The following variables need to be set/specified for each "development machine"
-set PATH=%PATH%;D:\JDKs\j2sdk1.4.2_03\bin
-set WORKSPACE_LOCATION=D:\builds\Workspaces\RC2
-set JFLEX_LIB_LOCATION=D:\DevTimeSupport\JFlex-1.4\lib
-
-rem The following variables differ from project to project, but should be otherwise constant
-set MAIN_NAME=XML10Names
-
-set PROJECT_SRC=\org.eclipse.wst.sse.core.xml\src\
-set PACKAGE_DIR=com\ibm\sse\model\xml\internal\parser\
-
-
-rem Given the above "framework" and the command themselves, these variables should never need to be modified
-set JAVA_FILE=%MAIN_NAME%.java
-set JFLEX_RULES=%MAIN_NAME%.jflex
-set SKELETON_FILE=%MAIN_NAME%.skeleton
-
-IF EXIST %JAVA_FILE% del %JAVA_FILE%
-rem java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% -skel %SKELETON_FILE% 1>jflexout.txt 2>jflexerr.txt
-java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% 1>jflexout.txt 2>jflexerr.txt
-IF EXIST %JAVA_FILE% copy %JAVA_FILE% %WORKSPACE_LOCATION%%PROJECT_SRC%%PACKAGE_DIR%%JAVA_FILE%
-
-pause
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd deleted file mode 100644 index aafbf61253..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd +++ /dev/null @@ -1,25 +0,0 @@ -@echo on
-
-rem The following variables need to be set/specified for each "development machine"
-set PATH=%PATH%;D:\JDKs\j2sdk1.4.2_03\bin
-set WORKSPACE_LOCATION=D:\builds\Workspaces\RC2
-set JFLEX_LIB_LOCATION=D:\DevTimeSupport\JFlex-1.4\lib
-
-rem The following variables differ from project to project, but should be otherwise constant
-set MAIN_NAME=XML10Names
-
-set PROJECT_SRC=\org.eclipse.wst.sse.core.xml\src\
-set PACKAGE_DIR=com\ibm\sse\model\xml\internal\parser\
-
-
-rem Given the above "framework" and the command themselves, these variables should never need to be modified
-set JAVA_FILE=%MAIN_NAME%.java
-set JFLEX_RULES=%MAIN_NAME%.jflex
-set SKELETON_FILE=%MAIN_NAME%.skeleton
-
-IF EXIST %JAVA_FILE% del %JAVA_FILE%
-rem java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\Jflex.jar;. JFlex.Main %JFLEX_RULES% -skel %SKELETON_FILE% 1>jflexout.txt 2>jflexerr.txt
-java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\Jflex.jar;. JFlex.Main %JFLEX_RULES% 1>jflexout.txt 2>jflexerr.txt
-IF EXIST %JAVA_FILE% copy %JAVA_FILE% %WORKSPACE_LOCATION%%PROJECT_SRC%%PACKAGE_DIR%%JAVA_FILE%
-
-pause
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexerr.txt deleted file mode 100644 index e69de29bb2..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexerr.txt +++ /dev/null diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt deleted file mode 100644 index 6e960b55b0..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt +++ /dev/null @@ -1,6 +0,0 @@ -Reading "XML10Names.jflex" -Constructing NFA : 36 states in NFA -Converting NFA to DFA : -........... -13 states before minimization, 7 states in minimized DFA -Writing code to "XML10Names.java" diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jFlex deleted file mode 100644 index d6fe899700..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jFlex +++ /dev/null @@ -1,260 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 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 - *******************************************************************************/ -/*nlsXXX*/ -package org.eclipse.wst.common.encoding.contentspecific.xml; -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants; -import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken; -import org.eclipse.wst.common.encoding.contentspecific.IntStack; -import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants; - - - - -%% - -%{ - - - 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; - - - public XMLHeadTokenizer() { - super(); - } - - public void reset (Reader in) { - /* the input device */ - zzReader = in; - - /* the current state of the DFA */ - zzState = 0; - - /* the current lexical state */ - zzLexicalState = YYINITIAL; - - /* this buffer contains the current text to be matched and is - the source of the yytext() string */ - java.util.Arrays.fill(zzBuffer, (char)0); - - /* the textposition at the last accepting state */ - zzMarkedPos = 0; - - /* the textposition at the last state to be included in yytext */ - zzPushbackPos = 0; - - /* the current text position in the buffer */ - zzCurrentPos = 0; - - /* startRead marks the beginning of the yytext() string in the buffer */ - zzStartRead = 0; - - /** - * endRead marks the last character in the buffer, that has been read - * from input - */ - zzEndRead = 0; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start - * of the matched text - */ - yycolumn = 0; - - /** - * yy_atBOL == true <=> the scanner is currently at the beginning - * of a line - */ - zzAtBOL = true; - - /* yy_atEOF == true <=> the scanner has returned a value for EOF */ - zzAtEOF = false; - - /* denotes if the user-EOF-code has already been executed */ - zzEOFDone = false; - - - fStateStack.clear(); - - hasMore = true; - - } - - - 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); - } - -%} - -%eof{ - hasMore=false; -%eof} - -%public -%class XMLHeadTokenizer -%function primGetNextToken -%type String -%char -%unicode -%ignorecase -//%debug -%switch -%buffer 8192 - -UTF16BE = \xFE\xFF -UTF16LE = \xFF\xFE -UTF83ByteBOM = \xEF\xBB\xBF - -SpaceChar = [\x20\x09] - -// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+ -S = [\x20\x09\x0D\x0A] - -BeginAttribeValue = {S}* \= {S}* - -LineTerminator = \r|\n - - -%state ST_XMLDecl -%state QuotedAttributeValue -%state DQ_STRING -%state SQ_STRING -%state UnDelimitedString - -%% - - -<YYINITIAL> -{ - // force to start at beginning of line (^) and at beginning of file (yychar == 0) - ^{UTF16BE} {if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}} - ^{UTF16LE} {if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}} - ^{UTF83ByteBOM} {if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}} - - // force to be started on first line, but we do allow preceeding spaces - ^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}} - -} - -<ST_XMLDecl> -{ - "version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;} - "encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;} - // note the "forced end" (via 'hasMore=false') once the end of XML Declaration found - // This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is - // read with incorrect encoding (such as if platform encoding is in effect until true encoding detected). - "\?>" {yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd;} -} - - - -<QuotedAttributeValue> -{ - \" { yybegin(DQ_STRING); string.setLength(0); } - \' { yybegin(SQ_STRING); string.setLength(0); } - // in this state, anything other than a space character can start an undelimited string - {S}*. { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);} - -} - - -<DQ_STRING> -{ - - \" { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; } - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\?>" { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - '<' { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - . { string.append( yytext() ); } - - -} - -<SQ_STRING> -{ - - \' { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;} - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "%>" { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - '<' { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - . { string.append( yytext() ); } - - -} - -<UnDelimitedString> -{ - - {S} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; } - {LineTerminator} { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - "\?>" { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - '<' - { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;} - // these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote - \' { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;} - - \" { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;} - - . { string.append( yytext() ); } - -} - -// The "match anything" rule should always be in effect except for when looking for end of string -// (That is, remember to update state list if/when new states added) -<YYINITIAL, ST_XMLDecl, QuotedAttributeValue> -{ -// this is the fallback (match "anything") rule (for this scanner, input is ignored, and position advanced, if not recognized) -.|\n {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}} -} - -// this rule always in effect -<<EOF>> {hasMore = false; return EncodingParserConstants.EOF;} - -
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java deleted file mode 100644 index af0375cab6..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java +++ /dev/null @@ -1,905 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 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 - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -/* The following code was generated by JFlex 1.2.2 on 4/6/04 11:13 PM */ - -/*nlsXXX*/ -package org.eclipse.wst.common.encoding.contentspecific.xml; -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants; -import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken; -import org.eclipse.wst.common.encoding.contentspecific.IntStack; -import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants; - - - - - -/** - * This class is a scanner generated by - * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 - * on 4/6/04 11:13 PM from the specification file - * <tt>file:/D:/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.jflex</tt> - */ -public class XMLHeadTokenizer { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - final public static int YYINITIAL = 0; - final public static int UnDelimitedString = 10; - final public static int DQ_STRING = 6; - final public static int SQ_STRING = 8; - final public static int ST_XMLDecl = 2; - final public static int QuotedAttributeValue = 4; - - /** - * 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 - }; - - /** - * Translates characters to character classes - */ - final private static String yycmap_packed = - "\11\0\1\6\1\7\2\0\1\11\22\0\1\6\1\0\1\27\2\0"+ - "\1\31\1\0\1\30\24\0\1\12\1\10\1\26\1\13\3\0\1\21"+ - "\1\23\1\17\1\0\1\25\1\0\1\24\2\0\1\16\1\15\1\20"+ - "\1\22\10\0\1\14\12\0\1\21\1\23\1\17\1\0\1\25\1\0"+ - "\1\24\2\0\1\16\1\15\1\20\1\22\10\0\1\14\102\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; - - /** 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; - - /** - * 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; - - - public XMLHeadTokenizer() { - 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; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start - * of the matched text - */ - yycolumn = 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 XMLHeadTokenizer(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 XMLHeadTokenizer(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 < 128) { - 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) { - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 7; break yy_forNext; - } - - case 1: - switch (yy_input) { - case 1: yy_isFinal = true; yy_state = 8; break yy_forNext; - case 2: yy_isFinal = true; yy_state = 9; break yy_forNext; - case 3: yy_isFinal = true; yy_state = 10; break yy_forNext; - case 6: - case 7: - case 9: 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 = 7; break yy_forNext; - } - - case 2: - switch (yy_input) { - case 11: yy_isFinal = true; yy_state = 13; break yy_forNext; - case 15: yy_isFinal = true; yy_state = 14; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 7; break yy_forNext; - } - - case 3: - switch (yy_input) { - case 6: - case 9: yy_isFinal = true; yy_state = 16; break yy_forNext; - case 7: yy_isFinal = true; yy_state = 17; break yy_forNext; - case 23: yy_isFinal = true; yy_noLookAhead = true; yy_state = 18; break yy_forNext; - case 24: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext; - } - - case 4: - switch (yy_input) { - case 7: - case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 21; break yy_forNext; - case 11: yy_isFinal = true; yy_state = 22; break yy_forNext; - case 23: yy_isFinal = true; yy_noLookAhead = true; yy_state = 23; break yy_forNext; - case 24: yy_isFinal = 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: yy_isFinal = true; yy_noLookAhead = true; yy_state = 21; break yy_forNext; - case 24: yy_isFinal = true; yy_state = 25; break yy_forNext; - case 25: yy_isFinal = true; yy_state = 26; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext; - } - - case 6: - switch (yy_input) { - case 11: yy_isFinal = true; yy_state = 26; break yy_forNext; - case 6: - case 7: - case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext; - case 23: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext; - case 24: yy_isFinal = true; yy_state = 29; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 20; break yy_forNext; - } - - case 8: - switch (yy_input) { - case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 30; break yy_forNext; - default: break yy_forAction; - } - - case 9: - switch (yy_input) { - case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext; - default: break yy_forAction; - } - - case 10: - switch (yy_input) { - case 4: yy_state = 32; break yy_forNext; - default: break yy_forAction; - } - - case 11: - switch (yy_input) { - case 6: - case 7: - case 9: yy_state = 33; break yy_forNext; - case 10: yy_state = 34; break yy_forNext; - default: break yy_forAction; - } - - case 12: - switch (yy_input) { - case 11: yy_state = 35; break yy_forNext; - default: break yy_forAction; - } - - case 13: - switch (yy_input) { - case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 36; break yy_forNext; - default: break yy_forAction; - } - - case 14: - switch (yy_input) { - case 16: yy_state = 37; break yy_forNext; - default: break yy_forAction; - } - - case 16: - switch (yy_input) { - case 6: - case 9: yy_isFinal = true; yy_state = 16; break yy_forNext; - case 7: yy_state = 38; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext; - } - - case 17: - switch (yy_input) { - case 6: - case 9: yy_isFinal = true; yy_state = 16; break yy_forNext; - case 7: yy_state = 38; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext; - } - - case 22: - switch (yy_input) { - case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 39; break yy_forNext; - default: break yy_forAction; - } - - case 24: - switch (yy_input) { - case 10: yy_state = 40; break yy_forNext; - default: break yy_forAction; - } - - case 25: - switch (yy_input) { - case 10: yy_state = 40; break yy_forNext; - default: break yy_forAction; - } - - case 26: - switch (yy_input) { - case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 41; break yy_forNext; - default: break yy_forAction; - } - - case 29: - switch (yy_input) { - case 10: yy_state = 40; break yy_forNext; - default: break yy_forAction; - } - - case 32: - switch (yy_input) { - case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 42; break yy_forNext; - default: break yy_forAction; - } - - case 33: - switch (yy_input) { - case 6: - case 7: - case 9: yy_state = 33; break yy_forNext; - case 10: yy_state = 34; break yy_forNext; - default: break yy_forAction; - } - - case 34: - switch (yy_input) { - case 11: yy_state = 35; break yy_forNext; - default: break yy_forAction; - } - - case 35: - switch (yy_input) { - case 12: yy_state = 43; break yy_forNext; - default: break yy_forAction; - } - - case 37: - switch (yy_input) { - case 17: yy_state = 44; break yy_forNext; - default: break yy_forAction; - } - - case 38: - switch (yy_input) { - case 6: - case 9: yy_isFinal = true; yy_state = 16; break yy_forNext; - case 7: yy_state = 38; break yy_forNext; - default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 15; break yy_forNext; - } - - case 40: - switch (yy_input) { - case 24: yy_isFinal = true; yy_noLookAhead = true; yy_state = 21; break yy_forNext; - default: break yy_forAction; - } - - case 43: - switch (yy_input) { - case 13: yy_state = 45; break yy_forNext; - default: break yy_forAction; - } - - case 44: - switch (yy_input) { - case 18: yy_state = 46; break yy_forNext; - default: break yy_forAction; - } - - case 45: - switch (yy_input) { - case 14: yy_state = 47; break yy_forNext; - default: break yy_forAction; - } - - case 46: - switch (yy_input) { - case 19: yy_state = 48; break yy_forNext; - default: break yy_forAction; - } - - case 47: - switch (yy_input) { - case 6: - case 7: - case 9: yy_isFinal = true; yy_state = 49; break yy_forNext; - default: break yy_forAction; - } - - case 48: - switch (yy_input) { - case 20: yy_state = 50; break yy_forNext; - default: break yy_forAction; - } - - case 49: - switch (yy_input) { - case 6: - case 7: - case 9: yy_isFinal = true; yy_state = 49; break yy_forNext; - default: break yy_forAction; - } - - case 50: - switch (yy_input) { - case 16: yy_state = 51; break yy_forNext; - default: break yy_forAction; - } - - case 51: - switch (yy_input) { - case 21: yy_state = 52; break yy_forNext; - default: break yy_forAction; - } - - case 52: - switch (yy_input) { - case 6: - case 7: - case 9: yy_state = 52; break yy_forNext; - case 8: yy_isFinal = true; yy_state = 53; break yy_forNext; - default: break yy_forAction; - } - - case 53: - switch (yy_input) { - case 6: - case 7: - case 9: yy_isFinal = true; yy_state = 53; 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 25: - { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; } - case 55: break; - case 21: - { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - case 56: break; - case 15: - case 16: - { yypushback(1); yybegin(UnDelimitedString); string.setLength(0); } - case 57: break; - case 28: - case 29: - { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; } - case 58: break; - case 39: - { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - case 59: break; - case 41: - { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; } - case 60: break; - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 17: - { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} } - case 61: break; - case 30: - { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;} } - case 62: break; - case 31: - { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;} } - case 63: break; - case 42: - { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;} } - case 64: break; - case 49: - { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} } - case 65: break; - case 36: - { yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd; } - case 66: break; - case 53: - { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; } - case 67: break; - case 23: - { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; } - case 68: break; - case 20: - case 22: - case 24: - case 26: - { string.append( yytext() ); } - case 69: break; - case 19: - { yybegin(SQ_STRING); string.setLength(0); } - case 70: break; - case 18: - { yybegin(DQ_STRING); string.setLength(0); } - case 71: break; - case 27: - { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; } - case 72: 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++) { - XMLHeadTokenizer scanner = null; - try { - scanner = new XMLHeadTokenizer( new java.io.FileReader(argv[i]) ); - } - catch (java.io.FileNotFoundException e) { - System.out.println("File not found : \""+argv[i]+"\""); - System.exit(1); - } - catch (java.io.IOException e) { - System.out.println("Error opening file \""+argv[i]+"\""); - System.exit(1); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Usage : java XMLHeadTokenizer <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); - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizerGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizerGenJava.cmd deleted file mode 100644 index 7ec1c7bac4..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizerGenJava.cmd +++ /dev/null @@ -1,28 +0,0 @@ -@echo on
-
-rem The following variables need to be set/specified for each "development machine"
-set PATH=%PATH%;D:\JDKs\j2sdk1.4.2_03\bin
-set WORKSPACE_LOCATION=D:\builds\Workspaces\WSWBM8
-set JFLEX_LIB_LOCATION=D:\DevTimeSupport\JFlex\lib
-
-rem The following variables differ from project to project, but should be otherwise constant
-set MAIN_NAME=XMLHeadTokenizer
-
-rem set PROJECT_SRC=\org.eclipse.wst.sse.core.xml\src\
-rem set PACKAGE_DIR=com\ibm\sse\model\xml\encoding\
-
-set PROJECT_SRC=\org.eclipse.wst.common.encoding.contentspecific\src\
-set PACKAGE_DIR=com\ibm\encoding\resource\contentspecific\xml\
-
-
-rem Given the above "framework" and the command themselves, these variables should never need to be modified
-set JAVA_FILE=%MAIN_NAME%.java
-set JFLEX_RULES=%MAIN_NAME%.jflex
-set SKELETON_FILE=%MAIN_NAME%.skeleton
-
-IF EXIST %JAVA_FILE% del %JAVA_FILE%
-rem java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% -skel %SKELETON_FILE% 1>jflexout.txt 2>jflexerr.txt
-java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% 1>jflexout.txt 2>jflexerr.txt
-IF EXIST %JAVA_FILE% copy %JAVA_FILE% %WORKSPACE_LOCATION%%PROJECT_SRC%%PACKAGE_DIR%%JAVA_FILE%
-
-pause
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexerr.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexerr.txt deleted file mode 100644 index e69de29bb2..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexerr.txt +++ /dev/null diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexout.txt deleted file mode 100644 index 316c32ee0f..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/jflexout.txt +++ /dev/null @@ -1,8 +0,0 @@ -Reading "XMLHeadTokenizer.jflex" - -Warning : Macro "SpaceChar" has been declared but never used. -Constructing NFA : 358 states in NFA -Converting NFA to DFA : -................................................................... -79 states before minimization, 54 states in minimized DFA -Writing code to "XMLHeadTokenizer.java" diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/oldXMLHeadTokenizer.skeleton b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/oldXMLHeadTokenizer.skeleton deleted file mode 100644 index 98096024bc..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/oldXMLHeadTokenizer.skeleton +++ /dev/null @@ -1,263 +0,0 @@ -
- /** this character denotes the end of file */
- final public static int YYEOF = -1;
-
- /** lexical states */
---- lexical states, charmap
-
- /* 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", //$NON-NLS-1$
- "Internal error: unknown state", //$NON-NLS-1$
- "Error: could not match input", //$NON-NLS-1$
- "Error: pushback value was too large" //$NON-NLS-1$
- };
-
---- isFinal list
- /** 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;
-
- /** 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;
-
-
- /** yy_atEOF == true <=> the scanner has returned a value for EOF */
- private boolean yy_atEOF;
-
- // state stack for handling embedded regions
- private IntStack fStateStack = new IntStack();
-
-
---- 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
-
-
- /**
- * 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 - from the SED JFlex skeleton
- *
- * @param errorCode the code of the errormessage to display
- */
- private void yy_ScanError(int errorCode) {
- try {
- //Logger.log(Logger.ERROR, YY_ERROR_MSG[errorCode]);
- System.out.println("ScanError: " + errorCode + ": " + YY_ERROR_MSG[errorCode]);
- }
- catch (ArrayIndexOutOfBoundsException e) {
- //Logger.log(Logger.ERROR, YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
- System.out.println("ScanError: " + errorCode + ": " + YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
- }
- // DO NOT EXIT the VM on an 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;
- }
-
-
---- yy_doEof
- /**
- * 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
- */
---- yylex declaration
- int yy_input;
- int yy_action;
-
---- local declarations
-
- while (true) {
-
---- start admin (line, char, col count)
- yy_action = -1;
-
- yy_currentPos = yy_startRead = yy_markedPos;
-
---- start admin (lexstate etc)
-
- yy_forAction: {
- while (true) {
-
- yy_input = yy_advance();
-
- if ( yy_input == YYEOF ) break yy_forAction;
-
---- line, col, char count, next transition, isFinal action
- yy_action = yy_state;
- yy_markedPos = yy_currentPos;
---- line count update
- }
-
- }
- }
-
---- char count update
-
- switch (yy_action) {
-
---- actions
- default:
- if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
- yy_atEOF = true;
---- eofvalue
- }
- else {
---- no match
- }
- }
- }
- }
-
---- main
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java deleted file mode 100644 index b30ce6945e..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java +++ /dev/null @@ -1,1948 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 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 - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -/* The following code was generated by JFlex 1.2.2 on 04/10/01 22:53 */ - -/*nlsXXX*/ -package org.eclipse.wst.sse.core.css.internal.parser; - -import java.io.CharArrayReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.sse.core.css.internal.parser.regions.CSSTextRegionFactory; -import org.eclipse.wst.sse.core.css.parser.CSSRegionContexts; -import org.eclipse.wst.sse.core.css.parser.CSSTextToken; -import org.eclipse.wst.sse.core.text.ITextRegion; - - -/** - * This class is a scanner generated by - * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 - */ -public class CSSTokenizer implements CSSRegionContexts { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - final public static int ST_SELECTOR_ATTRIBUTE_NAME = 11; - final public static int ST_IMPORT_DELIMITER = 5; - final public static int ST_DECLARATION_PRE_VALUE = 17; - final public static int ST_SELECTOR = 0; - final public static int ST_CHARSET_DELIMITER = 2; - final public static int ST_DECLARATION_VALUE = 18; - final public static int ST_PAGE_PSEUDO_PAGE = 8; - final public static int ST_IMPORT_URI = 3; - final public static int ST_SELECTOR_ATTRIBUTE_END = 14; - final public static int ST_SELECTOR_ATTRIBUTE_OPERATOR = 12; - final public static int ST_DECLARATION = 15; - final public static int ST_PAGE_DELIMITER = 9; - final public static int ST_SELECTOR_ATTRIBUTE_VALUE = 13; - final public static int ST_MEDIA_MEDIUM = 6; - final public static int ST_CHARSET_NAME = 1; - final public static int ST_IMPORT_MEDIUM = 4; - final public static int ST_DECLARATION_SEPARATOR = 16; - final public static int ST_FONT_FACE_DELIMITER = 9; - final public static int ST_MEDIA_DELIMITER = 7; - final public static int ST_SELECTOR_MODIFIER = 10; - final public static int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - final private static String yycmap_packed = - "\11\0\1\11\1\17\1\0\1\4\1\20\22\0\1\6\1\31\1\10"+ - "\1\22\1\16\1\72\1\16\1\5\1\26\1\12\1\35\1\14\1\55"+ - "\1\13\1\15\1\34\12\1\1\62\1\50\1\30\1\67\1\32\1\21"+ - "\1\36\1\43\1\27\1\40\1\57\1\46\1\64\1\61\1\41\1\51"+ - "\2\2\1\25\1\52\1\65\1\54\1\53\1\2\1\24\1\44\1\47"+ - "\1\23\5\2\1\66\1\3\1\71\1\16\1\2\1\16\1\42\1\7"+ - "\1\37\1\56\1\45\1\63\1\61\1\41\1\51\2\2\1\25\1\52"+ - "\1\65\1\54\1\53\1\2\1\24\1\44\1\47\1\23\5\2\1\60"+ - "\1\70\1\33\1\70\1\0\uff80\2"; - - /** - * Translates characters to character classes - */ - final private static char [] yycmap = yy_unpack_cmap(yycmap_packed); - - /** - * Translates a state to a row index in the transition table - */ - final private static int yy_rowMap [] = { - 0, 59, 118, 177, 236, 295, 354, 413, 472, 531, - 590, 649, 708, 767, 826, 885, 944, 1003, 1062, 1121, - 1180, 1239, 1298, 1357, 1416, 1475, 1534, 1121, 1593, 1121, - 1652, 1711, 1121, 1770, 1829, 1888, 1121, 1947, 2006, 2065, - 2124, 2183, 2242, 1121, 2301, 2360, 2419, 1121, 1121, 2478, - 2537, 2596, 1121, 2655, 2714, 1121, 1121, 2773, 2832, 2891, - 1121, 2950, 1121, 3009, 3068, 3127, 3186, 3245, 3304, 3363, - 3422, 1121, 1121, 3481, 3540, 3599, 3658, 3717, 1121, 3776, - 3835, 3894, 3953, 4012, 4071, 1593, 1121, 4130, 1239, 4189, - 4248, 1416, 4307, 1475, 4366, 4425, 4484, 4543, 4602, 4661, - 4720, 4779, 4838, 4897, 1770, 4956, 1121, 1829, 5015, 5074, - 1947, 5133, 1121, 2006, 5192, 5251, 2183, 5310, 5369, 2360, - 5428, 5487, 2537, 5546, 5605, 1121, 2714, 2832, 5664, 5723, - 3068, 5782, 3127, 5841, 1121, 3186, 5900, 5959, 3363, 6018, - 6077, 6136, 6195, 3894, 1121, 3599, 1121, 6254, 3658, 6313, - 1121, 3717, 6372, 6431, 6490, 6549, 3953, 6608, 6667, 6726, - 4071, 6785, 1121, 4130, 6844, 1121, 6903, 6962, 7021, 7080, - 7139, 7198, 7257, 7316, 7375, 7434, 7493, 7552, 1770, 7611, - 7670, 1829, 7729, 7788, 1947, 7847, 7906, 2006, 7965, 8024, - 8083, 8142, 8201, 8260, 8319, 8378, 3127, 8437, 8496, 3186, - 8555, 8614, 8673, 8732, 8791, 3658, 8850, 8909, 3717, 8968, - 9027, 9086, 9145, 9204, 9263, 9322, 9381, 1121, 1121, 9440, - 9499, 9558, 9617, 9676, 9735, 9794, 9853, 9912, 9971, 10030, - 10089, 10148, 10207, 10266, 10325, 10384, 10443, 10502, 10561, 10620, - 10679, 10738, 10797, 10856, 10915, 10974, 11033, 11092, 11151, 11210, - 11269, 11328, 11387, 11446, 11505, 1121, 11564, 11623, 1121, 11682, - 11741, 11800, 11859, 11918, 11977, 12036, 12095, 12154, 12213, 1121, - 12272, 12331, 12390, 12449, 12508, 12567, 12626, 12685, 12744, 12803, - 12862, 12921, 12980, 13039, 13098, 13157, 13216, 11092, 13275, 13334, - 1121, 13393, 13452, 13511, 13570, 13629, 13688, 1121, 13747, 13806, - 13865, 13924, 13983, 14042, 14101, 14160, 14219, 12036, 14278, 14337, - 14396, 14455, 14514, 14573, 14632, 14691, 14750, 14809, 14868, 14927, - 14986, 15045, 15104, 15163, 15222, 15281, 15340, 13157, 15399, 15458, - 15517, 15576, 15635, 15694, 15753, 1121, 15812, 15871, 15930, 15989, - 16048, 16107, 16166, 16225, 16284, 16343, 16402, 16461, 16520, 16579, - 16638, 16697, 16756, 16815, 16874, 16933, 16992, 17051, 17110, 17169, - 17228, 17287, 17346, 17405, 17464, 17523, 17582, 17641, 17700, 17759, - 17818, 17877, 17936, 17995, 18054, 1121, 18113, 18172, 18231, 18290, - 18349, 18408, 18467, 18526, 18585, 12154, 18644, 12213, 18703, 18762, - 18821, 18880, 18939, 18998, 19057, 19116, 19175, 19234, 13275, 19293, - 13334, 19352, 19411, 19470, 19529, 19588, 19647, 19706, 19765, 19824, - 19883, 19942, 1121, 20001, 20060, 20119, 20178, 1121, 20237, 20296, - 20355, 1121, 20414, 20473, 20532, 20591, 20650, 20709, 20768, 20827, - 20886, 20945 - }; - - /** - * The packed transition table of the DFA - */ - final private static String yy_packed = - "\2\24\1\25\1\26\1\27\1\24\1\27\1\25\1\24"+ - "\1\27\1\24\1\30\1\24\1\31\1\24\2\27\1\24"+ - "\1\32\3\25\1\24\1\25\1\33\2\24\1\34\1\35"+ - "\1\36\1\37\11\25\1\24\4\25\1\24\2\25\1\24"+ - "\1\25\1\40\3\25\1\41\10\24\1\27\1\42\1\27"+ - "\1\24\1\43\1\27\1\24\1\44\3\24\2\27\7\24"+ - "\1\33\2\24\1\34\1\35\1\24\1\37\40\24\1\27"+ - "\1\24\1\27\2\24\1\27\1\24\1\44\3\24\2\27"+ - "\7\24\1\33\2\24\1\34\1\35\1\24\1\37\11\24"+ - "\1\45\26\24\1\27\1\46\1\27\1\24\1\47\1\27"+ - "\1\24\1\44\3\24\2\27\2\24\1\50\4\24\1\33"+ - "\2\24\1\34\1\35\1\24\1\37\11\24\1\45\24\24"+ - "\1\51\1\52\1\27\1\24\1\27\1\51\1\24\1\27"+ - "\1\24\1\53\3\24\2\27\2\24\3\51\1\24\1\51"+ - "\1\33\2\24\1\34\1\35\1\24\1\37\11\51\1\45"+ - "\4\51\1\24\2\51\1\24\1\51\1\24\3\51\11\24"+ - "\1\27\1\24\1\27\2\24\1\27\1\24\1\44\3\24"+ - "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37"+ - "\11\24\1\45\4\24\1\54\17\24\1\55\1\56\1\27"+ - "\1\24\1\27\1\55\1\24\1\27\1\24\1\57\3\24"+ - "\2\27\2\24\3\55\1\24\1\55\1\33\2\24\1\34"+ - "\1\35\1\24\1\37\11\55\1\24\4\55\1\24\2\55"+ - "\1\24\1\55\1\24\3\55\11\24\1\27\1\24\1\27"+ - "\2\24\1\27\1\24\1\44\3\24\2\27\7\24\1\33"+ - "\2\24\1\34\1\35\1\24\1\37\16\24\1\60\2\24"+ - "\1\61\14\24\1\62\1\63\1\27\1\24\1\27\1\62"+ - "\1\24\1\27\1\24\1\64\3\24\2\27\2\24\3\62"+ - "\1\24\1\62\1\33\2\24\1\34\1\35\1\24\1\37"+ - "\11\62\1\24\4\62\1\24\2\62\1\65\1\62\1\66"+ - "\3\62\11\24\1\27\1\24\1\27\2\24\1\27\1\24"+ - "\1\44\3\24\2\27\7\24\1\33\2\24\1\34\1\35"+ - "\1\24\1\37\21\24\1\65\16\24\1\67\1\24\1\67"+ - "\2\24\1\67\1\24\1\44\1\70\1\31\1\24\2\67"+ - "\1\24\1\32\5\24\1\33\1\24\1\70\1\34\1\35"+ - "\1\36\1\37\16\24\1\71\2\24\1\65\1\24\1\40"+ - "\3\24\1\41\6\24\1\72\1\73\1\27\1\24\1\27"+ - "\1\72\1\24\1\27\1\24\1\74\3\24\2\27\2\24"+ - "\3\72\1\24\1\72\1\33\2\24\1\34\1\35\1\24"+ - "\1\37\11\72\1\24\4\72\1\24\2\72\1\24\1\72"+ - "\1\24\3\72\11\24\1\27\1\24\1\27\2\24\1\27"+ - "\1\24\1\44\3\24\2\27\7\24\1\33\2\24\1\34"+ - "\1\35\1\24\1\37\30\24\1\75\1\76\1\77\3\24"+ - "\1\100\1\101\1\27\1\102\1\27\1\100\1\103\1\27"+ - "\1\24\1\104\3\24\2\27\2\24\3\100\1\24\1\100"+ - "\1\33\2\24\1\34\1\35\1\24\1\37\11\100\1\24"+ - "\4\100\1\24\2\100\1\24\1\100\1\24\3\100\11\24"+ - "\1\27\1\24\1\27\2\24\1\27\1\24\1\44\3\24"+ - "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37"+ - "\32\24\1\77\3\24\1\105\1\106\1\27\1\24\1\27"+ - "\1\105\1\24\1\27\1\24\1\107\3\24\2\27\2\24"+ - "\3\105\1\24\1\105\1\33\2\24\1\34\1\35\1\24"+ - "\1\37\11\105\1\110\4\105\1\24\2\105\1\24\1\105"+ - "\1\24\3\105\11\24\1\27\1\24\1\27\2\24\1\27"+ - "\1\24\1\44\3\24\2\27\7\24\1\33\2\24\1\34"+ - "\1\35\1\24\1\37\11\24\1\110\11\24\1\111\11\24"+ - "\1\112\1\113\1\114\1\27\1\115\1\27\1\113\1\116"+ - "\1\27\1\117\1\120\1\121\1\122\1\24\2\27\1\24"+ - "\1\123\1\124\2\113\1\24\1\113\1\33\1\125\1\24"+ - "\1\34\1\126\1\24\1\37\11\113\1\110\4\113\1\127"+ - "\2\113\1\24\1\113\1\24\3\113\6\24\1\112\1\113"+ - "\1\114\1\130\1\115\1\130\1\113\1\116\1\130\1\117"+ - "\1\120\1\121\1\122\1\24\2\130\1\24\1\123\1\124"+ - "\2\113\1\24\1\113\1\33\1\125\1\24\1\34\1\126"+ - "\1\24\1\37\11\113\1\110\4\113\1\127\2\113\1\24"+ - "\1\113\1\24\3\113\5\24\74\0\2\25\1\131\3\0"+ - "\1\25\3\0\1\25\7\0\3\25\1\0\1\25\7\0"+ - "\11\25\1\0\4\25\1\0\2\25\1\0\1\25\1\0"+ - "\3\25\6\0\1\132\2\25\1\0\2\25\1\132\1\25"+ - "\1\0\5\25\2\0\16\25\1\132\2\25\1\132\2\25"+ - "\1\132\10\25\1\132\4\25\1\132\7\25\4\0\1\27"+ - "\1\0\1\27\2\0\1\27\5\0\2\27\53\0\2\25"+ - "\1\131\3\0\1\25\3\0\1\133\7\0\3\25\1\0"+ - "\1\25\7\0\11\25\1\0\4\25\1\0\2\25\1\0"+ - "\1\25\1\0\3\25\6\0\2\134\1\135\3\0\1\134"+ - "\3\0\1\134\7\0\3\134\1\0\1\134\7\0\11\134"+ - "\1\0\4\134\1\0\2\134\1\0\1\134\1\0\3\134"+ - "\6\0\2\136\1\137\3\0\1\136\3\0\1\136\7\0"+ - "\3\136\1\0\1\136\7\0\11\136\1\0\4\136\1\0"+ - "\2\136\1\0\1\136\1\0\3\136\36\0\1\140\76\0"+ - "\1\141\74\0\2\142\10\0\1\143\1\144\1\145\7\0"+ - "\2\146\10\0\1\147\1\150\3\0\1\147\3\0\1\147"+ - "\7\0\3\147\1\0\1\147\7\0\11\147\1\0\4\147"+ - "\1\0\2\147\1\0\1\147\1\0\3\147\6\0\2\151"+ - "\1\152\1\0\1\153\11\151\2\0\52\151\1\0\2\154"+ - "\1\155\1\0\3\154\1\153\6\154\2\0\52\154\13\0"+ - "\1\156\60\0\2\157\1\160\1\0\1\161\11\157\2\0"+ - "\52\157\1\0\2\162\1\163\1\0\3\162\1\161\6\162"+ - "\2\0\52\162\24\0\1\164\47\0\2\51\1\165\3\0"+ - "\1\51\3\0\1\51\7\0\3\51\1\0\1\51\7\0"+ - "\11\51\1\0\4\51\1\0\2\51\1\0\1\51\1\0"+ - "\3\51\6\0\1\166\2\51\1\0\2\51\1\166\1\51"+ - "\1\0\5\51\2\0\16\51\1\166\2\51\1\166\2\51"+ - "\1\166\10\51\1\166\4\51\1\166\7\51\1\0\2\51"+ - "\1\165\3\0\1\51\3\0\1\167\7\0\3\51\1\0"+ - "\1\51\7\0\11\51\1\0\4\51\1\0\2\51\1\0"+ - "\1\51\1\0\3\51\6\0\2\55\1\170\3\0\1\55"+ - "\3\0\1\55\7\0\3\55\1\0\1\55\7\0\11\55"+ - "\1\0\4\55\1\0\2\55\1\0\1\55\1\0\3\55"+ - "\6\0\1\171\2\55\1\0\2\55\1\171\1\55\1\0"+ - "\5\55\2\0\16\55\1\171\2\55\1\171\2\55\1\171"+ - "\10\55\1\171\4\55\1\171\7\55\1\0\2\55\1\170"+ - "\3\0\1\55\3\0\1\172\7\0\3\55\1\0\1\55"+ - "\7\0\11\55\1\0\4\55\1\0\2\55\1\0\1\55"+ - "\1\0\3\55\6\0\2\62\1\173\3\0\1\62\3\0"+ - "\1\62\7\0\3\62\1\0\1\62\7\0\11\62\1\0"+ - "\4\62\1\0\2\62\1\0\1\62\1\0\3\62\6\0"+ - "\1\174\2\62\1\0\2\62\1\174\1\62\1\0\5\62"+ - "\2\0\16\62\1\174\2\62\1\174\2\62\1\174\10\62"+ - "\1\174\4\62\1\174\7\62\1\0\2\62\1\173\3\0"+ - "\1\62\3\0\1\175\7\0\3\62\1\0\1\62\7\0"+ - "\11\62\1\0\4\62\1\0\2\62\1\0\1\62\1\0"+ - "\3\62\7\0\1\62\1\173\3\0\1\62\3\0\1\62"+ - "\7\0\3\62\1\0\1\62\7\0\11\62\1\0\4\62"+ - "\1\0\2\62\1\0\1\62\1\0\3\62\5\0\4\176"+ - "\1\177\1\176\1\177\2\176\1\177\2\176\1\0\2\176"+ - "\2\177\11\176\1\0\25\176\1\0\12\176\1\0\2\72"+ - "\1\200\3\0\1\72\3\0\1\72\7\0\3\72\1\0"+ - "\1\72\7\0\11\72\1\0\4\72\1\0\2\72\1\0"+ - "\1\72\1\0\3\72\6\0\1\201\2\72\1\0\2\72"+ - "\1\201\1\72\1\0\5\72\2\0\16\72\1\201\2\72"+ - "\1\201\2\72\1\201\10\72\1\201\4\72\1\201\7\72"+ - "\1\0\2\72\1\200\3\0\1\72\3\0\1\202\7\0"+ - "\3\72\1\0\1\72\7\0\11\72\1\0\4\72\1\0"+ - "\2\72\1\0\1\72\1\0\3\72\74\0\1\75\4\0"+ - "\2\100\1\203\3\0\1\100\3\0\1\100\7\0\3\100"+ - "\1\0\1\100\7\0\11\100\1\0\4\100\1\0\2\100"+ - "\1\0\1\100\1\0\3\100\6\0\1\204\2\100\1\0"+ - "\2\100\1\204\1\100\1\0\5\100\2\0\16\100\1\204"+ - "\2\100\1\204\2\100\1\204\10\100\1\204\4\100\1\204"+ - "\7\100\1\0\2\205\1\206\1\0\1\207\11\205\2\0"+ - "\52\205\1\0\2\210\1\211\1\0\3\210\1\207\6\210"+ - "\2\0\52\210\1\0\2\100\1\203\3\0\1\100\3\0"+ - "\1\212\7\0\3\100\1\0\1\100\7\0\11\100\1\0"+ - "\4\100\1\0\2\100\1\0\1\100\1\0\3\100\6\0"+ - "\2\105\1\213\3\0\1\105\3\0\1\105\7\0\3\105"+ - "\1\0\1\105\7\0\11\105\1\0\4\105\1\0\2\105"+ - "\1\0\1\105\1\0\3\105\6\0\1\214\2\105\1\0"+ - "\2\105\1\214\1\105\1\0\5\105\2\0\16\105\1\214"+ - "\2\105\1\214\2\105\1\214\10\105\1\214\4\105\1\214"+ - "\7\105\1\0\2\105\1\213\3\0\1\105\3\0\1\215"+ - "\7\0\3\105\1\0\1\105\7\0\11\105\1\0\4\105"+ - "\1\0\2\105\1\0\1\105\1\0\3\105\6\0\1\112"+ - "\1\216\1\217\3\0\1\216\3\0\1\216\1\0\1\220"+ - "\5\0\3\216\1\0\1\216\7\0\11\216\1\0\4\216"+ - "\1\0\2\216\1\0\1\216\1\0\3\216\4\0\1\221"+ - "\1\0\2\113\1\222\3\0\1\113\3\0\1\113\7\0"+ - "\3\113\1\223\1\113\7\0\11\113\1\0\4\113\1\0"+ - "\2\113\1\0\1\113\1\0\3\113\6\0\1\224\2\113"+ - "\1\0\2\113\1\224\1\113\1\0\5\113\2\0\16\113"+ - "\1\224\2\113\1\224\2\113\1\224\10\113\1\224\4\113"+ - "\1\224\7\113\1\0\2\225\1\226\1\0\1\227\11\225"+ - "\2\0\52\225\1\0\2\230\1\231\1\0\3\230\1\227"+ - "\6\230\2\0\52\230\1\0\1\232\1\113\1\222\3\0"+ - "\1\113\3\0\1\233\1\0\1\220\5\0\3\113\1\223"+ - "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+ - "\1\113\1\0\3\113\6\0\1\112\13\0\1\220\56\0"+ - "\1\234\72\0\2\235\1\236\3\0\1\235\3\0\1\235"+ - "\7\0\3\235\1\0\1\235\7\0\11\235\1\0\4\235"+ - "\1\0\2\235\1\0\1\235\1\0\3\235\6\0\2\113"+ - "\1\222\3\0\1\113\3\0\1\113\1\237\6\0\1\113"+ - "\1\240\1\113\1\223\1\113\7\0\11\113\1\0\4\113"+ - "\1\0\2\113\1\0\1\113\1\0\3\113\11\0\1\241"+ - "\1\0\1\241\2\0\1\241\5\0\2\241\30\0\1\242"+ - "\21\0\4\243\1\244\1\243\1\244\2\243\1\244\5\243"+ - "\2\244\12\243\1\0\14\243\1\0\22\243\1\0\1\245"+ - "\1\25\1\131\1\25\1\0\1\25\1\245\1\0\1\25"+ - "\1\0\1\25\3\0\2\25\2\0\3\25\1\0\1\25"+ - "\7\0\1\245\2\25\1\245\2\25\1\245\2\25\1\0"+ - "\4\25\1\0\1\245\1\25\1\0\1\25\1\0\1\245"+ - "\2\25\6\0\2\25\1\131\3\0\1\25\3\0\1\25"+ - "\7\0\3\25\1\0\1\25\2\0\1\246\4\0\11\25"+ - "\1\0\4\25\1\0\2\25\1\0\1\25\1\0\3\25"+ - "\6\0\1\247\2\134\1\0\2\134\1\247\1\134\1\0"+ - "\5\134\2\0\16\134\1\247\2\134\1\247\2\134\1\247"+ - "\10\134\1\247\4\134\1\247\7\134\1\0\1\250\2\136"+ - "\1\0\2\136\1\250\1\136\1\0\5\136\2\0\16\136"+ - "\1\250\2\136\1\250\2\136\1\250\10\136\1\250\4\136"+ - "\1\250\7\136\13\0\1\251\57\0\35\141\1\252\35\141"+ - "\41\0\1\253\103\0\1\254\65\0\2\255\66\0\2\256"+ - "\103\0\1\257\17\0\2\147\1\150\3\0\1\147\3\0"+ - "\1\147\7\0\3\147\1\260\1\147\7\0\11\147\1\0"+ - "\4\147\1\0\2\147\1\0\1\147\1\0\3\147\6\0"+ - "\1\261\2\147\1\0\2\147\1\261\1\147\1\0\5\147"+ - "\2\0\16\147\1\261\2\147\1\261\2\147\1\261\10\147"+ - "\1\261\4\147\1\261\7\147\1\0\1\262\1\151\1\152"+ - "\1\151\1\263\1\151\1\262\10\151\1\264\16\151\1\262"+ - "\2\151\1\262\2\151\1\262\10\151\1\262\4\151\1\262"+ - "\7\151\1\0\1\265\1\154\1\155\3\154\1\265\1\266"+ - "\7\154\1\267\16\154\1\265\2\154\1\265\2\154\1\265"+ - "\10\154\1\265\4\154\1\265\7\154\32\0\1\246\41\0"+ - "\1\270\1\157\1\160\1\157\1\271\1\157\1\270\10\157"+ - "\1\272\16\157\1\270\2\157\1\270\2\157\1\270\10\157"+ - "\1\270\4\157\1\270\7\157\1\0\1\273\1\162\1\163"+ - "\3\162\1\273\1\274\7\162\1\275\16\162\1\273\2\162"+ - "\1\273\2\162\1\273\10\162\1\273\4\162\1\273\7\162"+ - "\25\0\1\276\46\0\1\277\1\51\1\165\1\51\1\0"+ - "\1\51\1\277\1\0\1\51\1\0\1\51\3\0\2\51"+ - "\2\0\3\51\1\0\1\51\7\0\1\277\2\51\1\277"+ - "\2\51\1\277\2\51\1\0\4\51\1\0\1\277\1\51"+ - "\1\0\1\51\1\0\1\277\2\51\6\0\2\51\1\165"+ - "\3\0\1\51\3\0\1\51\7\0\3\51\1\0\1\51"+ - "\2\0\1\246\4\0\11\51\1\0\4\51\1\0\2\51"+ - "\1\0\1\51\1\0\3\51\6\0\1\300\1\55\1\170"+ - "\1\55\1\0\1\55\1\300\1\0\1\55\1\0\1\55"+ - "\3\0\2\55\2\0\3\55\1\0\1\55\7\0\1\300"+ - "\2\55\1\300\2\55\1\300\2\55\1\0\4\55\1\0"+ - "\1\300\1\55\1\0\1\55\1\0\1\300\2\55\6\0"+ - "\2\55\1\170\3\0\1\55\3\0\1\55\7\0\3\55"+ - "\1\0\1\55\2\0\1\246\4\0\11\55\1\0\4\55"+ - "\1\0\2\55\1\0\1\55\1\0\3\55\6\0\1\301"+ - "\1\62\1\173\1\62\1\0\1\62\1\301\1\0\1\62"+ - "\1\0\1\62\3\0\2\62\2\0\3\62\1\0\1\62"+ - "\7\0\1\301\2\62\1\301\2\62\1\301\2\62\1\0"+ - "\4\62\1\0\1\301\1\62\1\0\1\62\1\0\1\301"+ - "\2\62\6\0\2\62\1\173\3\0\1\62\3\0\1\62"+ - "\7\0\3\62\1\0\1\62\2\0\1\246\4\0\11\62"+ - "\1\0\4\62\1\0\2\62\1\0\1\62\1\0\3\62"+ - "\6\0\1\302\1\72\1\200\1\72\1\0\1\72\1\302"+ - "\1\0\1\72\1\0\1\72\3\0\2\72\2\0\3\72"+ - "\1\0\1\72\7\0\1\302\2\72\1\302\2\72\1\302"+ - "\2\72\1\0\4\72\1\0\1\302\1\72\1\0\1\72"+ - "\1\0\1\302\2\72\6\0\2\72\1\200\3\0\1\72"+ - "\3\0\1\72\7\0\3\72\1\0\1\72\2\0\1\246"+ - "\4\0\11\72\1\0\4\72\1\0\2\72\1\0\1\72"+ - "\1\0\3\72\6\0\1\303\1\100\1\203\1\100\1\0"+ - "\1\100\1\303\1\0\1\100\1\0\1\100\3\0\2\100"+ - "\2\0\3\100\1\0\1\100\7\0\1\303\2\100\1\303"+ - "\2\100\1\303\2\100\1\0\4\100\1\0\1\303\1\100"+ - "\1\0\1\100\1\0\1\303\2\100\6\0\1\304\1\205"+ - "\1\206\1\205\1\305\1\205\1\304\10\205\1\306\16\205"+ - "\1\304\2\205\1\304\2\205\1\304\10\205\1\304\4\205"+ - "\1\304\7\205\1\0\1\307\1\210\1\211\3\210\1\307"+ - "\1\310\7\210\1\311\16\210\1\307\2\210\1\307\2\210"+ - "\1\307\10\210\1\307\4\210\1\307\7\210\1\0\2\100"+ - "\1\203\3\0\1\100\3\0\1\100\7\0\3\100\1\0"+ - "\1\100\2\0\1\246\4\0\11\100\1\0\4\100\1\0"+ - "\2\100\1\0\1\100\1\0\3\100\6\0\1\312\1\105"+ - "\1\213\1\105\1\0\1\105\1\312\1\0\1\105\1\0"+ - "\1\105\3\0\2\105\2\0\3\105\1\0\1\105\7\0"+ - "\1\312\2\105\1\312\2\105\1\312\2\105\1\0\4\105"+ - "\1\0\1\312\1\105\1\0\1\105\1\0\1\312\2\105"+ - "\6\0\2\105\1\213\3\0\1\105\3\0\1\105\7\0"+ - "\3\105\1\0\1\105\2\0\1\246\4\0\11\105\1\0"+ - "\4\105\1\0\2\105\1\0\1\105\1\0\3\105\6\0"+ - "\2\216\1\217\3\0\1\216\3\0\1\216\7\0\3\216"+ - "\1\0\1\216\7\0\11\216\1\0\4\216\1\0\2\216"+ - "\1\0\1\216\1\0\3\216\6\0\1\313\2\216\1\0"+ - "\2\216\1\313\1\216\1\0\5\216\2\0\16\216\1\313"+ - "\2\216\1\313\2\216\1\313\10\216\1\313\4\216\1\313"+ - "\7\216\1\0\1\314\1\113\1\222\1\113\1\0\1\113"+ - "\1\314\1\0\1\113\1\0\1\113\3\0\2\113\2\0"+ - "\3\113\1\223\1\113\7\0\1\314\2\113\1\314\2\113"+ - "\1\314\2\113\1\0\4\113\1\0\1\314\1\113\1\0"+ - "\1\113\1\0\1\314\2\113\6\0\1\315\1\225\1\226"+ - "\1\225\1\316\1\225\1\315\10\225\1\317\16\225\1\315"+ - "\2\225\1\315\2\225\1\315\10\225\1\315\4\225\1\315"+ - "\7\225\1\0\1\320\1\230\1\231\3\230\1\320\1\321"+ - "\7\230\1\322\16\230\1\320\2\230\1\320\2\230\1\320"+ - "\10\230\1\320\4\230\1\320\7\230\1\0\1\232\1\113"+ - "\1\222\3\0\1\113\3\0\1\113\1\0\1\220\5\0"+ - "\3\113\1\223\1\113\7\0\11\113\1\0\4\113\1\0"+ - "\2\113\1\0\1\113\1\0\3\113\4\0\1\221\1\0"+ - "\2\113\1\222\3\0\1\113\3\0\1\113\7\0\3\113"+ - "\1\223\1\113\2\0\1\246\4\0\11\113\1\0\4\113"+ - "\1\0\2\113\1\0\1\113\1\0\3\113\6\0\1\234"+ - "\1\216\1\217\3\0\1\216\3\0\1\216\7\0\3\216"+ - "\1\0\1\216\7\0\11\216\1\0\4\216\1\0\2\216"+ - "\1\0\1\216\1\0\3\216\4\0\1\221\1\0\1\323"+ - "\2\235\1\0\2\235\1\323\1\235\1\0\5\235\2\0"+ - "\16\235\1\323\2\235\1\323\2\235\1\323\10\235\1\323"+ - "\4\235\1\323\7\235\1\0\1\324\5\0\1\324\11\0"+ - "\1\324\5\0\1\324\7\0\2\324\1\0\2\324\1\0"+ - "\2\324\7\0\2\324\3\0\2\324\7\0\2\113\1\222"+ - "\3\0\1\113\3\0\1\113\7\0\2\113\1\325\1\223"+ - "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+ - "\1\113\1\0\3\113\57\0\1\326\21\0\1\327\1\25"+ - "\1\131\1\25\1\0\1\25\1\327\1\0\1\25\1\0"+ - "\1\25\3\0\2\25\2\0\3\25\1\0\1\25\7\0"+ - "\1\327\2\25\1\327\2\25\1\327\2\25\1\0\4\25"+ - "\1\0\1\327\1\25\1\0\1\25\1\0\1\327\2\25"+ - "\6\0\1\330\1\134\1\135\1\134\1\0\1\134\1\330"+ - "\1\0\1\134\1\0\1\134\3\0\2\134\2\0\3\134"+ - "\1\0\1\134\7\0\1\330\2\134\1\330\2\134\1\330"+ - "\2\134\1\0\4\134\1\0\1\330\1\134\1\0\1\134"+ - "\1\0\1\330\2\134\6\0\1\331\1\136\1\137\1\136"+ - "\1\0\1\136\1\331\1\0\1\136\1\0\1\136\3\0"+ - "\2\136\2\0\3\136\1\0\1\136\7\0\1\331\2\136"+ - "\1\331\2\136\1\331\2\136\1\0\4\136\1\0\1\331"+ - "\1\136\1\0\1\136\1\0\1\331\2\136\20\0\1\332"+ - "\57\0\34\141\1\333\1\252\35\141\42\0\2\334\102\0"+ - "\1\335\75\0\2\336\74\0\1\337\76\0\1\340\7\0"+ - "\1\341\1\342\1\260\1\0\1\260\1\341\1\0\1\260"+ - "\1\0\1\341\3\0\2\260\2\0\3\341\1\0\1\341"+ - "\7\0\11\341\1\0\4\341\1\0\2\341\1\0\1\341"+ - "\1\0\3\341\6\0\1\343\1\147\1\150\1\147\1\0"+ - "\1\147\1\343\1\0\1\147\1\0\1\147\3\0\2\147"+ - "\2\0\3\147\1\260\1\147\7\0\1\343\2\147\1\343"+ - "\2\147\1\343\2\147\1\0\4\147\1\0\1\343\1\147"+ - "\1\0\1\147\1\0\1\343\2\147\6\0\1\344\1\151"+ - "\1\152\1\151\1\153\1\151\1\344\27\151\1\344\2\151"+ - "\1\344\2\151\1\344\10\151\1\344\4\151\1\344\7\151"+ - "\1\0\2\151\1\152\1\0\1\153\12\151\1\0\52\151"+ - "\1\0\1\345\1\154\1\155\3\154\1\345\1\153\26\154"+ - "\1\345\2\154\1\345\2\154\1\345\10\154\1\345\4\154"+ - "\1\345\7\154\1\0\2\154\1\155\1\0\3\154\1\153"+ - "\7\154\1\0\52\154\1\0\1\346\1\157\1\160\1\157"+ - "\1\161\1\157\1\346\27\157\1\346\2\157\1\346\2\157"+ - "\1\346\10\157\1\346\4\157\1\346\7\157\1\0\2\157"+ - "\1\160\1\0\1\161\12\157\1\0\52\157\1\0\1\347"+ - "\1\162\1\163\3\162\1\347\1\161\26\162\1\347\2\162"+ - "\1\347\2\162\1\347\10\162\1\347\4\162\1\347\7\162"+ - "\1\0\2\162\1\163\1\0\3\162\1\161\7\162\1\0"+ - "\52\162\26\0\1\350\45\0\1\351\1\51\1\165\1\51"+ - "\1\0\1\51\1\351\1\0\1\51\1\0\1\51\3\0"+ - "\2\51\2\0\3\51\1\0\1\51\7\0\1\351\2\51"+ - "\1\351\2\51\1\351\2\51\1\0\4\51\1\0\1\351"+ - "\1\51\1\0\1\51\1\0\1\351\2\51\6\0\1\352"+ - "\1\55\1\170\1\55\1\0\1\55\1\352\1\0\1\55"+ - "\1\0\1\55\3\0\2\55\2\0\3\55\1\0\1\55"+ - "\7\0\1\352\2\55\1\352\2\55\1\352\2\55\1\0"+ - "\4\55\1\0\1\352\1\55\1\0\1\55\1\0\1\352"+ - "\2\55\6\0\1\353\1\62\1\173\1\62\1\0\1\62"+ - "\1\353\1\0\1\62\1\0\1\62\3\0\2\62\2\0"+ - "\3\62\1\0\1\62\7\0\1\353\2\62\1\353\2\62"+ - "\1\353\2\62\1\0\4\62\1\0\1\353\1\62\1\0"+ - "\1\62\1\0\1\353\2\62\6\0\1\354\1\72\1\200"+ - "\1\72\1\0\1\72\1\354\1\0\1\72\1\0\1\72"+ - "\3\0\2\72\2\0\3\72\1\0\1\72\7\0\1\354"+ - "\2\72\1\354\2\72\1\354\2\72\1\0\4\72\1\0"+ - "\1\354\1\72\1\0\1\72\1\0\1\354\2\72\6\0"+ - "\1\355\1\100\1\203\1\100\1\0\1\100\1\355\1\0"+ - "\1\100\1\0\1\100\3\0\2\100\2\0\3\100\1\0"+ - "\1\100\7\0\1\355\2\100\1\355\2\100\1\355\2\100"+ - "\1\0\4\100\1\0\1\355\1\100\1\0\1\100\1\0"+ - "\1\355\2\100\6\0\1\356\1\205\1\206\1\205\1\207"+ - "\1\205\1\356\27\205\1\356\2\205\1\356\2\205\1\356"+ - "\10\205\1\356\4\205\1\356\7\205\1\0\2\205\1\206"+ - "\1\0\1\207\12\205\1\0\52\205\1\0\1\357\1\210"+ - "\1\211\3\210\1\357\1\207\26\210\1\357\2\210\1\357"+ - "\2\210\1\357\10\210\1\357\4\210\1\357\7\210\1\0"+ - "\2\210\1\211\1\0\3\210\1\207\7\210\1\0\52\210"+ - "\1\0\1\360\1\105\1\213\1\105\1\0\1\105\1\360"+ - "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+ - "\1\0\1\105\7\0\1\360\2\105\1\360\2\105\1\360"+ - "\2\105\1\0\4\105\1\0\1\360\1\105\1\0\1\105"+ - "\1\0\1\360\2\105\6\0\1\361\1\216\1\217\1\216"+ - "\1\0\1\216\1\361\1\0\1\216\1\0\1\216\3\0"+ - "\2\216\2\0\3\216\1\0\1\216\7\0\1\361\2\216"+ - "\1\361\2\216\1\361\2\216\1\0\4\216\1\0\1\361"+ - "\1\216\1\0\1\216\1\0\1\361\2\216\6\0\1\362"+ - "\1\113\1\222\1\113\1\0\1\113\1\362\1\0\1\113"+ - "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+ - "\7\0\1\362\2\113\1\362\2\113\1\362\2\113\1\0"+ - "\4\113\1\0\1\362\1\113\1\0\1\113\1\0\1\362"+ - "\2\113\6\0\1\363\1\225\1\226\1\225\1\227\1\225"+ - "\1\363\27\225\1\363\2\225\1\363\2\225\1\363\10\225"+ - "\1\363\4\225\1\363\7\225\1\0\2\225\1\226\1\0"+ - "\1\227\12\225\1\0\52\225\1\0\1\364\1\230\1\231"+ - "\3\230\1\364\1\227\26\230\1\364\2\230\1\364\2\230"+ - "\1\364\10\230\1\364\4\230\1\364\7\230\1\0\2\230"+ - "\1\231\1\0\3\230\1\227\7\230\1\0\52\230\1\0"+ - "\1\365\1\235\1\236\1\235\1\0\1\235\1\365\1\0"+ - "\1\235\1\0\1\235\3\0\2\235\2\0\3\235\1\0"+ - "\1\235\7\0\1\365\2\235\1\365\2\235\1\365\2\235"+ - "\1\0\4\235\1\0\1\365\1\235\1\0\1\235\1\0"+ - "\1\365\2\235\6\0\1\366\5\0\1\366\3\0\1\367"+ - "\5\0\1\366\5\0\1\366\7\0\2\366\1\0\2\366"+ - "\1\0\2\366\7\0\2\366\3\0\2\366\7\0\2\113"+ - "\1\222\3\0\1\113\3\0\1\113\7\0\3\113\1\370"+ - "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+ - "\1\113\1\0\3\113\60\0\1\371\20\0\1\372\1\25"+ - "\1\131\1\25\1\0\1\25\1\372\1\0\1\25\1\0"+ - "\1\25\3\0\2\25\2\0\3\25\1\0\1\25\7\0"+ - "\1\372\2\25\1\372\2\25\1\372\2\25\1\0\4\25"+ - "\1\0\1\372\1\25\1\0\1\25\1\0\1\372\2\25"+ - "\6\0\1\373\1\134\1\135\1\134\1\0\1\134\1\373"+ - "\1\0\1\134\1\0\1\134\3\0\2\134\2\0\3\134"+ - "\1\0\1\134\7\0\1\373\2\134\1\373\2\134\1\373"+ - "\2\134\1\0\4\134\1\0\1\373\1\134\1\0\1\134"+ - "\1\0\1\373\2\134\6\0\1\374\1\136\1\137\1\136"+ - "\1\0\1\136\1\374\1\0\1\136\1\0\1\136\3\0"+ - "\2\136\2\0\3\136\1\0\1\136\7\0\1\374\2\136"+ - "\1\374\2\136\1\374\2\136\1\0\4\136\1\0\1\374"+ - "\1\136\1\0\1\136\1\0\1\374\2\136\31\0\1\375"+ - "\122\0\1\376\67\0\1\377\66\0\2\u0100\73\0\1\u0101"+ - "\24\0\2\341\1\342\1\u0102\1\0\1\u0102\1\341\1\0"+ - "\1\u0102\1\u0103\1\341\3\0\2\u0102\2\0\3\341\1\0"+ - "\1\341\7\0\11\341\1\0\4\341\1\0\2\341\1\0"+ - "\1\341\1\0\3\341\6\0\1\u0104\2\341\1\0\2\341"+ - "\1\u0104\1\341\1\0\5\341\2\0\16\341\1\u0104\2\341"+ - "\1\u0104\2\341\1\u0104\10\341\1\u0104\4\341\1\u0104\7\341"+ - "\1\0\1\u0105\1\147\1\150\1\147\1\0\1\147\1\u0105"+ - "\1\0\1\147\1\0\1\147\3\0\2\147\2\0\3\147"+ - "\1\260\1\147\7\0\1\u0105\2\147\1\u0105\2\147\1\u0105"+ - "\2\147\1\0\4\147\1\0\1\u0105\1\147\1\0\1\147"+ - "\1\0\1\u0105\2\147\6\0\1\u0106\1\151\1\152\1\151"+ - "\1\153\1\151\1\u0106\27\151\1\u0106\2\151\1\u0106\2\151"+ - "\1\u0106\10\151\1\u0106\4\151\1\u0106\7\151\1\0\1\u0107"+ - "\1\154\1\155\3\154\1\u0107\1\153\26\154\1\u0107\2\154"+ - "\1\u0107\2\154\1\u0107\10\154\1\u0107\4\154\1\u0107\7\154"+ - "\1\0\1\u0108\1\157\1\160\1\157\1\161\1\157\1\u0108"+ - "\27\157\1\u0108\2\157\1\u0108\2\157\1\u0108\10\157\1\u0108"+ - "\4\157\1\u0108\7\157\1\0\1\u0109\1\162\1\163\3\162"+ - "\1\u0109\1\161\26\162\1\u0109\2\162\1\u0109\2\162\1\u0109"+ - "\10\162\1\u0109\4\162\1\u0109\7\162\1\0\2\u010a\1\u010b"+ - "\1\350\1\u010c\1\350\1\u010a\1\u010d\1\350\1\u010e\4\u010a"+ - "\2\350\5\u010a\1\0\44\u010a\1\0\1\u010f\1\51\1\165"+ - "\1\51\1\0\1\51\1\u010f\1\0\1\51\1\0\1\51"+ - "\3\0\2\51\2\0\3\51\1\0\1\51\7\0\1\u010f"+ - "\2\51\1\u010f\2\51\1\u010f\2\51\1\0\4\51\1\0"+ - "\1\u010f\1\51\1\0\1\51\1\0\1\u010f\2\51\6\0"+ - "\1\u0110\1\55\1\170\1\55\1\0\1\55\1\u0110\1\0"+ - "\1\55\1\0\1\55\3\0\2\55\2\0\3\55\1\0"+ - "\1\55\7\0\1\u0110\2\55\1\u0110\2\55\1\u0110\2\55"+ - "\1\0\4\55\1\0\1\u0110\1\55\1\0\1\55\1\0"+ - "\1\u0110\2\55\6\0\1\u0111\1\62\1\173\1\62\1\0"+ - "\1\62\1\u0111\1\0\1\62\1\0\1\62\3\0\2\62"+ - "\2\0\3\62\1\0\1\62\7\0\1\u0111\2\62\1\u0111"+ - "\2\62\1\u0111\2\62\1\0\4\62\1\0\1\u0111\1\62"+ - "\1\0\1\62\1\0\1\u0111\2\62\6\0\1\u0112\1\72"+ - "\1\200\1\72\1\0\1\72\1\u0112\1\0\1\72\1\0"+ - "\1\72\3\0\2\72\2\0\3\72\1\0\1\72\7\0"+ - "\1\u0112\2\72\1\u0112\2\72\1\u0112\2\72\1\0\4\72"+ - "\1\0\1\u0112\1\72\1\0\1\72\1\0\1\u0112\2\72"+ - "\6\0\1\u0113\1\100\1\203\1\100\1\0\1\100\1\u0113"+ - "\1\0\1\100\1\0\1\100\3\0\2\100\2\0\3\100"+ - "\1\0\1\100\7\0\1\u0113\2\100\1\u0113\2\100\1\u0113"+ - "\2\100\1\0\4\100\1\0\1\u0113\1\100\1\0\1\100"+ - "\1\0\1\u0113\2\100\6\0\1\u0114\1\205\1\206\1\205"+ - "\1\207\1\205\1\u0114\27\205\1\u0114\2\205\1\u0114\2\205"+ - "\1\u0114\10\205\1\u0114\4\205\1\u0114\7\205\1\0\1\u0115"+ - "\1\210\1\211\3\210\1\u0115\1\207\26\210\1\u0115\2\210"+ - "\1\u0115\2\210\1\u0115\10\210\1\u0115\4\210\1\u0115\7\210"+ - "\1\0\1\u0116\1\105\1\213\1\105\1\0\1\105\1\u0116"+ - "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+ - "\1\0\1\105\7\0\1\u0116\2\105\1\u0116\2\105\1\u0116"+ - "\2\105\1\0\4\105\1\0\1\u0116\1\105\1\0\1\105"+ - "\1\0\1\u0116\2\105\6\0\1\u0117\1\216\1\217\1\216"+ - "\1\0\1\216\1\u0117\1\0\1\216\1\0\1\216\3\0"+ - "\2\216\2\0\3\216\1\0\1\216\7\0\1\u0117\2\216"+ - "\1\u0117\2\216\1\u0117\2\216\1\0\4\216\1\0\1\u0117"+ - "\1\216\1\0\1\216\1\0\1\u0117\2\216\6\0\1\u0118"+ - "\1\113\1\222\1\113\1\0\1\113\1\u0118\1\0\1\113"+ - "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+ - "\7\0\1\u0118\2\113\1\u0118\2\113\1\u0118\2\113\1\0"+ - "\4\113\1\0\1\u0118\1\113\1\0\1\113\1\0\1\u0118"+ - "\2\113\6\0\1\u0119\1\225\1\226\1\225\1\227\1\225"+ - "\1\u0119\27\225\1\u0119\2\225\1\u0119\2\225\1\u0119\10\225"+ - "\1\u0119\4\225\1\u0119\7\225\1\0\1\u011a\1\230\1\231"+ - "\3\230\1\u011a\1\227\26\230\1\u011a\2\230\1\u011a\2\230"+ - "\1\u011a\10\230\1\u011a\4\230\1\u011a\7\230\1\0\1\u011b"+ - "\1\235\1\236\1\235\1\0\1\235\1\u011b\1\0\1\235"+ - "\1\0\1\235\3\0\2\235\2\0\3\235\1\0\1\235"+ - "\7\0\1\u011b\2\235\1\u011b\2\235\1\u011b\2\235\1\0"+ - "\4\235\1\0\1\u011b\1\235\1\0\1\235\1\0\1\u011b"+ - "\2\235\6\0\1\u011c\5\0\1\u011c\3\0\1\367\5\0"+ - "\1\u011c\5\0\1\u011c\7\0\2\u011c\1\0\2\u011c\1\0"+ - "\2\u011c\7\0\2\u011c\3\0\2\u011c\7\0\1\u011d\5\0"+ - "\1\u011d\11\0\1\u011d\5\0\1\u011d\7\0\2\u011d\1\0"+ - "\2\u011d\1\0\2\u011d\7\0\2\u011d\3\0\2\u011d\7\0"+ - "\2\u011e\1\u011f\1\u0120\1\u0121\1\u0120\1\u011e\1\u0122\1\u0120"+ - "\1\u0123\4\u011e\2\u0120\5\u011e\1\0\44\u011e\54\0\1\u0124"+ - "\17\0\1\u0125\1\25\1\131\1\25\1\0\1\25\1\u0125"+ - "\1\0\1\25\1\0\1\25\3\0\2\25\2\0\3\25"+ - "\1\0\1\25\7\0\1\u0125\2\25\1\u0125\2\25\1\u0125"+ - "\2\25\1\0\4\25\1\0\1\u0125\1\25\1\0\1\25"+ - "\1\0\1\u0125\2\25\6\0\1\u0126\1\134\1\135\1\134"+ - "\1\0\1\134\1\u0126\1\0\1\134\1\0\1\134\3\0"+ - "\2\134\2\0\3\134\1\0\1\134\7\0\1\u0126\2\134"+ - "\1\u0126\2\134\1\u0126\2\134\1\0\4\134\1\0\1\u0126"+ - "\1\134\1\0\1\134\1\0\1\u0126\2\134\6\0\1\u0127"+ - "\1\136\1\137\1\136\1\0\1\136\1\u0127\1\0\1\136"+ - "\1\0\1\136\3\0\2\136\2\0\3\136\1\0\1\136"+ - "\7\0\1\u0127\2\136\1\u0127\2\136\1\u0127\2\136\1\0"+ - "\4\136\1\0\1\u0127\1\136\1\0\1\136\1\0\1\u0127"+ - "\2\136\51\0\1\u0128\52\0\1\u0129\110\0\2\u012a\42\0"+ - "\1\u012b\63\0\1\u0102\1\0\1\u0102\2\0\1\u0102\1\u0103"+ - "\4\0\2\u0102\53\0\1\u012c\1\341\1\342\1\341\1\0"+ - "\1\341\1\u012c\1\0\1\341\1\u0103\1\341\3\0\2\341"+ - "\2\0\3\341\1\0\1\341\7\0\1\u012c\2\341\1\u012c"+ - "\2\341\1\u012c\2\341\1\0\4\341\1\0\1\u012c\1\341"+ - "\1\0\1\341\1\0\1\u012c\2\341\6\0\1\u012d\1\147"+ - "\1\150\1\147\1\0\1\147\1\u012d\1\0\1\147\1\0"+ - "\1\147\3\0\2\147\2\0\3\147\1\260\1\147\7\0"+ - "\1\u012d\2\147\1\u012d\2\147\1\u012d\2\147\1\0\4\147"+ - "\1\0\1\u012d\1\147\1\0\1\147\1\0\1\u012d\2\147"+ - "\6\0\1\u012e\1\151\1\152\1\151\1\153\1\151\1\u012e"+ - "\27\151\1\u012e\2\151\1\u012e\2\151\1\u012e\10\151\1\u012e"+ - "\4\151\1\u012e\7\151\1\0\1\u012f\1\154\1\155\3\154"+ - "\1\u012f\1\153\26\154\1\u012f\2\154\1\u012f\2\154\1\u012f"+ - "\10\154\1\u012f\4\154\1\u012f\7\154\1\0\1\u0130\1\157"+ - "\1\160\1\157\1\161\1\157\1\u0130\27\157\1\u0130\2\157"+ - "\1\u0130\2\157\1\u0130\10\157\1\u0130\4\157\1\u0130\7\157"+ - "\1\0\1\u0131\1\162\1\163\3\162\1\u0131\1\161\26\162"+ - "\1\u0131\2\162\1\u0131\2\162\1\u0131\10\162\1\u0131\4\162"+ - "\1\u0131\7\162\1\0\2\u010a\1\u010b\1\u0132\1\0\2\u010a"+ - "\1\0\1\u0132\1\u010e\4\u010a\2\u0132\5\u010a\1\0\44\u010a"+ - "\1\0\1\u0133\1\u010a\1\u010b\1\u0132\2\u010a\1\u0133\1\u010a"+ - "\1\u0132\1\u0134\4\u010a\2\u0132\16\u010a\1\u0133\2\u010a\1\u0133"+ - "\2\u010a\1\u0133\10\u010a\1\u0133\4\u010a\1\u0133\7\u010a\1\0"+ - "\2\u010c\1\u0135\1\0\1\u0132\11\u010c\2\0\52\u010c\1\0"+ - "\2\u010d\1\u0136\1\0\3\u010d\1\u0132\6\u010d\2\0\52\u010d"+ - "\1\0\1\u0137\1\51\1\165\1\51\1\0\1\51\1\u0137"+ - "\1\0\1\51\1\0\1\51\3\0\2\51\2\0\3\51"+ - "\1\0\1\51\7\0\1\u0137\2\51\1\u0137\2\51\1\u0137"+ - "\2\51\1\0\4\51\1\0\1\u0137\1\51\1\0\1\51"+ - "\1\0\1\u0137\2\51\6\0\1\u0138\1\55\1\170\1\55"+ - "\1\0\1\55\1\u0138\1\0\1\55\1\0\1\55\3\0"+ - "\2\55\2\0\3\55\1\0\1\55\7\0\1\u0138\2\55"+ - "\1\u0138\2\55\1\u0138\2\55\1\0\4\55\1\0\1\u0138"+ - "\1\55\1\0\1\55\1\0\1\u0138\2\55\6\0\1\u0139"+ - "\1\62\1\173\1\62\1\0\1\62\1\u0139\1\0\1\62"+ - "\1\0\1\62\3\0\2\62\2\0\3\62\1\0\1\62"+ - "\7\0\1\u0139\2\62\1\u0139\2\62\1\u0139\2\62\1\0"+ - "\4\62\1\0\1\u0139\1\62\1\0\1\62\1\0\1\u0139"+ - "\2\62\6\0\1\u013a\1\72\1\200\1\72\1\0\1\72"+ - "\1\u013a\1\0\1\72\1\0\1\72\3\0\2\72\2\0"+ - "\3\72\1\0\1\72\7\0\1\u013a\2\72\1\u013a\2\72"+ - "\1\u013a\2\72\1\0\4\72\1\0\1\u013a\1\72\1\0"+ - "\1\72\1\0\1\u013a\2\72\6\0\1\u013b\1\100\1\203"+ - "\1\100\1\0\1\100\1\u013b\1\0\1\100\1\0\1\100"+ - "\3\0\2\100\2\0\3\100\1\0\1\100\7\0\1\u013b"+ - "\2\100\1\u013b\2\100\1\u013b\2\100\1\0\4\100\1\0"+ - "\1\u013b\1\100\1\0\1\100\1\0\1\u013b\2\100\6\0"+ - "\1\u013c\1\205\1\206\1\205\1\207\1\205\1\u013c\27\205"+ - "\1\u013c\2\205\1\u013c\2\205\1\u013c\10\205\1\u013c\4\205"+ - "\1\u013c\7\205\1\0\1\u013d\1\210\1\211\3\210\1\u013d"+ - "\1\207\26\210\1\u013d\2\210\1\u013d\2\210\1\u013d\10\210"+ - "\1\u013d\4\210\1\u013d\7\210\1\0\1\u013e\1\105\1\213"+ - "\1\105\1\0\1\105\1\u013e\1\0\1\105\1\0\1\105"+ - "\3\0\2\105\2\0\3\105\1\0\1\105\7\0\1\u013e"+ - "\2\105\1\u013e\2\105\1\u013e\2\105\1\0\4\105\1\0"+ - "\1\u013e\1\105\1\0\1\105\1\0\1\u013e\2\105\6\0"+ - "\1\u013f\1\216\1\217\1\216\1\0\1\216\1\u013f\1\0"+ - "\1\216\1\0\1\216\3\0\2\216\2\0\3\216\1\0"+ - "\1\216\7\0\1\u013f\2\216\1\u013f\2\216\1\u013f\2\216"+ - "\1\0\4\216\1\0\1\u013f\1\216\1\0\1\216\1\0"+ - "\1\u013f\2\216\6\0\1\u0140\1\113\1\222\1\113\1\0"+ - "\1\113\1\u0140\1\0\1\113\1\0\1\113\3\0\2\113"+ - "\2\0\3\113\1\223\1\113\7\0\1\u0140\2\113\1\u0140"+ - "\2\113\1\u0140\2\113\1\0\4\113\1\0\1\u0140\1\113"+ - "\1\0\1\113\1\0\1\u0140\2\113\6\0\1\u0141\1\225"+ - "\1\226\1\225\1\227\1\225\1\u0141\27\225\1\u0141\2\225"+ - "\1\u0141\2\225\1\u0141\10\225\1\u0141\4\225\1\u0141\7\225"+ - "\1\0\1\u0142\1\230\1\231\3\230\1\u0142\1\227\26\230"+ - "\1\u0142\2\230\1\u0142\2\230\1\u0142\10\230\1\u0142\4\230"+ - "\1\u0142\7\230\1\0\1\u0143\1\235\1\236\1\235\1\0"+ - "\1\235\1\u0143\1\0\1\235\1\0\1\235\3\0\2\235"+ - "\2\0\3\235\1\0\1\235\7\0\1\u0143\2\235\1\u0143"+ - "\2\235\1\u0143\2\235\1\0\4\235\1\0\1\u0143\1\235"+ - "\1\0\1\235\1\0\1\u0143\2\235\6\0\1\u0144\5\0"+ - "\1\u0144\3\0\1\367\5\0\1\u0144\5\0\1\u0144\7\0"+ - "\2\u0144\1\0\2\u0144\1\0\2\u0144\7\0\2\u0144\3\0"+ - "\2\u0144\7\0\1\u0145\5\0\1\u0145\11\0\1\u0145\5\0"+ - "\1\u0145\7\0\2\u0145\1\0\2\u0145\1\0\2\u0145\7\0"+ - "\2\u0145\3\0\2\u0145\7\0\2\u011e\1\u011f\1\u0146\1\0"+ - "\2\u011e\1\0\1\u0146\1\u0123\4\u011e\2\u0146\5\u011e\1\0"+ - "\44\u011e\1\0\1\u0147\1\u011e\1\u011f\1\u0146\2\u011e\1\u0147"+ - "\1\u011e\1\u0146\1\u0148\4\u011e\2\u0146\16\u011e\1\u0147\2\u011e"+ - "\1\u0147\2\u011e\1\u0147\10\u011e\1\u0147\4\u011e\1\u0147\7\u011e"+ - "\1\0\2\u0121\1\u0149\1\0\1\u0146\11\u0121\2\0\52\u0121"+ - "\1\0\2\u0122\1\u014a\1\0\3\u0122\1\u0146\6\u0122\2\0"+ - "\52\u0122\24\0\1\u014b\47\0\1\u014c\1\25\1\131\1\25"+ - "\1\0\1\25\1\u014c\1\0\1\25\1\0\1\25\3\0"+ - "\2\25\2\0\3\25\1\0\1\25\7\0\1\u014c\2\25"+ - "\1\u014c\2\25\1\u014c\2\25\1\0\4\25\1\0\1\u014c"+ - "\1\25\1\0\1\25\1\0\1\u014c\2\25\6\0\1\u014d"+ - "\1\134\1\135\1\134\1\0\1\134\1\u014d\1\0\1\134"+ - "\1\0\1\134\3\0\2\134\2\0\3\134\1\0\1\134"+ - "\7\0\1\u014d\2\134\1\u014d\2\134\1\u014d\2\134\1\0"+ - "\4\134\1\0\1\u014d\1\134\1\0\1\134\1\0\1\u014d"+ - "\2\134\6\0\1\u014e\1\136\1\137\1\136\1\0\1\136"+ - "\1\u014e\1\0\1\136\1\0\1\136\3\0\2\136\2\0"+ - "\3\136\1\0\1\136\7\0\1\u014e\2\136\1\u014e\2\136"+ - "\1\u014e\2\136\1\0\4\136\1\0\1\u014e\1\136\1\0"+ - "\1\136\1\0\1\u014e\2\136\52\0\2\u014f\73\0\1\u0150"+ - "\106\0\2\u0151\7\0\1\u0152\1\341\1\342\1\341\1\0"+ - "\1\341\1\u0152\1\0\1\341\1\u0103\1\341\3\0\2\341"+ - "\2\0\3\341\1\0\1\341\7\0\1\u0152\2\341\1\u0152"+ - "\2\341\1\u0152\2\341\1\0\4\341\1\0\1\u0152\1\341"+ - "\1\0\1\341\1\0\1\u0152\2\341\6\0\1\u0153\1\147"+ - "\1\150\1\147\1\0\1\147\1\u0153\1\0\1\147\1\0"+ - "\1\147\3\0\2\147\2\0\3\147\1\260\1\147\7\0"+ - "\1\u0153\2\147\1\u0153\2\147\1\u0153\2\147\1\0\4\147"+ - "\1\0\1\u0153\1\147\1\0\1\147\1\0\1\u0153\2\147"+ - "\6\0\1\u0154\1\151\1\152\1\151\1\153\1\151\1\u0154"+ - "\27\151\1\u0154\2\151\1\u0154\2\151\1\u0154\10\151\1\u0154"+ - "\4\151\1\u0154\7\151\1\0\1\u0155\1\154\1\155\3\154"+ - "\1\u0155\1\153\26\154\1\u0155\2\154\1\u0155\2\154\1\u0155"+ - "\10\154\1\u0155\4\154\1\u0155\7\154\1\0\1\u0156\1\157"+ - "\1\160\1\157\1\161\1\157\1\u0156\27\157\1\u0156\2\157"+ - "\1\u0156\2\157\1\u0156\10\157\1\u0156\4\157\1\u0156\7\157"+ - "\1\0\1\u0157\1\162\1\163\3\162\1\u0157\1\161\26\162"+ - "\1\u0157\2\162\1\u0157\2\162\1\u0157\10\162\1\u0157\4\162"+ - "\1\u0157\7\162\4\0\1\u0132\1\0\1\u0132\2\0\1\u0132"+ - "\1\u010e\4\0\2\u0132\53\0\1\u0158\1\u010a\1\u010b\1\u010a"+ - "\1\0\1\u010a\1\u0158\1\0\1\u010a\1\u010e\13\u010a\1\0"+ - "\10\u010a\1\u0158\2\u010a\1\u0158\2\u010a\1\u0158\10\u010a\1\u0158"+ - "\4\u010a\1\u0158\7\u010a\1\0\1\u0159\1\u010c\1\u0135\1\u010c"+ - "\1\u015a\1\u010c\1\u0159\10\u010c\1\u015b\16\u010c\1\u0159\2\u010c"+ - "\1\u0159\2\u010c\1\u0159\10\u010c\1\u0159\4\u010c\1\u0159\7\u010c"+ - "\1\0\1\u015c\1\u010d\1\u0136\3\u010d\1\u015c\1\u015d\7\u010d"+ - "\1\u015e\16\u010d\1\u015c\2\u010d\1\u015c\2\u010d\1\u015c\10\u010d"+ - "\1\u015c\4\u010d\1\u015c\7\u010d\1\0\1\u015f\1\51\1\165"+ - "\1\51\1\0\1\51\1\u015f\1\0\1\51\1\0\1\51"+ - "\3\0\2\51\2\0\3\51\1\0\1\51\7\0\1\u015f"+ - "\2\51\1\u015f\2\51\1\u015f\2\51\1\0\4\51\1\0"+ - "\1\u015f\1\51\1\0\1\51\1\0\1\u015f\2\51\6\0"+ - "\1\u0160\1\55\1\170\1\55\1\0\1\55\1\u0160\1\0"+ - "\1\55\1\0\1\55\3\0\2\55\2\0\3\55\1\0"+ - "\1\55\7\0\1\u0160\2\55\1\u0160\2\55\1\u0160\2\55"+ - "\1\0\4\55\1\0\1\u0160\1\55\1\0\1\55\1\0"+ - "\1\u0160\2\55\6\0\1\u0161\1\62\1\173\1\62\1\0"+ - "\1\62\1\u0161\1\0\1\62\1\0\1\62\3\0\2\62"+ - "\2\0\3\62\1\0\1\62\7\0\1\u0161\2\62\1\u0161"+ - "\2\62\1\u0161\2\62\1\0\4\62\1\0\1\u0161\1\62"+ - "\1\0\1\62\1\0\1\u0161\2\62\6\0\1\u0162\1\72"+ - "\1\200\1\72\1\0\1\72\1\u0162\1\0\1\72\1\0"+ - "\1\72\3\0\2\72\2\0\3\72\1\0\1\72\7\0"+ - "\1\u0162\2\72\1\u0162\2\72\1\u0162\2\72\1\0\4\72"+ - "\1\0\1\u0162\1\72\1\0\1\72\1\0\1\u0162\2\72"+ - "\6\0\1\u0163\1\100\1\203\1\100\1\0\1\100\1\u0163"+ - "\1\0\1\100\1\0\1\100\3\0\2\100\2\0\3\100"+ - "\1\0\1\100\7\0\1\u0163\2\100\1\u0163\2\100\1\u0163"+ - "\2\100\1\0\4\100\1\0\1\u0163\1\100\1\0\1\100"+ - "\1\0\1\u0163\2\100\6\0\1\u0164\1\205\1\206\1\205"+ - "\1\207\1\205\1\u0164\27\205\1\u0164\2\205\1\u0164\2\205"+ - "\1\u0164\10\205\1\u0164\4\205\1\u0164\7\205\1\0\1\u0165"+ - "\1\210\1\211\3\210\1\u0165\1\207\26\210\1\u0165\2\210"+ - "\1\u0165\2\210\1\u0165\10\210\1\u0165\4\210\1\u0165\7\210"+ - "\1\0\1\u0166\1\105\1\213\1\105\1\0\1\105\1\u0166"+ - "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+ - "\1\0\1\105\7\0\1\u0166\2\105\1\u0166\2\105\1\u0166"+ - "\2\105\1\0\4\105\1\0\1\u0166\1\105\1\0\1\105"+ - "\1\0\1\u0166\2\105\6\0\1\u0167\1\216\1\217\1\216"+ - "\1\0\1\216\1\u0167\1\0\1\216\1\0\1\216\3\0"+ - "\2\216\2\0\3\216\1\0\1\216\7\0\1\u0167\2\216"+ - "\1\u0167\2\216\1\u0167\2\216\1\0\4\216\1\0\1\u0167"+ - "\1\216\1\0\1\216\1\0\1\u0167\2\216\6\0\1\u0168"+ - "\1\113\1\222\1\113\1\0\1\113\1\u0168\1\0\1\113"+ - "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+ - "\7\0\1\u0168\2\113\1\u0168\2\113\1\u0168\2\113\1\0"+ - "\4\113\1\0\1\u0168\1\113\1\0\1\113\1\0\1\u0168"+ - "\2\113\6\0\1\u0169\1\225\1\226\1\225\1\227\1\225"+ - "\1\u0169\27\225\1\u0169\2\225\1\u0169\2\225\1\u0169\10\225"+ - "\1\u0169\4\225\1\u0169\7\225\1\0\1\u016a\1\230\1\231"+ - "\3\230\1\u016a\1\227\26\230\1\u016a\2\230\1\u016a\2\230"+ - "\1\u016a\10\230\1\u016a\4\230\1\u016a\7\230\1\0\1\u016b"+ - "\1\235\1\236\1\235\1\0\1\235\1\u016b\1\0\1\235"+ - "\1\0\1\235\3\0\2\235\2\0\3\235\1\0\1\235"+ - "\7\0\1\u016b\2\235\1\u016b\2\235\1\u016b\2\235\1\0"+ - "\4\235\1\0\1\u016b\1\235\1\0\1\235\1\0\1\u016b"+ - "\2\235\6\0\1\u016c\5\0\1\u016c\3\0\1\367\5\0"+ - "\1\u016c\5\0\1\u016c\7\0\2\u016c\1\0\2\u016c\1\0"+ - "\2\u016c\7\0\2\u016c\3\0\2\u016c\7\0\1\u016d\5\0"+ - "\1\u016d\11\0\1\u016d\5\0\1\u016d\7\0\2\u016d\1\0"+ - "\2\u016d\1\0\2\u016d\7\0\2\u016d\3\0\2\u016d\12\0"+ - "\1\u0146\1\0\1\u0146\2\0\1\u0146\1\u0123\4\0\2\u0146"+ - "\53\0\1\u016e\1\u011e\1\u011f\1\u011e\1\0\1\u011e\1\u016e"+ - "\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u016e\2\u011e"+ - "\1\u016e\2\u011e\1\u016e\10\u011e\1\u016e\4\u011e\1\u016e\7\u011e"+ - "\1\0\1\u016f\1\u0121\1\u0149\1\u0121\1\u0170\1\u0121\1\u016f"+ - "\10\u0121\1\u0171\16\u0121\1\u016f\2\u0121\1\u016f\2\u0121\1\u016f"+ - "\10\u0121\1\u016f\4\u0121\1\u016f\7\u0121\1\0\1\u0172\1\u0122"+ - "\1\u014a\3\u0122\1\u0172\1\u0173\7\u0122\1\u0174\16\u0122\1\u0172"+ - "\2\u0122\1\u0172\2\u0122\1\u0172\10\u0122\1\u0172\4\u0122\1\u0172"+ - "\7\u0122\47\0\1\u0175\24\0\2\25\1\131\1\25\1\0"+ - "\2\25\1\0\1\25\1\0\1\25\3\0\2\25\2\0"+ - "\3\25\1\0\1\25\7\0\11\25\1\0\4\25\1\0"+ - "\2\25\1\0\1\25\1\0\3\25\6\0\1\u0176\1\134"+ - "\1\135\1\134\1\0\1\134\1\u0176\1\0\1\134\1\0"+ - "\1\134\3\0\2\134\2\0\3\134\1\0\1\134\7\0"+ - "\1\u0176\2\134\1\u0176\2\134\1\u0176\2\134\1\0\4\134"+ - "\1\0\1\u0176\1\134\1\0\1\134\1\0\1\u0176\2\134"+ - "\6\0\1\u0177\1\136\1\137\1\136\1\0\1\136\1\u0177"+ - "\1\0\1\136\1\0\1\136\3\0\2\136\2\0\3\136"+ - "\1\0\1\136\7\0\1\u0177\2\136\1\u0177\2\136\1\u0177"+ - "\2\136\1\0\4\136\1\0\1\u0177\1\136\1\0\1\136"+ - "\1\0\1\u0177\2\136\54\0\1\u0178\65\0\2\u0179\30\0"+ - "\1\u017a\1\341\1\342\1\341\1\0\1\341\1\u017a\1\0"+ - "\1\341\1\u0103\1\341\3\0\2\341\2\0\3\341\1\0"+ - "\1\341\7\0\1\u017a\2\341\1\u017a\2\341\1\u017a\2\341"+ - "\1\0\4\341\1\0\1\u017a\1\341\1\0\1\341\1\0"+ - "\1\u017a\2\341\6\0\1\u017b\1\147\1\150\1\147\1\0"+ - "\1\147\1\u017b\1\0\1\147\1\0\1\147\3\0\2\147"+ - "\2\0\3\147\1\260\1\147\7\0\1\u017b\2\147\1\u017b"+ - "\2\147\1\u017b\2\147\1\0\4\147\1\0\1\u017b\1\147"+ - "\1\0\1\147\1\0\1\u017b\2\147\6\0\1\u017c\1\151"+ - "\1\152\1\151\1\153\1\151\1\u017c\27\151\1\u017c\2\151"+ - "\1\u017c\2\151\1\u017c\10\151\1\u017c\4\151\1\u017c\7\151"+ - "\1\0\1\u017d\1\154\1\155\3\154\1\u017d\1\153\26\154"+ - "\1\u017d\2\154\1\u017d\2\154\1\u017d\10\154\1\u017d\4\154"+ - "\1\u017d\7\154\1\0\1\u017e\1\157\1\160\1\157\1\161"+ - "\1\157\1\u017e\27\157\1\u017e\2\157\1\u017e\2\157\1\u017e"+ - "\10\157\1\u017e\4\157\1\u017e\7\157\1\0\1\u017f\1\162"+ - "\1\163\3\162\1\u017f\1\161\26\162\1\u017f\2\162\1\u017f"+ - "\2\162\1\u017f\10\162\1\u017f\4\162\1\u017f\7\162\1\0"+ - "\1\u0180\1\u010a\1\u010b\1\u010a\1\0\1\u010a\1\u0180\1\0"+ - "\1\u010a\1\u010e\13\u010a\1\0\10\u010a\1\u0180\2\u010a\1\u0180"+ - "\2\u010a\1\u0180\10\u010a\1\u0180\4\u010a\1\u0180\7\u010a\1\0"+ - "\1\u0181\1\u010c\1\u0135\1\u010c\1\u0132\1\u010c\1\u0181\27\u010c"+ - "\1\u0181\2\u010c\1\u0181\2\u010c\1\u0181\10\u010c\1\u0181\4\u010c"+ - "\1\u0181\7\u010c\1\0\2\u010c\1\u0135\2\u0132\1\u015a\2\u010c"+ - "\1\u015a\1\u0182\4\u010c\2\u0132\52\u010c\1\0\2\u010c\1\u0135"+ - "\1\0\1\u0132\12\u010c\1\0\52\u010c\1\0\1\u0183\1\u010d"+ - "\1\u0136\3\u010d\1\u0183\1\u0132\26\u010d\1\u0183\2\u010d\1\u0183"+ - "\2\u010d\1\u0183\10\u010d\1\u0183\4\u010d\1\u0183\7\u010d\1\0"+ - "\2\u010d\1\u0136\1\u0132\1\u010d\1\u015d\1\u010d\1\u0132\1\u015d"+ - "\1\u0184\4\u010d\2\u0132\52\u010d\1\0\2\u010d\1\u0136\1\0"+ - "\3\u010d\1\u0132\7\u010d\1\0\52\u010d\1\0\2\51\1\165"+ - "\1\51\1\0\2\51\1\0\1\51\1\0\1\51\3\0"+ - "\2\51\2\0\3\51\1\0\1\51\7\0\11\51\1\0"+ - "\4\51\1\0\2\51\1\0\1\51\1\0\3\51\6\0"+ - "\2\55\1\170\1\55\1\0\2\55\1\0\1\55\1\0"+ - "\1\55\3\0\2\55\2\0\3\55\1\0\1\55\7\0"+ - "\11\55\1\0\4\55\1\0\2\55\1\0\1\55\1\0"+ - "\3\55\6\0\2\62\1\173\1\62\1\0\2\62\1\0"+ - "\1\62\1\0\1\62\3\0\2\62\2\0\3\62\1\0"+ - "\1\62\7\0\11\62\1\0\4\62\1\0\2\62\1\0"+ - "\1\62\1\0\3\62\6\0\2\72\1\200\1\72\1\0"+ - "\2\72\1\0\1\72\1\0\1\72\3\0\2\72\2\0"+ - "\3\72\1\0\1\72\7\0\11\72\1\0\4\72\1\0"+ - "\2\72\1\0\1\72\1\0\3\72\6\0\2\100\1\203"+ - "\1\100\1\0\2\100\1\0\1\100\1\0\1\100\3\0"+ - "\2\100\2\0\3\100\1\0\1\100\7\0\11\100\1\0"+ - "\4\100\1\0\2\100\1\0\1\100\1\0\3\100\6\0"+ - "\1\u0185\1\205\1\206\1\205\1\207\1\205\1\u0185\27\205"+ - "\1\u0185\2\205\1\u0185\2\205\1\u0185\10\205\1\u0185\4\205"+ - "\1\u0185\7\205\1\0\1\u0186\1\210\1\211\3\210\1\u0186"+ - "\1\207\26\210\1\u0186\2\210\1\u0186\2\210\1\u0186\10\210"+ - "\1\u0186\4\210\1\u0186\7\210\1\0\2\105\1\213\1\105"+ - "\1\0\2\105\1\0\1\105\1\0\1\105\3\0\2\105"+ - "\2\0\3\105\1\0\1\105\7\0\11\105\1\0\4\105"+ - "\1\0\2\105\1\0\1\105\1\0\3\105\6\0\1\u0187"+ - "\1\216\1\217\1\216\1\0\1\216\1\u0187\1\0\1\216"+ - "\1\0\1\216\3\0\2\216\2\0\3\216\1\0\1\216"+ - "\7\0\1\u0187\2\216\1\u0187\2\216\1\u0187\2\216\1\0"+ - "\4\216\1\0\1\u0187\1\216\1\0\1\216\1\0\1\u0187"+ - "\2\216\6\0\2\113\1\222\1\113\1\0\2\113\1\0"+ - "\1\113\1\0\1\113\3\0\2\113\2\0\3\113\1\223"+ - "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+ - "\1\113\1\0\3\113\6\0\1\u0188\1\225\1\226\1\225"+ - "\1\227\1\225\1\u0188\27\225\1\u0188\2\225\1\u0188\2\225"+ - "\1\u0188\10\225\1\u0188\4\225\1\u0188\7\225\1\0\1\u0189"+ - "\1\230\1\231\3\230\1\u0189\1\227\26\230\1\u0189\2\230"+ - "\1\u0189\2\230\1\u0189\10\230\1\u0189\4\230\1\u0189\7\230"+ - "\1\0\1\u018a\1\235\1\236\1\235\1\0\1\235\1\u018a"+ - "\1\0\1\235\1\0\1\235\3\0\2\235\2\0\3\235"+ - "\1\0\1\235\7\0\1\u018a\2\235\1\u018a\2\235\1\u018a"+ - "\2\235\1\0\4\235\1\0\1\u018a\1\235\1\0\1\235"+ - "\1\0\1\u018a\2\235\6\0\1\u018b\5\0\1\u018b\3\0"+ - "\1\367\5\0\1\u018b\5\0\1\u018b\7\0\2\u018b\1\0"+ - "\2\u018b\1\0\2\u018b\7\0\2\u018b\3\0\2\u018b\7\0"+ - "\1\u018c\5\0\1\u018c\11\0\1\u018c\5\0\1\u018c\7\0"+ - "\2\u018c\1\0\2\u018c\1\0\2\u018c\7\0\2\u018c\3\0"+ - "\2\u018c\7\0\1\u018d\1\u011e\1\u011f\1\u011e\1\0\1\u011e"+ - "\1\u018d\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u018d"+ - "\2\u011e\1\u018d\2\u011e\1\u018d\10\u011e\1\u018d\4\u011e\1\u018d"+ - "\7\u011e\1\0\1\u018e\1\u0121\1\u0149\1\u0121\1\u0146\1\u0121"+ - "\1\u018e\27\u0121\1\u018e\2\u0121\1\u018e\2\u0121\1\u018e\10\u0121"+ - "\1\u018e\4\u0121\1\u018e\7\u0121\1\0\2\u0121\1\u0149\2\u0146"+ - "\1\u0170\2\u0121\1\u0170\1\u018f\4\u0121\2\u0146\52\u0121\1\0"+ - "\2\u0121\1\u0149\1\0\1\u0146\12\u0121\1\0\52\u0121\1\0"+ - "\1\u0190\1\u0122\1\u014a\3\u0122\1\u0190\1\u0146\26\u0122\1\u0190"+ - "\2\u0122\1\u0190\2\u0122\1\u0190\10\u0122\1\u0190\4\u0122\1\u0190"+ - "\7\u0122\1\0\2\u0122\1\u014a\1\u0146\1\u0122\1\u0173\1\u0122"+ - "\1\u0146\1\u0173\1\u0191\4\u0122\2\u0146\52\u0122\1\0\2\u0122"+ - "\1\u014a\1\0\3\u0122\1\u0146\7\u0122\1\0\52\u0122\42\0"+ - "\2\u0192\30\0\2\134\1\135\1\134\1\0\2\134\1\0"+ - "\1\134\1\0\1\134\3\0\2\134\2\0\3\134\1\0"+ - "\1\134\7\0\11\134\1\0\4\134\1\0\2\134\1\0"+ - "\1\134\1\0\3\134\6\0\2\136\1\137\1\136\1\0"+ - "\2\136\1\0\1\136\1\0\1\136\3\0\2\136\2\0"+ - "\3\136\1\0\1\136\7\0\11\136\1\0\4\136\1\0"+ - "\2\136\1\0\1\136\1\0\3\136\44\0\2\u0193\33\0"+ - "\1\u0194\1\341\1\342\1\341\1\0\1\341\1\u0194\1\0"+ - "\1\341\1\u0103\1\341\3\0\2\341\2\0\3\341\1\0"+ - "\1\341\7\0\1\u0194\2\341\1\u0194\2\341\1\u0194\2\341"+ - "\1\0\4\341\1\0\1\u0194\1\341\1\0\1\341\1\0"+ - "\1\u0194\2\341\6\0\2\147\1\150\1\147\1\0\2\147"+ - "\1\0\1\147\1\0\1\147\3\0\2\147\2\0\3\147"+ - "\1\260\1\147\7\0\11\147\1\0\4\147\1\0\2\147"+ - "\1\0\1\147\1\0\3\147\6\0\2\151\1\152\1\151"+ - "\1\153\65\151\1\0\2\154\1\155\4\154\1\153\62\154"+ - "\1\0\2\157\1\160\1\157\1\161\65\157\1\0\2\162"+ - "\1\163\4\162\1\161\62\162\1\0\1\u0195\1\u010a\1\u010b"+ - "\1\u010a\1\0\1\u010a\1\u0195\1\0\1\u010a\1\u010e\13\u010a"+ - "\1\0\10\u010a\1\u0195\2\u010a\1\u0195\2\u010a\1\u0195\10\u010a"+ - "\1\u0195\4\u010a\1\u0195\7\u010a\1\0\1\u0196\1\u010c\1\u0135"+ - "\1\u010c\1\u0132\1\u010c\1\u0196\27\u010c\1\u0196\2\u010c\1\u0196"+ - "\2\u010c\1\u0196\10\u010c\1\u0196\4\u010c\1\u0196\7\u010c\1\0"+ - "\1\u0197\1\u010d\1\u0136\3\u010d\1\u0197\1\u0132\26\u010d\1\u0197"+ - "\2\u010d\1\u0197\2\u010d\1\u0197\10\u010d\1\u0197\4\u010d\1\u0197"+ - "\7\u010d\1\0\2\205\1\206\1\205\1\207\65\205\1\0"+ - "\2\210\1\211\4\210\1\207\62\210\1\0\2\216\1\217"+ - "\1\216\1\0\2\216\1\0\1\216\1\0\1\216\3\0"+ - "\2\216\2\0\3\216\1\0\1\216\7\0\11\216\1\0"+ - "\4\216\1\0\2\216\1\0\1\216\1\0\3\216\6\0"+ - "\2\225\1\226\1\225\1\227\65\225\1\0\2\230\1\231"+ - "\4\230\1\227\62\230\1\0\2\235\1\236\1\235\1\0"+ - "\2\235\1\0\1\235\1\0\1\235\3\0\2\235\2\0"+ - "\3\235\1\0\1\235\7\0\11\235\1\0\4\235\1\0"+ - "\2\235\1\0\1\235\1\0\3\235\20\0\1\367\60\0"+ - "\1\u0198\5\0\1\u0198\11\0\1\u0198\5\0\1\u0198\7\0"+ - "\2\u0198\1\0\2\u0198\1\0\2\u0198\7\0\2\u0198\3\0"+ - "\2\u0198\7\0\1\u0199\1\u011e\1\u011f\1\u011e\1\0\1\u011e"+ - "\1\u0199\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u0199"+ - "\2\u011e\1\u0199\2\u011e\1\u0199\10\u011e\1\u0199\4\u011e\1\u0199"+ - "\7\u011e\1\0\1\u019a\1\u0121\1\u0149\1\u0121\1\u0146\1\u0121"+ - "\1\u019a\27\u0121\1\u019a\2\u0121\1\u019a\2\u0121\1\u019a\10\u0121"+ - "\1\u019a\4\u0121\1\u019a\7\u0121\1\0\1\u019b\1\u0122\1\u014a"+ - "\3\u0122\1\u019b\1\u0146\26\u0122\1\u019b\2\u0122\1\u019b\2\u0122"+ - "\1\u019b\10\u0122\1\u019b\4\u0122\1\u019b\7\u0122\65\0\1\u019c"+ - "\52\0\2\u019d\25\0\1\u019e\1\341\1\342\1\341\1\0"+ - "\1\341\1\u019e\1\0\1\341\1\u0103\1\341\3\0\2\341"+ - "\2\0\3\341\1\0\1\341\7\0\1\u019e\2\341\1\u019e"+ - "\2\341\1\u019e\2\341\1\0\4\341\1\0\1\u019e\1\341"+ - "\1\0\1\341\1\0\1\u019e\2\341\6\0\1\u019f\1\u010a"+ - "\1\u010b\1\u010a\1\0\1\u010a\1\u019f\1\0\1\u010a\1\u010e"+ - "\13\u010a\1\0\10\u010a\1\u019f\2\u010a\1\u019f\2\u010a\1\u019f"+ - "\10\u010a\1\u019f\4\u010a\1\u019f\7\u010a\1\0\1\u01a0\1\u010c"+ - "\1\u0135\1\u010c\1\u0132\1\u010c\1\u01a0\27\u010c\1\u01a0\2\u010c"+ - "\1\u01a0\2\u010c\1\u01a0\10\u010c\1\u01a0\4\u010c\1\u01a0\7\u010c"+ - "\1\0\1\u01a1\1\u010d\1\u0136\3\u010d\1\u01a1\1\u0132\26\u010d"+ - "\1\u01a1\2\u010d\1\u01a1\2\u010d\1\u01a1\10\u010d\1\u01a1\4\u010d"+ - "\1\u01a1\7\u010d\1\0\1\u01a2\5\0\1\u01a2\11\0\1\u01a2"+ - "\5\0\1\u01a2\7\0\2\u01a2\1\0\2\u01a2\1\0\2\u01a2"+ - "\7\0\2\u01a2\3\0\2\u01a2\7\0\1\u01a3\1\u011e\1\u011f"+ - "\1\u011e\1\0\1\u011e\1\u01a3\1\0\1\u011e\1\u0123\13\u011e"+ - "\1\0\10\u011e\1\u01a3\2\u011e\1\u01a3\2\u011e\1\u01a3\10\u011e"+ - "\1\u01a3\4\u011e\1\u01a3\7\u011e\1\0\1\u01a4\1\u0121\1\u0149"+ - "\1\u0121\1\u0146\1\u0121\1\u01a4\27\u0121\1\u01a4\2\u0121\1\u01a4"+ - "\2\u0121\1\u01a4\10\u0121\1\u01a4\4\u0121\1\u01a4\7\u0121\1\0"+ - "\1\u01a5\1\u0122\1\u014a\3\u0122\1\u01a5\1\u0146\26\u0122\1\u01a5"+ - "\2\u0122\1\u01a5\2\u0122\1\u01a5\10\u0122\1\u01a5\4\u0122\1\u01a5"+ - "\7\u0122\47\0\1\u01a6\24\0\2\341\1\342\1\341\1\0"+ - "\2\341\1\0\1\341\1\u0103\1\341\3\0\2\341\2\0"+ - "\3\341\1\0\1\341\7\0\11\341\1\0\4\341\1\0"+ - "\2\341\1\0\1\341\1\0\3\341\6\0\1\u01a7\1\u010a"+ - "\1\u010b\1\u010a\1\0\1\u010a\1\u01a7\1\0\1\u010a\1\u010e"+ - "\13\u010a\1\0\10\u010a\1\u01a7\2\u010a\1\u01a7\2\u010a\1\u01a7"+ - "\10\u010a\1\u01a7\4\u010a\1\u01a7\7\u010a\1\0\1\u01a8\1\u010c"+ - "\1\u0135\1\u010c\1\u0132\1\u010c\1\u01a8\27\u010c\1\u01a8\2\u010c"+ - "\1\u01a8\2\u010c\1\u01a8\10\u010c\1\u01a8\4\u010c\1\u01a8\7\u010c"+ - "\1\0\1\u01a9\1\u010d\1\u0136\3\u010d\1\u01a9\1\u0132\26\u010d"+ - "\1\u01a9\2\u010d\1\u01a9\2\u010d\1\u01a9\10\u010d\1\u01a9\4\u010d"+ - "\1\u01a9\7\u010d\1\0\1\u01aa\1\u011e\1\u011f\1\u011e\1\0"+ - "\1\u011e\1\u01aa\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e"+ - "\1\u01aa\2\u011e\1\u01aa\2\u011e\1\u01aa\10\u011e\1\u01aa\4\u011e"+ - "\1\u01aa\7\u011e\1\0\1\u01ab\1\u0121\1\u0149\1\u0121\1\u0146"+ - "\1\u0121\1\u01ab\27\u0121\1\u01ab\2\u0121\1\u01ab\2\u0121\1\u01ab"+ - "\10\u0121\1\u01ab\4\u0121\1\u01ab\7\u0121\1\0\1\u01ac\1\u0122"+ - "\1\u014a\3\u0122\1\u01ac\1\u0146\26\u0122\1\u01ac\2\u0122\1\u01ac"+ - "\2\u0122\1\u01ac\10\u0122\1\u01ac\4\u0122\1\u01ac\7\u0122\1\0"+ - "\2\u010a\1\u010b\1\u010a\1\0\2\u010a\1\0\1\u010a\1\u010e"+ - "\13\u010a\1\0\44\u010a\1\0\1\u01ad\1\u010c\1\u0135\1\u010c"+ - "\1\u0132\1\u010c\1\u01ad\27\u010c\1\u01ad\2\u010c\1\u01ad\2\u010c"+ - "\1\u01ad\10\u010c\1\u01ad\4\u010c\1\u01ad\7\u010c\1\0\1\u01ae"+ - "\1\u010d\1\u0136\3\u010d\1\u01ae\1\u0132\26\u010d\1\u01ae\2\u010d"+ - "\1\u01ae\2\u010d\1\u01ae\10\u010d\1\u01ae\4\u010d\1\u01ae\7\u010d"+ - "\1\0\2\u011e\1\u011f\1\u011e\1\0\2\u011e\1\0\1\u011e"+ - "\1\u0123\13\u011e\1\0\44\u011e\1\0\1\u01af\1\u0121\1\u0149"+ - "\1\u0121\1\u0146\1\u0121\1\u01af\27\u0121\1\u01af\2\u0121\1\u01af"+ - "\2\u0121\1\u01af\10\u0121\1\u01af\4\u0121\1\u01af\7\u0121\1\0"+ - "\1\u01b0\1\u0122\1\u014a\3\u0122\1\u01b0\1\u0146\26\u0122\1\u01b0"+ - "\2\u0122\1\u01b0\2\u0122\1\u01b0\10\u0122\1\u01b0\4\u0122\1\u01b0"+ - "\7\u0122\1\0\2\u010c\1\u0135\1\u010c\1\u0132\65\u010c\1\0"+ - "\2\u010d\1\u0136\4\u010d\1\u0132\62\u010d\1\0\2\u0121\1\u0149"+ - "\1\u0121\1\u0146\65\u0121\1\0\2\u0122\1\u014a\4\u0122\1\u0146"+ - "\62\u0122"; - - /** - * The transition table of the DFA - */ - final private static int yytrans [] = yy_unpack(yy_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" - }; - - /** - * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code> - */ - private final static byte YY_ATTRIBUTE[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 9, 1, 1, - 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 9, - 9, 1, 1, 1, 9, 1, 3, 9, 9, 1, 1, 1, 9, 1, 9, 1, - 1, 1, 1, 1, 1, 1, 1, 9, 9, 1, 1, 1, 1, 1, 9, 1, - 1, 1, 1, 1, 1, 1, 9, 3, 0, 1, 1, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 13, 7, 0, - 1, 1, 0, 1, 0, 0, 9, 0, 0, 1, 0, 1, 1, 1, 0, 0, - 9, 0, 9, 1, 0, 0, 9, 0, 0, 1, 1, 1, 1, 0, 0, 1, - 0, 0, 13, 7, 1, 9, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, - 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, - 1, 0, 1, 1, 1, 0, 1, 1, 1, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, - 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 9, - 0, 0, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 1, - 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 9, 0, 1, 1, 1, 0, 0, 9, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, - 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 9, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - - /** 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; - - /** 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; - - /** - * 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; - - /* user code: */ - private final static String UNDEFINED = "undefined"; - private String fBufferedContext = null; - private int fBufferedStart; -// private int fBufferedTextLength; - private int fBufferedLength; -// private StringBuffer fBufferedText = null; - private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance(); - private int fInitialState = YYINITIAL; - public final static int BUFFER_SIZE_NORMAL = 16384; - public final static int BUFFER_SIZE_SMALL = 256; - private int fInitialBufferSize = BUFFER_SIZE_NORMAL; - - public void setInitialState(int state) { - fInitialState = state; - } - - public void setInitialBufferSize(int size) { - fInitialBufferSize = size; - } - - /* user method */ - public final ITextRegion getNextToken() throws IOException { - String context; - String nextTokenType; - boolean spaceFollows; -// StringBuffer text; - int start; - int textLength; - int length; - if (fBufferedContext != null) { - context = fBufferedContext; -// text = fBufferedText; - start = fBufferedStart; - textLength = length = fBufferedLength; - - fBufferedContext = null; - } else { - context = primGetNextToken(); -// text = new StringBuffer(yytext()); - start = yychar; - textLength = length = yylength(); - } - - if (context != null) { - if (context == UNDEFINED) { - // undef -> concatenate undef's - nextTokenType = primGetNextToken(); - while (nextTokenType == UNDEFINED) { -// text.append(yytext()); - textLength += yylength(); - length = textLength; - nextTokenType = primGetNextToken(); - } - fBufferedContext = nextTokenType; -// fBufferedText = new StringBuffer(yytext()); - fBufferedStart = yychar; - fBufferedLength = yylength(); - } else { - nextTokenType = null; - spaceFollows = false; - if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration value can contain VALUE_S - nextTokenType = primGetNextToken(); - spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S); - } else if (canContainSpace(context)) { - nextTokenType = primGetNextToken(); - spaceFollows = (nextTokenType == CSS_S); - } - if (nextTokenType != null) { // nextToken is retrieved - if (spaceFollows) { - // next is space -> append -// text.append(yytext()); - length += yylength(); - } else { - // next is NOT space -> push this for next time, return itself - fBufferedContext = nextTokenType; -// fBufferedText = new StringBuffer(yytext()); - fBufferedStart = yychar; - fBufferedLength = yylength(); - } - } - } - } - - if (context != null) { - if (context == UNDEFINED) { - context = CSS_UNKNOWN; - } - return fRegionFactory.createRegion(context, start, textLength, length); - } else { - return null; - } - } - - /* user method */ - /* for standalone use */ - public final List parseText() throws IOException { - List tokens = new ArrayList(); - - CSSTextToken token; - for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) { - token = new CSSTextToken(); - token.kind = kind; - token.start = yychar; - token.length = yylength(); - token.image = yytext(); - tokens.add(token); - } - - return tokens; - } - - /* user method */ - private boolean canContainSpace(String type) { - if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) { - return false; - } else { - return true; - } - } - - /* user method */ - public final int getOffset() { - return yychar; - } - - /* user method */ - public final boolean isEOF() { - return yy_atEOF; - } - - /* user method */ - public void reset(char[] charArray) { - reset(new CharArrayReader(charArray), 0); - } - - /* user method */ - public final void reset(java.io.Reader in, int newOffset) { - /** the input device */ - yy_reader = in; - - /** the current state of the DFA */ - yy_state = 0; - - /** the current lexical state */ - yy_lexical_state = fInitialState; //YYINITIAL; - - /** this buffer contains the current text to be matched and is - the source of the yytext() string */ - if (yy_buffer.length != fInitialBufferSize) { - yy_buffer = new char[fInitialBufferSize]; - } - 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; - - /** number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /** the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start of the - * matched text - */ - yycolumn = 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; - - /* user variables */ - // fUndefined.delete(0, fUndefined.length()); - } - - /* user method */ - public CSSTokenizer() { - super(); - } - - - - /** - * 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 CSSTokenizer(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 CSSTokenizer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed DFA transition table. - * - * @param packed the packed transition table - * @return the unpacked transition table - */ - private static int [] yy_unpack(String packed) { - int [] trans = new int[21004]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 13906) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - value--; - do trans[j++] = value; while (--count > 0); - } - return trans; - } - - /** - * 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 < 170) { - 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; - } - - - /** - * 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; - - yy_pushbackPos = -1; - boolean yy_was_pushback; - - while (true) { - - yychar+= yylength(); - - boolean yy_counted = false; - for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos; - yy_currentPos++) { - switch (yy_buffer[yy_currentPos]) { - case '\r': - yyline++; - yy_counted = true; - break; - case '\n': - if (yy_counted) - yy_counted = false; - else { - yyline++; - } - break; - default: - yy_counted = false; - } - } - - if (yy_counted) { - if ( yy_advance() == '\n' ) yyline--; - if ( !yy_atEOF ) yy_currentPos--; - } - - yy_action = -1; - - yy_currentPos = yy_startRead = yy_markedPos; - - yy_state = yy_lexical_state; - - yy_was_pushback = false; - - yy_forAction: { - while (true) { - - yy_input = yy_advance(); - - if ( yy_input == YYEOF ) break yy_forAction; - - int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ]; - if (yy_next == -1) break yy_forAction; - yy_state = yy_next; - - int yy_attributes = YY_ATTRIBUTE[yy_state]; - if ( (yy_attributes & 2) > 0 ) - yy_pushbackPos = yy_currentPos; - - if ( (yy_attributes & 1) > 0 ) { - yy_was_pushback = (yy_attributes & 4) > 0; - yy_action = yy_state; - yy_markedPos = yy_currentPos; - if ( (yy_attributes & 8) > 0 ) break yy_forAction; - } - - } - } - - if (yy_was_pushback) - yy_markedPos = yy_pushbackPos; - - switch (yy_action) { - - case 421: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IMPORTANT; } - case 433: break; - case 412: - { yybegin(ST_FONT_FACE_DELIMITER); return CSS_FONT_FACE; } - case 434: break; - case 375: - { yybegin(ST_CHARSET_NAME); return CSS_CHARSET; } - case 435: break; - case 335: - { yybegin(ST_IMPORT_URI); return CSS_IMPORT; } - case 436: break; - case 297: - { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA; } - case 437: break; - case 290: - case 327: - case 398: - case 400: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_URI; } - case 438: break; - case 269: - case 307: - case 385: - case 387: - { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; } - case 439: break; - case 255: - { yybegin(ST_PAGE_PSEUDO_PAGE); return CSS_PAGE; } - case 440: break; - case 218: - { return CSS_COMMENT; } - case 441: break; - case 217: - { return CSS_CDO; } - case 442: break; - case 211: - case 245: - case 283: - case 284: - case 323: - case 324: - case 363: - case 364: - case 394: - case 395: - case 407: - case 417: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_UNICODE_RANGE; } - case 443: break; - case 165: - { return CSS_CDC; } - case 444: break; - case 162: - { return CSS_DECLARATION_VALUE_S; } - case 445: break; - case 156: - case 210: - case 244: - case 282: - case 322: - case 362: - case 393: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_HASH; } - case 446: break; - case 150: - case 205: - case 208: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_STRING; } - case 447: break; - case 57: - case 59: - case 128: - case 129: - case 193: - case 235: - case 273: - case 313: - case 353: - { yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR); return CSS_SELECTOR_ATTRIBUTE_NAME; } - case 448: break; - case 56: - { yybegin(ST_SELECTOR); return CSS_SELECTOR_SEPARATOR; } - case 449: break; - case 55: - case 125: - { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; } - case 450: break; - case 52: - { yybegin(ST_DECLARATION); return CSS_LBRACE; } - case 451: break; - case 49: - case 51: - case 123: - case 124: - case 192: - case 234: - case 272: - case 312: - case 352: - { yybegin(ST_PAGE_DELIMITER); return CSS_PAGE_SELECTOR; } - case 452: break; - case 48: - { yybegin(YYINITIAL); return CSS_LBRACE; } - case 453: break; - case 47: - { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA_SEPARATOR; } - case 454: break; - case 44: - case 46: - case 120: - case 121: - case 191: - case 233: - case 271: - case 311: - case 351: - { yybegin(ST_MEDIA_DELIMITER); return CSS_MEDIUM; } - case 455: break; - case 43: - { yybegin(ST_IMPORT_MEDIUM); return CSS_MEDIA_SEPARATOR; } - case 456: break; - case 20: - case 23: - case 89: - case 90: - case 164: - case 214: - case 249: - case 292: - case 331: - { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ELEMENT_NAME; } - case 457: break; - case 22: - case 54: - case 87: - case 126: - case 163: - { return CSS_S; } - case 458: break; - case 27: - { yybegin(YYINITIAL); return CSS_RBRACE; } - case 459: break; - case 29: - { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_UNIVERSAL; } - case 460: break; - case 32: - { yybegin(ST_SELECTOR_ATTRIBUTE_NAME); return CSS_SELECTOR_ATTRIBUTE_START; } - case 461: break; - case 36: - { yybegin(YYINITIAL); return CSS_DELIMITER; } - case 462: break; - case 40: - case 42: - case 117: - case 118: - case 190: - case 232: - case 270: - case 310: - case 350: - { yybegin(ST_IMPORT_DELIMITER); return CSS_MEDIUM; } - case 463: break; - case 60: - { yybegin(ST_SELECTOR_ATTRIBUTE_VALUE); return CSS_SELECTOR_ATTRIBUTE_OPERATOR; } - case 464: break; - case 62: - { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END; } - case 465: break; - case 63: - case 67: - case 131: - case 134: - case 137: - case 194: - case 196: - case 199: - case 236: - case 274: - case 314: - case 354: - { yybegin(ST_SELECTOR_ATTRIBUTE_END); return CSS_SELECTOR_ATTRIBUTE_VALUE; } - case 466: break; - case 68: - case 70: - case 139: - case 140: - case 201: - case 239: - case 277: - case 317: - case 357: - { yybegin(ST_DECLARATION_SEPARATOR); return CSS_DECLARATION_PROPERTY; } - case 467: break; - case 71: - { yybegin(ST_DECLARATION); return CSS_DECLARATION_DELIMITER; } - case 468: break; - case 72: - { yybegin(ST_DECLARATION_PRE_VALUE); return CSS_DECLARATION_SEPARATOR; } - case 469: break; - case 73: - case 155: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_NUMBER; } - case 470: break; - case 74: - case 79: - case 83: - case 147: - case 153: - case 154: - case 159: - case 203: - case 212: - case 241: - case 279: - case 319: - case 359: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IDENT; } - case 471: break; - case 78: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE; } - case 472: break; - case 85: - case 86: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_OPERATOR; } - case 473: break; - case 91: - case 166: - case 215: - case 250: - case 293: - case 332: - case 373: - { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_CLASS; } - case 474: break; - case 93: - case 167: - case 216: - case 251: - case 294: - case 333: - case 374: - { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ID; } - case 475: break; - case 102: - case 176: - case 226: - case 258: - case 260: - case 300: - case 338: - case 378: - { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; } - case 476: break; - case 106: - case 178: - case 181: - { yybegin(ST_CHARSET_DELIMITER); return CSS_STRING; } - case 477: break; - case 112: - case 184: - case 187: - { yybegin(ST_IMPORT_MEDIUM); return CSS_STRING; } - case 478: break; - case 141: - case 202: - case 240: - case 278: - case 318: - case 358: - case 390: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_DIMENSION; } - case 479: break; - case 144: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PERCENTAGE; } - case 480: break; - case 146: - case 247: - { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_FUNCTION; } - case 481: break; - case 19: - case 21: - case 24: - case 25: - case 26: - case 28: - case 30: - case 31: - case 33: - case 34: - case 35: - case 37: - case 38: - case 39: - case 41: - case 45: - case 50: - case 53: - case 58: - case 61: - case 64: - case 65: - case 66: - case 69: - case 75: - case 76: - case 77: - case 80: - case 81: - case 82: - case 84: - { - return UNDEFINED; - } - case 482: break; - default: - if (yy_input == YYEOF && yy_startRead == yy_currentPos) { - yy_atEOF = true; - return null; - } - 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++) { - CSSTokenizer scanner = null; - try { - scanner = new CSSTokenizer( new java.io.FileReader(argv[i]) ); - } - catch (java.io.FileNotFoundException e) { - System.out.println("File not found : \""+argv[i]+"\""); - System.exit(1); - } - catch (java.io.IOException e) { - System.out.println("Error opening file \""+argv[i]+"\""); - System.exit(1); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Usage : java CSSTokenizer <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); - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex deleted file mode 100644 index 86481a49a8..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex +++ /dev/null @@ -1,511 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2004 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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.css.core.internal.parser;
-
-import java.io.CharArrayReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.css.core.internal.parser.regions.CSSTextRegionFactory;
-import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
-import org.eclipse.wst.css.core.internal.parserz.CSSTextToken;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-
-%%
-
-%public
-%class CSSTokenizer
-%implements CSSRegionContexts, ICSSTokenizer
-%function primGetNextToken
-%type String
-%char
-%line
-%unicode
-%caseless
-%debug
-%pack
-
-%{
- private final static String UNDEFINED = "undefined";
- private String fBufferedContext = null;
- private int fBufferedStart;
-// private int fBufferedTextLength;
- private int fBufferedLength;
-// private StringBuffer fBufferedText = null;
- private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance();
- private int fInitialState = YYINITIAL;
- public final static int BUFFER_SIZE_NORMAL = 16384;
- public final static int BUFFER_SIZE_SMALL = 256;
- private int fInitialBufferSize = BUFFER_SIZE_NORMAL;
-
- public void setInitialState(int state) {
- fInitialState = state;
- }
-
- public void setInitialBufferSize(int size) {
- fInitialBufferSize = size;
- }
-
- /* user method */
- public final ITextRegion getNextToken() throws IOException {
- String context;
- String nextTokenType;
- boolean spaceFollows;
-// StringBuffer text;
- int start;
- int textLength;
- int length;
- if (fBufferedContext != null) {
- context = fBufferedContext;
-// text = fBufferedText;
- start = fBufferedStart;
- textLength = length = fBufferedLength;
-
- fBufferedContext = null;
- } else {
- context = primGetNextToken();
-// text = new StringBuffer(yytext());
- start = yychar;
- textLength = length = yylength();
- }
-
- if (context != null) {
- if (context == UNDEFINED) {
- // undef -> concatenate undef's
- nextTokenType = primGetNextToken();
- while (nextTokenType == UNDEFINED) {
-// text.append(yytext());
- textLength += yylength();
- length = textLength;
- nextTokenType = primGetNextToken();
- }
- fBufferedContext = nextTokenType;
-// fBufferedText = new StringBuffer(yytext());
- fBufferedStart = yychar;
- fBufferedLength = yylength();
- } else {
- nextTokenType = null;
- spaceFollows = false;
- if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration value can contain VALUE_S
- nextTokenType = primGetNextToken();
- spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S);
- } else if (canContainSpace(context)) {
- nextTokenType = primGetNextToken();
- spaceFollows = (nextTokenType == CSS_S);
- }
- if (nextTokenType != null) { // nextToken is retrieved
- if (spaceFollows) {
- // next is space -> append
-// text.append(yytext());
- length += yylength();
- } else {
- // next is NOT space -> push this for next time, return itself
- fBufferedContext = nextTokenType;
-// fBufferedText = new StringBuffer(yytext());
- fBufferedStart = yychar;
- fBufferedLength = yylength();
- }
- }
- }
- }
-
- if (context != null) {
- if (context == UNDEFINED) {
- context = CSS_UNKNOWN;
- }
- return fRegionFactory.createRegion(context, start, textLength, length);
- } else {
- return null;
- }
- }
-
- /* user method */
- /* for standalone use */
- public final List parseText() throws IOException {
- List tokens = new ArrayList();
-
- CSSTextToken token;
- for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) {
- token = new CSSTextToken();
- token.kind = kind;
- token.start = yychar;
- token.length = yylength();
- token.image = yytext();
- tokens.add(token);
- }
-
- return tokens;
- }
-
- /* user method */
- private boolean canContainSpace(String type) {
- if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) {
- return false;
- } else {
- return true;
- }
- }
-
- /* user method */
- public final int getOffset() {
- return yychar;
- }
-
- /* user method */
- public final boolean isEOF() {
- return yy_atEOF;
- }
-
- /* user method */
- public void reset(char[] charArray) {
- reset(new CharArrayReader(charArray), 0);
- }
-
- /* user method */
- public final void reset(java.io.Reader in, int newOffset) {
- /** the input device */
- yy_reader = in;
-
- /** the current state of the DFA */
- yy_state = 0;
-
- /** the current lexical state */
- yy_lexical_state = fInitialState; //YYINITIAL;
-
- /** this buffer contains the current text to be matched and is
- the source of the yytext() string */
- if (yy_buffer.length != fInitialBufferSize) {
- yy_buffer = new char[fInitialBufferSize];
- }
- 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;
-
- /** number of newlines encountered up to the start of the matched text */
- yyline = 0;
-
- /** the number of characters up to the start of the matched text */
- yychar = 0;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
-// yycolumn = 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;
-
- /* user variables */
- // fUndefined.delete(0, fUndefined.length());
- }
-
- /* user method */
- public CSSTokenizer() {
- super();
- }
-
-%}
-
-%state ST_CHARSET_NAME
-%state ST_CHARSET_DELIMITER
-%state ST_IMPORT_URI
-%state ST_IMPORT_MEDIUM
-%state ST_IMPORT_DELIMITER
-%state ST_MEDIA_MEDIUM
-%state ST_MEDIA_DELIMITER
-%state ST_PAGE_PSEUDO_PAGE
-%state ST_PAGE_DELIMITER
-%state ST_FONT_FACE_DELIMITER
-%state ST_SELECTOR
-%state ST_SELECTOR_MODIFIER
-%state ST_SELECTOR_ATTRIBUTE_NAME
-%state ST_SELECTOR_ATTRIBUTE_OPERATOR
-%state ST_SELECTOR_ATTRIBUTE_VALUE
-%state ST_SELECTOR_ATTRIBUTE_END
-%state ST_DECLARATION
-%state ST_DECLARATION_SEPARATOR
-%state ST_DECLARATION_PRE_VALUE
-%state ST_DECLARATION_VALUE
-
-h = [0-9a-f]
-nonascii = [\u0080-\uffff]
-unicode = \\{h}{1,6}[ \t\r\n\f]?
-escape = {unicode}|\\[ -~\u0080-\uffff]
-
-
-
-nmstart = [_a-zA-Z]|{nonascii}|{escape}
-nmchar = [_a-zA-Z0-9-]|{nonascii}|{escape}
-string1 = \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\"
-string2 = \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\'
-
-ident = -?{nmstart}{nmchar}*
-
-name = {nmchar}+
-num = [+-]?([0-9]+|[0-9]*"."[0-9]+)
-string = {string1}|{string2}
-url = ([ !#$%&*-~]|{nonascii}|{escape})*
-s = [ \t\r\n\f]
-w = {s}*
-nl = \n|\r\n|\r|\f
-
-//range = \?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))
-
-hash = "#"{name}
-uri = ("url("{w}{string}{w}")"|"url("{w}{url}{w}")")
-function = {ident}"("
-unicode_range = "U"\+[0-9a-fA-F?]{1,6}("-"[0-9a-fA-F?]{1,6})?
-
-%%
-
-/*
- * *** global ***
- */
-
-{s}+ { return CSS_S; }
-"<!--" { return CSS_CDO; }
-"-->" { return CSS_CDC; }
-"}" { yybegin(YYINITIAL); return CSS_RBRACE; }
-\/\*[^*]*\*+([^/*][^*]*\*+)*\/ { return CSS_COMMENT; }
-
-//<YYINITIAL> {
-// "@import" { yybegin(ST_IMPORT_URI); return CSS_IMPORT; }
-//}
-
-/*
- * *** charset rule ***
- * CHARSET_SYM S* STRING S* ';'
- */
-
-"@charset" { yybegin(ST_CHARSET_NAME); return CSS_CHARSET; }
-
-<ST_CHARSET_NAME> {
- {string} { yybegin(ST_CHARSET_DELIMITER); return CSS_STRING; }
-}
-
-<ST_CHARSET_DELIMITER> {
- ";" { yybegin(YYINITIAL); return CSS_DELIMITER; }
-}
-
-/*
- * *** import rule ***
- * IMPORT_SYM S* [STRING|URI] S* [ medium [ COMMA S* medium]* ]? ';' S*
- */
-
-"@import" { yybegin(ST_IMPORT_URI); return CSS_IMPORT; }
-
-<ST_IMPORT_URI> {
- {string} { yybegin(ST_IMPORT_MEDIUM); return CSS_STRING; }
- // "url("{w}{string}{w}")" { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }
- // "url("{w}{url}{w}")" { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }
- {uri} { yybegin(ST_IMPORT_MEDIUM); return CSS_URI; }
- ";" { yybegin(YYINITIAL); return CSS_DELIMITER; }
-}
-
-<ST_IMPORT_MEDIUM> {
- {ident} { yybegin(ST_IMPORT_DELIMITER); return CSS_MEDIUM; }
- ";" { yybegin(YYINITIAL); return CSS_DELIMITER; }
-}
-
-<ST_IMPORT_DELIMITER> {
- ";" { yybegin(YYINITIAL); return CSS_DELIMITER; }
- "," { yybegin(ST_IMPORT_MEDIUM); return CSS_MEDIA_SEPARATOR; }
-}
-
-/*
- * *** media rule ***
- * MEDIA_SYM S* medium [ COMMA S* medium ]* LBRACE S* ruleset* '}' S*
- */
-
-"@media" { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA; }
-
-/*
- * medium
- * IDENT S*
- */
-<ST_MEDIA_MEDIUM> {
- {ident} { yybegin(ST_MEDIA_DELIMITER); return CSS_MEDIUM; }
-}
-
-<ST_MEDIA_DELIMITER> {
- "{" { yybegin(YYINITIAL); return CSS_LBRACE; }
- "," { yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA_SEPARATOR; }
-}
-
-/*
- * *** page rule **
- * PAGE_SYM S* pseudo_page? S* LBRACE S* declaration [ ';' S* declaration ]* '}' S*
- */
-
-"@page" { yybegin(ST_PAGE_PSEUDO_PAGE); return CSS_PAGE; }
-
-/*
- * pseudo_page
- * ':' IDENT
- */
-
-<ST_PAGE_PSEUDO_PAGE> {
- ":"?{ident} { yybegin(ST_PAGE_DELIMITER); return CSS_PAGE_SELECTOR; }
- "{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }
-}
-
-<ST_PAGE_DELIMITER> {
- "{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }
-}
-
-/*
- * font-face
- * FONT_FACE_SYM S* '{' S* declaration [ ';' S* declaration '* '}' S*
- */
-
-"@font-face" { yybegin(ST_FONT_FACE_DELIMITER); return CSS_FONT_FACE; }
-
-<ST_FONT_FACE_DELIMITER> {
- "{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }
-}
-
-/*
- * selector
- * simple_selector [ combinator simple_selector ]*
- */
-
-/*
- * simple_selector
- * element_name [ HASH | class | attrib | pseudo ]* | [ HASH | class | attrib | pseudo ]+
- */
-
-<YYINITIAL, ST_SELECTOR_MODIFIER, ST_SELECTOR> {
- "*" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_UNIVERSAL; }
- {hash} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ID; }
-// ":"{ident} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }
- ":"{ident}("("{s}*{ident}{s}*")")? { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }
- "."{name} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_CLASS; }
- "[" { yybegin(ST_SELECTOR_ATTRIBUTE_NAME); return CSS_SELECTOR_ATTRIBUTE_START; }
-}
-
-<YYINITIAL, ST_SELECTOR> {
- {ident} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ELEMENT_NAME; }
-}
-
-<ST_SELECTOR_MODIFIER> {
- "," { yybegin(ST_SELECTOR); return CSS_SELECTOR_SEPARATOR; }
- // using LOOKAHEAD
- {s}+/[^+>\{] { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; }
- "+"|">" { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; }
- "{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }
-}
-
-/*
- * attrib
- * '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S* [ IDENT | STRING ] S* ]? ']'
- */
-
-<ST_SELECTOR_ATTRIBUTE_NAME> {
- {ident} { yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR); return CSS_SELECTOR_ATTRIBUTE_NAME; }
-}
-
-<ST_SELECTOR_ATTRIBUTE_OPERATOR> {
- "="|"~="|"|=" { yybegin(ST_SELECTOR_ATTRIBUTE_VALUE); return CSS_SELECTOR_ATTRIBUTE_OPERATOR; }
- "]" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END; }
-}
-
-<ST_SELECTOR_ATTRIBUTE_VALUE> {
- {ident}|{string} { yybegin(ST_SELECTOR_ATTRIBUTE_END); return CSS_SELECTOR_ATTRIBUTE_VALUE; }
-}
-
-<ST_SELECTOR_ATTRIBUTE_END> {
- "]" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END; }
-}
-
-/*
- * declaration
- * property ':' S* expr prio? | // empty //
- */
-
-<ST_DECLARATION> {
- {ident} { yybegin(ST_DECLARATION_SEPARATOR); return CSS_DECLARATION_PROPERTY; }
-}
-
-<ST_DECLARATION_SEPARATOR> {
- ":" { yybegin(ST_DECLARATION_PRE_VALUE); return CSS_DECLARATION_SEPARATOR; }
-}
-
-<ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {
- "!"{s}*"important" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IMPORTANT; }
-
-
- ")" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE; }
-
- // ordered following two rules deliberately, see
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=129902
- {num}{ident} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_DIMENSION; }
- {ident} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IDENT; }
-
-
- {num}"%" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PERCENTAGE; }
-
- {num} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_NUMBER; }
-
-
-
- {function} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_FUNCTION; }
- {string} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_STRING; }
- {uri} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_URI; }
- "#"{name} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_HASH; }
- {unicode_range} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_UNICODE_RANGE; }
- [,/] { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_OPERATOR; }
-}
-
-<ST_DECLARATION_VALUE> {
- {s}+/[^;}] { return CSS_DECLARATION_VALUE_S; }
-}
-
-<ST_DECLARATION, ST_DECLARATION_SEPARATOR, ST_DECLARATION_PRE_VALUE, ST_DECLARATION_VALUE> {
- ";" { yybegin(ST_DECLARATION); return CSS_DECLARATION_DELIMITER; }
- // "}" { yybegin(YYINITIAL); return CSS_RBRACE; }
-}
-
-
-//<YYINITIAL, ST_IMPORT_URI, ST_IMPORT_MEDIUM, ST_IMPORT_DELIMITER> {
-// \/\*[^*]*\*+([^/*][^*]*\*+)*\/ { return CSS_COMMENT; }
-// {s}+ { return CSS_S; }
-// . { return UNDEFINED; }
-//}
-
-//<YYINITIAL, ST_IMPORT_URI, ST_IMPORT_MEDIUM, ST_IMPORT_DELIMITER> {
-// [^ \t\r\n\f]+ { return CSS_UNKNOWN; }
-//}
-
-. {
- return UNDEFINED;
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd deleted file mode 100644 index 30fce787db..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@echo off
-set PATH=%PATH%;c:\jdk1.4\bin
-java -Xmx470000000 -cp JFlex\lib\sed-jflex.jar;. JFlex.Main JSPTokenizer -skel skeleton.sed
-java -Xmx470000000 -cp JFlex\lib\sed-jflex.jar;. JFlex.Main XMLTokenizer -skel skeleton.sed
-rm -f JSPTokenizer.java~ JSPTokenizer~ XMLTokenizer.java~ XMLTokenizer~
-copy XMLTokenizer.java ..\..\..\..\sedmodel\com\ibm\sed\parser\internal
-copy JSPTokenizer.java ..\..\..\..\sedmodel\com\ibm\sed\parser\internal
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh deleted file mode 100644 index f7872f3f4d..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh
-
-JAVADIR=C:/App/IBM/Java141/bin
-JAVAOPT=-Xmx470000000
-CLASSPATH=../../HTMLTokenizer/devel/JFlex/lib/sed-jflex.jar\;.
-DESTDIR=../../../../../org.eclipse.wst.sse.core.css/src/com/ibm/sse/model/css/internal/parser
-
-#export PATH=$PATH:/opt/IBMJava2-131/bin/:/opt/IBMJava2-13/bin/:/opt/jdk1.4
-#java -Xmx470000000 -cp JFlex/lib/sed-jflex.jar;. JFlex.Main CSSTokenizer -skel skeleton.sse
-
-$JAVADIR/java $JAVAOPT -cp $CLASSPATH JFlex.Main CSSTokenizer.jflex
-
-rm -f CSSTokenizer.java~ CSSTokenizer.jflex~
-cp -v CSSTokenizer.java $DESTDIR
-#$JAVADIR/javac $DESTDIR/*.java
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README deleted file mode 100644 index 3d820e1d21..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README +++ /dev/null @@ -1,9 +0,0 @@ -devel - the active development environment (sans JDK)
- - latest version of HTMLTokenizer specification and generated code
- - modified skeleton to prevent VM exits on unmatched input
- - "flex" scripts to run JFlex with modified skeleton
- - active RCS archive
-resources - backup/pristine resources
- - Unmodified JFlex 1.2.2 download
- - Separate modifications to the JFlex skeleton
- - W3C XML recommendation used for several of the HTMLTokenizer rules
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java deleted file mode 100644 index 46d9faff58..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java +++ /dev/null @@ -1,3706 +0,0 @@ -/* The following code was generated by JFlex 1.2.2 on 6/7/06 1:46 AM */ - -/******************************************************************************* - * Copyright (c) 2004, 2006 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 - *******************************************************************************/ - -/*nlsXXX*/ - -package org.eclipse.jst.jsp.core.internal.parser.internal; - -import java.io.CharArrayReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jst.jsp.core.internal.Logger; -import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker; -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer; -import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.util.Debug; -import org.eclipse.wst.sse.core.utils.StringUtils; -import org.eclipse.wst.xml.core.internal.parser.ContextRegionContainer; -import org.eclipse.wst.xml.core.internal.parser.IntStack; - - -/** - * This class is a scanner generated by - * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 - * on 6/7/06 1:46 AM from the specification file - * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt> - */ -public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - final public static int ST_JSP_VBL_DQUOTES = 52; - final public static int ST_JSP_VBL_SQUOTES = 51; - final public static int ST_JSP_VBL_SQUOTES_END = 53; - final public static int ST_XML_COMMENT_END = 4; - final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE = 21; - final public static int ST_JSP_EL_SQUOTES_END = 46; - final public static int ST_JSP_EL_DQUOTES = 45; - final public static int ST_JSP_EL = 43; - final public static int ST_BLOCK_TAG_SCAN = 36; - final public static int ST_JSP_EL_SQUOTES = 44; - final public static int ST_DHTML_ATTRIBUTE_VALUE = 14; - final public static int ST_XML_PI_ATTRIBUTE_NAME = 8; - final public static int ST_DHTML_TAG_CLOSE = 15; - final public static int ST_XML_ATTRIBUTE_VALUE_DQUOTED = 41; - final public static int ST_DHTML_EQUALS = 13; - final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10; - final public static int ST_XML_ATTRIBUTE_VALUE = 25; - final public static int ST_JSP_VBL = 50; - final public static int ST_JSP_SQUOTED_VBL = 56; - final public static int ST_XML_ATTRIBUTE_VALUE_SQUOTED = 40; - final public static int ST_XML_ATTRIBUTE_NAME = 23; - final public static int ST_XML_EQUALS = 24; - final public static int YYINITIAL = 0; - final public static int ST_JSP_DIRECTIVE_ATTRIBUTE_NAME = 19; - final public static int ST_JSP_CONTENT = 16; - final public static int ST_XML_DOCTYPE_ID_SYSTEM = 31; - final public static int ST_XML_ELEMENT_DECLARATION = 32; - final public static int ST_XML_DECLARATION_CLOSE = 27; - final public static int ST_JSP_DIRECTIVE_EQUALS = 20; - final public static int ST_JSP_VBL_DQUOTES_END = 54; - final public static int ST_JSP_DQUOTED_EL = 48; - final public static int ST_XML_DOCTYPE_DECLARATION = 28; - final public static int ST_CDATA_END = 2; - final public static int ST_PI_WS = 6; - final public static int ST_CDATA_TEXT = 1; - final public static int ST_JSP_DIRECTIVE_NAME_WHITESPACE = 18; - final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 33; - final public static int ST_XML_ATTLIST_DECLARATION = 34; - final public static int ST_JSP_EL_DQUOTES_END = 47; - final public static int ST_JSP_SQUOTED_EL = 49; - final public static int ST_JSP_COMMENT_END = 39; - final public static int ST_XML_PI_EQUALS = 9; - final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 35; - final public static int ST_XML_DOCTYPE_ID_PUBLIC = 30; - final public static int ST_JSP_DQUOTED_VBL = 55; - final public static int ST_DHTML_ATTRIBUTE_NAME = 12; - final public static int ST_ABORT_EMBEDDED = 42; - final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 29; - final public static int ST_JSP_COMMENT = 38; - final public static int ST_PI_CONTENT = 7; - final public static int ST_BLOCK_TAG_INTERNAL_SCAN = 37; - final public static int ST_PI = 5; - final public static int ST_XML_DECLARATION = 26; - final public static int ST_JSP_DIRECTIVE_NAME = 17; - final public static int ST_XML_TAG_NAME = 22; - final public static int ST_XML_PI_TAG_CLOSE = 11; - final public static int ST_XML_COMMENT = 3; - - /** - * Translates characters to character classes - */ - final private static String yycmap_packed = - "\11\0\1\5\1\26\2\0\1\17\22\0\1\17\1\25\1\12\1\63"+ - "\1\15\1\22\1\13\1\14\1\24\1\24\1\24\1\24\1\24\1\7"+ - "\1\6\1\3\12\20\1\11\1\70\1\1\1\50\1\2\1\4\1\21"+ - "\1\37\1\71\1\35\1\36\1\54\1\66\1\60\1\60\1\61\1\60"+ - "\1\60\1\32\1\31\1\62\1\51\1\53\1\60\1\65\1\64\1\40"+ - "\1\67\2\60\1\27\1\52\1\60\1\34\1\102\1\23\1\0\1\10"+ - "\1\0\1\56\1\101\1\72\1\57\1\42\1\66\1\73\1\60\1\45"+ - "\1\76\1\60\1\33\1\31\1\47\1\46\1\77\1\60\1\43\1\44"+ - "\1\55\1\100\1\41\1\60\1\30\1\52\1\60\1\16\1\0\1\103"+ - "\71\0\1\75\10\0\27\74\1\0\37\74\1\0\72\74\2\0\13\74"+ - "\2\0\10\74\1\0\65\74\1\0\104\74\11\0\44\74\3\0\2\74"+ - "\4\0\36\74\70\0\131\74\22\0\7\74\16\0\2\75\56\0\106\75"+ - "\32\0\2\75\44\0\1\74\1\75\3\74\1\0\1\74\1\0\24\74"+ - "\1\0\54\74\1\0\7\74\3\0\1\74\1\0\1\74\1\0\1\74"+ - "\1\0\1\74\1\0\22\74\15\0\14\74\1\0\102\74\1\0\14\74"+ - "\1\0\44\74\1\0\4\75\11\0\65\74\2\0\2\74\2\0\2\74"+ - "\3\0\34\74\2\0\10\74\2\0\2\74\67\0\46\74\2\0\1\74"+ - "\7\0\46\74\12\0\21\75\1\0\27\75\1\0\3\75\1\0\1\75"+ - "\1\0\2\75\1\0\1\75\13\0\33\74\5\0\3\74\56\0\32\74"+ - "\5\0\1\75\12\74\10\75\15\0\12\75\6\0\1\75\107\74\2\0"+ - "\5\74\1\0\17\74\1\0\4\74\1\0\1\74\17\75\2\74\2\75"+ - "\1\0\4\75\2\0\12\75\u0207\0\3\75\1\0\65\74\2\0\1\75"+ - "\1\74\20\75\3\0\4\75\3\0\12\74\2\75\2\0\12\75\21\0"+ - "\3\75\1\0\10\74\2\0\2\74\2\0\26\74\1\0\7\74\1\0"+ - "\1\74\3\0\4\74\2\0\1\75\1\0\7\75\2\0\2\75\2\0"+ - "\3\75\11\0\1\75\4\0\2\74\1\0\3\74\2\75\2\0\12\75"+ - "\2\74\20\0\1\75\2\0\6\74\4\0\2\74\2\0\26\74\1\0"+ - "\7\74\1\0\2\74\1\0\2\74\1\0\2\74\2\0\1\75\1\0"+ - "\5\75\4\0\2\75\2\0\3\75\13\0\4\74\1\0\1\74\7\0"+ - "\12\75\2\75\3\74\14\0\3\75\1\0\7\74\1\0\1\74\1\0"+ - "\3\74\1\0\26\74\1\0\7\74\1\0\2\74\1\0\5\74\2\0"+ - "\1\75\1\74\10\75\1\0\3\75\1\0\3\75\22\0\1\74\5\0"+ - "\12\75\21\0\3\75\1\0\10\74\2\0\2\74\2\0\26\74\1\0"+ - "\7\74\1\0\2\74\2\0\4\74\2\0\1\75\1\74\6\75\3\0"+ - "\2\75\2\0\3\75\10\0\2\75\4\0\2\74\1\0\3\74\4\0"+ - "\12\75\22\0\2\75\1\0\6\74\3\0\3\74\1\0\4\74\3\0"+ - "\2\74\1\0\1\74\1\0\2\74\3\0\2\74\3\0\3\74\3\0"+ - "\10\74\1\0\3\74\4\0\5\75\3\0\3\75\1\0\4\75\11\0"+ - "\1\75\17\0\11\75\21\0\3\75\1\0\10\74\1\0\3\74\1\0"+ - "\27\74\1\0\12\74\1\0\5\74\4\0\7\75\1\0\3\75\1\0"+ - "\4\75\7\0\2\75\11\0\2\74\4\0\12\75\22\0\2\75\1\0"+ - "\10\74\1\0\3\74\1\0\27\74\1\0\12\74\1\0\5\74\4\0"+ - "\7\75\1\0\3\75\1\0\4\75\7\0\2\75\7\0\1\74\1\0"+ - "\2\74\4\0\12\75\22\0\2\75\1\0\10\74\1\0\3\74\1\0"+ - "\27\74\1\0\20\74\4\0\6\75\2\0\3\75\1\0\4\75\11\0"+ - "\1\75\10\0\2\74\4\0\12\75\221\0\56\74\1\0\1\74\1\75"+ - "\2\74\7\75\5\0\6\74\1\75\10\75\1\0\12\75\47\0\2\74"+ - "\1\0\1\74\2\0\2\74\1\0\1\74\2\0\1\74\6\0\4\74"+ - "\1\0\7\74\1\0\3\74\1\0\1\74\1\0\1\74\2\0\2\74"+ - "\1\0\2\74\1\0\1\74\1\75\2\74\6\75\1\0\2\75\1\74"+ - "\2\0\5\74\1\0\1\75\1\0\6\75\2\0\12\75\76\0\2\75"+ - "\6\0\12\75\13\0\1\75\1\0\1\75\1\0\1\75\4\0\2\75"+ - "\10\74\1\0\41\74\7\0\24\75\1\0\6\75\4\0\6\75\1\0"+ - "\1\75\1\0\25\75\3\0\7\75\1\0\1\75\346\0\46\74\12\0"+ - "\47\74\11\0\1\74\1\0\2\74\1\0\3\74\1\0\1\74\1\0"+ - "\2\74\1\0\5\74\51\0\1\74\1\0\1\74\1\0\1\74\13\0"+ - "\1\74\1\0\1\74\1\0\1\74\3\0\2\74\3\0\1\74\5\0"+ - "\3\74\1\0\1\74\1\0\1\74\1\0\1\74\1\0\1\74\3\0"+ - "\2\74\3\0\2\74\1\0\1\74\50\0\1\74\11\0\1\74\2\0"+ - "\1\74\2\0\2\74\7\0\2\74\1\0\1\74\1\0\7\74\50\0"+ - "\1\74\4\0\1\74\10\0\1\74\u0c06\0\234\74\4\0\132\74\6\0"+ - "\26\74\2\0\6\74\2\0\46\74\2\0\6\74\2\0\10\74\1\0"+ - "\1\74\1\0\1\74\1\0\1\74\1\0\37\74\2\0\65\74\1\0"+ - "\7\74\1\0\1\74\3\0\3\74\1\0\7\74\3\0\4\74\2\0"+ - "\6\74\4\0\15\74\5\0\3\74\1\0\7\74\323\0\15\75\4\0"+ - "\1\75\104\0\1\74\3\0\2\74\2\0\1\74\121\0\3\74\u0e82\0"+ - "\1\75\1\0\1\74\31\0\11\74\6\75\1\0\5\75\13\0\124\74"+ - "\4\0\2\75\2\0\2\75\2\0\132\74\1\0\3\75\6\0\50\74"+ - "\u1cd3\0\u51a6\74\u0c5a\0\u2ba4\74\134\0\u0800\0\u1ffe\0\2\0"; - - /** - * Translates characters to character classes - */ - final private static char [] yycmap = yy_unpack_cmap(yycmap_packed); - - /** - * Translates a state to a row index in the transition table - */ - final private static int yy_rowMap [] = { - 0, 68, 136, 204, 272, 340, 408, 476, 544, 612, - 680, 748, 816, 884, 952, 1020, 1088, 1156, 1224, 1292, - 1360, 1428, 1496, 1564, 1632, 1700, 1768, 1836, 1904, 1972, - 2040, 2108, 2176, 2244, 2312, 2380, 2448, 2516, 2584, 2652, - 2720, 2788, 2856, 2924, 2992, 3060, 3128, 3196, 3264, 3332, - 3400, 3468, 3536, 3604, 3672, 3740, 3808, 3876, 3944, 4012, - 4080, 4148, 4216, 4284, 4352, 4284, 4352, 4420, 4284, 4284, - 4352, 4488, 4556, 4624, 4692, 4760, 4828, 4896, 4284, 4352, - 4964, 5032, 5100, 4284, 5168, 5168, 5236, 5304, 5372, 4964, - 4284, 5440, 5508, 4284, 5576, 5644, 5712, 5780, 4284, 4352, - 5848, 5916, 5984, 6052, 6120, 6188, 4284, 6256, 6256, 6324, - 6392, 6460, 6528, 6596, 4284, 6664, 6732, 6800, 6868, 6936, - 7004, 4284, 7072, 7140, 7208, 7276, 7344, 7412, 7480, 7548, - 4284, 7616, 7684, 7752, 7820, 7888, 7956, 8024, 8092, 8092, - 8160, 8228, 8296, 8364, 8364, 8432, 8500, 8568, 8636, 8636, - 8704, 8772, 8840, 8908, 4284, 8976, 8976, 9044, 9112, 9180, - 9248, 4284, 4284, 4352, 9316, 4284, 4352, 9384, 9452, 9520, - 9588, 4284, 9656, 9724, 9792, 9860, 4284, 9928, 9996, 10064, - 10132, 4284, 4284, 10200, 4284, 10268, 10336, 10268, 10404, 10472, - 10404, 4284, 4284, 10540, 10608, 10676, 4284, 10744, 10812, 10880, - 10948, 11016, 4284, 4284, 11084, 4284, 11152, 11220, 11152, 11288, - 11356, 11288, 4284, 4284, 11424, 11492, 11560, 4284, 11628, 11696, - 11764, 4284, 4284, 11832, 11900, 11968, 12036, 12104, 4284, 12172, - 12240, 12308, 12376, 12444, 12512, 12580, 12648, 12716, 4284, 12784, - 12852, 4284, 4284, 5168, 5304, 4284, 12920, 5372, 12988, 5440, - 5576, 5644, 13056, 5712, 4284, 13124, 13192, 5780, 13260, 4284, - 11900, 4284, 6256, 6324, 4284, 13328, 6392, 13396, 4284, 13464, - 13532, 7072, 13600, 7276, 4284, 13668, 7344, 13736, 13804, 13872, - 13940, 14008, 14076, 7820, 4284, 14144, 14212, 8092, 8160, 4284, - 14280, 14348, 14416, 14484, 14552, 8296, 8092, 8364, 8432, 4284, - 8500, 8568, 8364, 8636, 8704, 4284, 14620, 14688, 14756, 14824, - 14892, 14960, 15028, 8976, 9044, 4284, 15096, 15164, 15232, 15300, - 15368, 15436, 15504, 15572, 15640, 4284, 4284, 4284, 15708, 4284, - 4284, 15776, 15844, 15912, 15980, 10268, 4284, 16048, 16116, 10404, - 4284, 16184, 16252, 16320, 16388, 16456, 16524, 16592, 16660, 16728, - 10948, 11152, 4284, 16796, 16864, 11288, 4284, 16932, 17000, 17068, - 17136, 17204, 17272, 17340, 17408, 17476, 4284, 4284, 4284, 17544, - 17612, 17680, 17748, 17816, 4284, 17884, 17952, 4284, 4284, 4284, - 4284, 4284, 4692, 18020, 18088, 18156, 18224, 18292, 18360, 18292, - 18428, 18496, 18428, 18564, 18632, 18700, 18768, 18836, 18904, 18972, - 18972, 19040, 19108, 19108, 19176, 8840, 8840, 19244, 19312, 19380, - 19380, 19448, 9180, 9180, 19516, 19584, 15912, 19652, 10064, 10064, - 19720, 19788, 10268, 10268, 19856, 19924, 10404, 10404, 19992, 20060, - 10540, 10540, 16456, 20128, 20196, 10744, 10744, 16660, 20264, 20332, - 10948, 10948, 20400, 11152, 11152, 20468, 20536, 11288, 11288, 20604, - 20672, 11424, 11424, 17204, 20740, 20808, 11628, 11628, 17408, 20876, - 4284, 4284, 20944, 21012, 4284, 21080, 21148, 21216, 7072, 4284, - 4284, 21284, 21352, 21420, 21488, 21556, 14484, 14824, 8840, 21624, - 15300, 9180, 21692, 4284, 10064, 10268, 21760, 10404, 21828, 10540, - 21896, 4284, 10744, 21964, 10948, 11152, 22032, 11288, 22100, 11424, - 22168, 4284, 11628, 22236, 22304, 22372, 22440, 22508, 22576, 22644, - 22712, 22780, 22848, 22916, 22984, 23052, 23120, 23188, 23256, 23324, - 23392, 23460, 23528, 23596, 4692, 23664, 23732, 23800, 23868, 23936, - 4284, 4284, 24004, 24072, 24140, 24208, 16456, 16660, 24276, 24344, - 17204, 17408, 24412, 24480, 24548, 4284, 4284, 4284, 24616, 24684, - 24752, 24820, 24888, 24956, 25024, 6800, 25092, 25160, 25228, 25296, - 25364, 25432, 25500, 4284, 25568, 8840, 9180, 10268, 10404, 11152, - 11288, 25636, 25704, 25772, 25840, 25908, 25976, 26044, 26112, 26180, - 26248, 26316, 26384, 26452, 26520, 26588, 26656, 26724, 26792, 26860, - 26928, 26996, 27064, 27132, 27200, 27268, 27336, 27404, 27472, 27540, - 27608, 27676, 27744, 27812, 27880, 27948, 28016, 28084, 28152, 28220, - 28288, 4284, 28356, 28424, 28492, 28560, 6800, 28628, 28696, 28764, - 28832, 28900, 28968, 29036, 29104, 29172, 29240, 29308, 29376, 29444, - 29512 - }; - - /** - * The packed transition table of the DFA - */ - final private static String yy_packed = - "\1\72\1\73\11\72\1\74\1\72\1\75\4\72\1\76"+ - "\40\72\1\77\20\72\1\100\1\101\102\100\1\102\1\103"+ - "\21\102\1\104\2\102\1\105\55\102\1\106\1\107\102\106"+ - "\1\102\1\103\5\102\1\110\16\102\1\105\56\102\1\103"+ - "\2\102\1\111\1\112\2\102\2\113\5\102\1\112\6\102"+ - "\1\112\2\114\3\113\1\102\10\113\1\115\2\113\1\102"+ - "\10\113\1\115\1\113\1\102\4\113\1\102\4\113\1\102"+ - "\4\113\3\102\1\103\2\102\1\111\1\116\11\102\1\116"+ - "\6\102\1\116\55\102\1\117\1\120\2\117\1\121\21\117"+ - "\1\105\55\117\1\102\1\103\2\102\1\122\1\112\2\102"+ - "\2\123\5\102\1\112\6\102\1\112\5\123\1\102\13\123"+ - "\1\102\12\123\1\102\4\123\1\102\4\123\1\102\4\123"+ - "\3\102\1\103\2\102\1\122\1\112\2\102\2\123\5\102"+ - "\1\112\6\102\1\112\5\123\1\102\13\123\1\124\12\123"+ - "\1\102\4\123\1\102\4\123\1\102\4\123\2\102\1\125"+ - "\1\103\1\102\1\126\1\127\1\112\4\125\1\130\1\125"+ - "\1\131\2\125\1\112\6\125\1\112\55\125\1\102\1\103"+ - "\2\102\1\132\21\102\1\105\56\102\1\103\1\133\1\134"+ - "\1\102\1\112\2\102\2\135\5\102\1\112\6\102\1\112"+ - "\5\135\1\102\13\135\1\102\12\135\1\102\4\135\1\102"+ - "\4\135\1\102\4\135\3\102\1\103\1\133\1\134\1\102"+ - "\1\112\2\102\2\135\5\102\1\112\6\102\1\112\5\135"+ - "\1\102\13\135\1\136\12\135\1\102\4\135\1\102\4\135"+ - "\1\102\4\135\2\102\1\137\1\103\1\133\1\140\1\137"+ - "\1\112\4\137\1\141\1\137\1\142\2\137\1\112\6\137"+ - "\1\112\55\137\1\102\1\103\3\102\1\112\11\102\1\112"+ - "\6\102\1\112\55\102\1\143\1\144\20\143\1\145\61\143"+ - "\1\102\1\146\3\102\1\112\2\102\2\147\5\102\1\112"+ - "\2\102\1\150\3\102\1\112\5\147\1\102\13\147\1\102"+ - "\12\147\1\102\4\147\1\102\4\147\1\102\4\147\3\102"+ - "\1\146\3\102\1\151\11\102\1\151\2\102\1\150\3\102"+ - "\1\151\56\102\1\146\3\102\1\112\2\102\2\152\5\102"+ - "\1\112\2\102\1\150\3\102\1\112\5\152\1\102\13\152"+ - "\1\102\12\152\1\102\4\152\1\102\4\152\1\102\4\152"+ - "\3\102\1\146\3\102\1\112\2\102\2\152\5\102\1\112"+ - "\2\102\1\150\3\102\1\112\5\152\1\102\13\152\1\153"+ - "\12\152\1\102\4\152\1\102\4\152\1\102\4\152\2\102"+ - "\1\154\1\146\1\102\1\155\1\154\1\112\4\154\1\156"+ - "\1\154\1\157\2\154\1\112\2\154\1\160\3\154\1\112"+ - "\55\154\1\161\1\162\1\163\1\164\4\161\2\165\15\161"+ - "\5\166\1\161\13\166\1\161\12\166\1\161\4\166\1\161"+ - "\4\166\1\161\1\167\3\166\2\161\1\102\1\170\1\163"+ - "\1\164\1\102\1\112\2\102\2\171\5\102\1\112\6\102"+ - "\1\112\5\171\1\102\13\171\1\102\12\171\1\102\4\171"+ - "\1\102\4\171\1\102\4\171\3\102\1\170\1\163\1\164"+ - "\1\102\1\112\2\102\2\171\5\102\1\112\6\102\1\112"+ - "\5\171\1\102\13\171\1\172\12\171\1\102\4\171\1\102"+ - "\4\171\1\102\4\171\2\102\1\173\1\174\1\163\1\175"+ - "\1\173\1\112\4\173\1\176\1\173\1\177\1\200\1\173"+ - "\1\112\6\173\1\112\34\173\1\201\20\173\1\102\1\202"+ - "\1\203\2\102\1\112\11\102\1\112\6\102\1\112\7\102"+ - "\1\204\1\205\2\102\1\206\11\102\1\206\1\102\1\205"+ - "\1\204\25\102\1\103\1\203\2\102\1\112\11\102\1\112"+ - "\6\102\1\112\5\102\1\207\50\102\1\103\1\203\2\102"+ - "\1\112\2\102\2\210\5\102\1\112\6\102\1\112\5\210"+ - "\1\207\13\210\1\102\12\210\1\102\4\210\1\102\4\210"+ - "\1\102\4\210\3\102\1\103\1\203\2\102\1\112\11\102"+ - "\1\112\6\102\1\112\5\102\1\207\7\102\1\211\6\102"+ - "\1\212\10\102\1\211\12\102\1\212\4\102\1\213\1\103"+ - "\1\203\1\214\1\213\1\112\4\213\1\215\1\213\1\216"+ - "\2\213\1\112\6\213\1\112\5\213\1\217\47\213\1\220"+ - "\1\103\1\203\1\221\1\220\1\112\4\220\1\222\1\220"+ - "\1\223\2\220\1\112\6\220\1\112\5\220\1\224\47\220"+ - "\1\225\1\103\1\203\1\226\1\225\1\112\4\225\1\227"+ - "\1\225\1\230\2\225\1\112\6\225\1\112\55\225\1\231"+ - "\1\232\1\233\101\231\1\234\1\103\1\203\1\235\1\234"+ - "\1\112\4\234\1\236\1\234\1\237\2\234\1\112\6\234"+ - "\1\112\55\234\1\240\1\241\1\242\101\240\1\243\1\244"+ - "\102\243\1\102\1\245\24\102\1\105\55\102\1\246\1\247"+ - "\102\246\1\102\1\103\5\102\1\250\16\102\1\105\55\102"+ - "\1\251\1\252\3\251\1\253\6\251\1\254\1\255\1\251"+ - "\1\253\6\251\1\253\34\251\1\256\20\251\1\257\1\252"+ - "\3\257\1\260\4\257\1\261\2\257\1\262\1\257\1\260"+ - "\6\257\1\260\34\257\1\263\20\257\1\102\1\103\24\102"+ - "\1\105\55\102\1\264\1\265\10\264\1\266\1\264\1\267"+ - "\1\270\65\264\1\271\1\272\1\273\12\272\1\102\11\272"+ - "\1\274\55\272\1\275\1\276\10\275\1\102\13\275\1\277"+ - "\55\275\1\102\1\103\12\102\1\300\11\102\1\105\56\102"+ - "\1\103\10\102\1\301\13\102\1\105\55\102\1\302\1\303"+ - "\10\302\1\261\67\302\1\304\1\305\1\306\1\307\12\306"+ - "\1\254\65\306\1\310\1\305\1\311\1\312\10\311\1\313"+ - "\1\311\1\314\46\311\1\315\17\311\1\316\1\317\1\320"+ - "\12\317\1\102\11\317\1\321\55\317\1\322\1\323\10\322"+ - "\1\102\13\322\1\324\55\322\1\102\1\103\12\102\1\325"+ - "\11\102\1\105\56\102\1\103\10\102\1\326\13\102\1\105"+ - "\55\102\1\327\1\330\10\327\1\261\67\327\1\331\1\332"+ - "\1\333\1\334\12\333\1\254\65\333\1\335\1\332\1\72"+ - "\1\0\11\72\1\0\1\72\1\0\4\72\1\0\40\72"+ - "\1\0\20\72\3\0\1\336\1\337\15\0\1\340\2\0"+ - "\1\341\63\0\1\342\2\0\2\343\5\0\1\342\6\0"+ - "\1\342\5\343\1\0\13\343\1\0\12\343\1\344\4\343"+ - "\1\0\4\343\1\0\4\343\2\0\1\345\1\0\11\345"+ - "\1\0\1\345\1\346\1\347\3\345\1\0\61\345\5\0"+ - "\1\342\2\0\2\350\5\0\1\342\6\0\1\342\5\350"+ - "\1\0\13\350\1\0\12\350\1\0\4\350\1\0\4\350"+ - "\1\0\4\350\2\0\1\345\1\0\11\345\1\0\2\345"+ - "\1\351\3\345\1\0\40\345\1\352\20\345\126\0\1\353"+ - "\2\0\1\354\101\0\1\355\67\0\1\356\76\0\1\357"+ - "\106\0\1\112\11\0\1\112\6\0\1\112\63\0\4\113"+ - "\6\0\1\113\6\0\5\113\1\0\13\113\1\0\12\113"+ - "\1\0\4\113\1\0\11\113\10\0\4\113\6\0\1\113"+ - "\6\0\2\113\1\360\2\113\1\0\13\113\1\0\12\113"+ - "\1\0\4\113\1\0\11\113\10\0\4\113\6\0\1\113"+ - "\6\0\2\113\1\361\2\113\1\0\13\113\1\0\12\113"+ - "\1\0\4\113\1\0\11\113\7\0\1\116\11\0\1\116"+ - "\6\0\1\116\57\0\1\362\103\0\1\363\107\0\4\123"+ - "\6\0\1\123\6\0\5\123\1\0\13\123\1\0\12\123"+ - "\1\0\4\123\1\0\11\123\2\0\1\125\2\0\1\364"+ - "\1\125\1\0\4\125\1\0\1\125\1\0\2\125\1\0"+ - "\6\125\1\0\56\125\1\0\1\363\1\364\1\125\1\0"+ - "\4\125\1\0\1\125\1\0\2\125\1\0\6\125\1\0"+ - "\55\125\1\365\1\0\10\365\1\366\2\365\1\367\45\365"+ - "\1\367\20\365\1\370\1\0\12\370\1\366\1\371\45\370"+ - "\1\371\20\370\2\0\1\133\1\372\106\0\4\135\6\0"+ - "\1\135\6\0\5\135\1\0\13\135\1\0\12\135\1\0"+ - "\4\135\1\0\11\135\2\0\1\137\2\0\1\373\1\137"+ - "\1\0\4\137\1\0\1\137\1\0\2\137\1\0\6\137"+ - "\1\0\56\137\1\0\1\133\1\374\1\137\1\0\4\137"+ - "\1\0\1\137\1\0\2\137\1\0\6\137\1\0\55\137"+ - "\1\141\1\0\1\375\1\376\1\141\1\375\4\141\1\377"+ - "\1\141\1\375\1\u0100\1\141\1\375\6\141\1\375\34\141"+ - "\1\u0100\20\141\1\142\1\0\1\u0101\1\u0102\1\142\1\u0101"+ - "\4\142\1\u0101\1\142\1\377\1\u0103\1\142\1\u0101\6\142"+ - "\1\u0101\34\142\1\u0103\20\142\2\0\1\u0104\123\0\1\353"+ - "\2\0\1\u0105\64\0\4\147\6\0\1\147\6\0\5\147"+ - "\1\0\13\147\1\0\12\147\1\0\4\147\1\0\11\147"+ - "\4\0\1\u0106\106\0\1\151\11\0\1\151\6\0\1\151"+ - "\63\0\4\152\6\0\1\152\6\0\5\152\1\0\13\152"+ - "\1\0\12\152\1\0\4\152\1\0\11\152\2\0\1\154"+ - "\2\0\1\u0107\1\154\1\0\4\154\1\0\1\154\1\0"+ - "\2\154\1\0\6\154\1\0\55\154\1\u0108\1\0\10\u0108"+ - "\1\u0109\2\u0108\1\u010a\45\u0108\1\u010a\20\u0108\1\u010b\1\0"+ - "\12\u010b\1\u0109\1\u010c\45\u010b\1\u010c\20\u010b\1\154\1\0"+ - "\1\u0106\1\u0107\1\154\1\0\4\154\1\0\1\154\1\0"+ - "\2\154\1\0\6\154\1\0\55\154\1\161\3\0\23\161"+ - "\5\0\1\161\13\0\1\161\12\0\1\161\4\0\1\161"+ - "\4\0\1\161\4\0\2\161\3\0\1\336\16\0\1\353"+ - "\2\0\1\341\60\0\1\u010d\101\0\1\161\3\0\2\161"+ - "\4\165\6\161\1\165\6\161\5\166\1\161\13\166\1\161"+ - "\12\166\1\161\4\166\1\161\4\166\1\165\4\166\2\161"+ - "\6\0\4\166\6\0\1\166\6\0\5\166\1\0\13\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\7\166\1\u010e\3\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\5\0\1\336"+ - "\4\0\2\u010f\10\0\1\353\2\0\1\341\1\0\5\u010f"+ - "\1\0\13\u010f\1\0\12\u010f\1\0\4\u010f\1\0\4\u010f"+ - "\1\0\4\u010f\10\0\4\171\6\0\1\171\6\0\5\171"+ - "\1\0\13\171\1\0\12\171\1\0\4\171\1\0\11\171"+ - "\2\0\1\173\2\0\1\u0110\1\173\1\0\4\173\1\0"+ - "\1\173\1\0\2\173\1\0\6\173\1\0\55\173\3\0"+ - "\1\336\4\0\2\u0111\10\0\1\353\2\0\1\341\1\0"+ - "\5\u0111\1\0\13\u0111\1\0\12\u0111\1\0\4\u0111\1\0"+ - "\4\u0111\1\0\4\u0111\2\0\1\173\1\0\1\u010d\1\u0110"+ - "\1\173\1\0\4\173\1\0\1\173\1\0\2\173\1\0"+ - "\6\173\1\0\55\173\1\u0112\1\0\10\u0112\1\u0113\2\u0112"+ - "\1\u0114\45\u0112\1\u0114\20\u0112\1\u0115\1\0\12\u0115\1\u0113"+ - "\1\u0116\45\u0115\1\u0116\20\u0115\1\173\2\0\1\u0110\1\173"+ - "\1\0\4\173\1\0\1\173\1\0\1\173\1\u0117\1\0"+ - "\6\173\1\0\56\173\2\0\1\u0110\1\173\1\0\4\173"+ - "\1\0\1\173\1\0\1\173\1\u0118\1\0\6\173\1\0"+ - "\55\173\3\0\1\336\16\0\1\353\2\0\1\u0105\124\0"+ - "\1\u0119\2\0\1\u0119\72\0\1\u011a\14\0\1\u011a\60\0"+ - "\2\u011b\50\0\23\u011c\1\u011d\60\u011c\6\0\4\210\6\0"+ - "\1\210\6\0\5\210\1\0\13\210\1\0\12\210\1\0"+ - "\4\210\1\0\11\210\54\0\1\u011e\120\0\1\u011f\10\0"+ - "\1\u011f\3\0\1\213\2\0\1\u0120\1\213\1\0\4\213"+ - "\1\0\1\213\1\0\2\213\1\0\6\213\1\0\55\213"+ - "\1\u0121\1\0\10\u0121\1\u0122\2\u0121\1\u0123\45\u0121\1\u0123"+ - "\20\u0121\1\u0124\1\0\1\u0124\2\u0125\1\u0124\4\u0125\2\u0124"+ - "\1\u0126\1\u0127\1\u0124\4\u0125\1\u0124\10\u0125\1\u0124\26\u0125"+ - "\1\u0127\10\u0125\2\u0124\4\u0125\2\u0124\1\217\2\u011c\1\u0128"+ - "\1\217\1\u011c\4\217\1\u011c\1\217\1\u011c\2\217\1\u011c"+ - "\3\217\1\u0129\2\217\1\u011c\55\217\1\220\2\0\1\u012a"+ - "\1\220\1\0\4\220\1\0\1\220\1\0\2\220\1\0"+ - "\6\220\1\0\55\220\12\u012b\1\u012c\71\u012b\14\u012d\1\u012c"+ - "\67\u012d\1\224\2\u011c\1\u012e\1\224\1\u011c\4\224\1\u011c"+ - "\1\224\1\u011c\2\224\1\u011c\3\224\1\u012f\2\224\1\u011c"+ - "\55\224\1\225\2\0\1\u0130\1\225\1\0\4\225\1\0"+ - "\1\225\1\0\2\225\1\0\6\225\1\0\55\225\1\u0131"+ - "\1\0\10\u0131\1\u0132\2\u0131\1\u0133\45\u0131\1\u0133\20\u0131"+ - "\1\u0134\1\0\1\u0134\2\u0135\1\u0134\4\u0135\2\u0134\1\u0136"+ - "\1\u0137\1\u0134\4\u0135\1\u0134\10\u0135\1\u0134\26\u0135\1\u0137"+ - "\10\u0135\2\u0134\4\u0135\2\u0134\2\231\1\0\103\231\1\0"+ - "\17\231\1\u0138\2\231\1\u0139\56\231\1\234\2\0\1\u013a"+ - "\1\234\1\0\4\234\1\0\1\234\1\0\2\234\1\0"+ - "\6\234\1\0\55\234\1\u013b\1\0\10\u013b\1\u013c\2\u013b"+ - "\1\u013d\45\u013b\1\u013d\20\u013b\1\u013e\1\0\1\u013e\2\u013f"+ - "\1\u013e\4\u013f\2\u013e\1\u0140\1\u0141\1\u013e\4\u013f\1\u013e"+ - "\10\u013f\1\u013e\26\u013f\1\u0141\10\u013f\2\u013e\4\u013f\2\u013e"+ - "\2\240\1\0\103\240\1\0\17\240\1\u0142\2\240\1\u0143"+ - "\56\240\22\0\1\340\2\0\1\354\65\0\1\u0144\74\0"+ - "\1\251\1\0\12\251\1\0\1\u0145\45\251\1\u0145\20\251"+ - "\3\0\1\u0146\16\0\1\353\2\0\1\354\56\0\1\251"+ - "\1\0\3\251\1\253\6\251\1\0\1\u0145\1\251\1\253"+ - "\6\251\1\253\34\251\1\u0145\36\251\1\u0147\103\251\1\u0148"+ - "\65\251\1\257\1\0\10\257\1\0\2\257\1\u0149\45\257"+ - "\1\u0149\21\257\1\0\3\257\1\260\4\257\1\0\2\257"+ - "\1\u0149\1\257\1\260\6\257\1\260\34\257\1\u0149\36\257"+ - "\1\u014a\103\257\1\u014b\65\257\12\264\1\0\1\264\1\0"+ - "\1\u014c\65\264\1\0\12\264\1\0\1\264\1\0\1\u014c"+ - "\4\264\1\u014d\60\264\1\0\12\264\1\0\1\264\1\0"+ - "\1\264\1\u014e\64\264\1\u014f\14\u0150\1\u0151\103\u0150\1\u0151"+ - "\5\u0150\1\u0152\2\u0150\1\u0153\56\u0150\12\u0154\1\u0155\103\u0154"+ - "\1\u0155\7\u0154\1\u0156\2\u0154\1\u0157\56\u0154\12\302\1\0"+ - "\67\302\1\u0158\1\0\12\302\1\0\7\302\1\u0159\57\302"+ - "\1\u0158\1\0\12\302\1\u015a\71\302\14\306\1\0\65\306"+ - "\1\u015b\1\0\14\306\1\0\5\306\1\u015c\57\306\1\u015b"+ - "\1\0\14\306\1\u015d\67\306\12\311\1\0\1\311\1\0"+ - "\66\311\1\0\12\311\1\0\1\311\1\0\5\311\1\u015e"+ - "\60\311\1\0\12\311\1\0\1\311\1\0\1\311\1\u015f"+ - "\64\311\1\0\14\u0160\1\u0161\103\u0160\1\u0161\5\u0160\1\u0162"+ - "\2\u0160\1\u0163\56\u0160\12\u0164\1\u0165\103\u0164\1\u0165\7\u0164"+ - "\1\u0166\2\u0164\1\u0167\56\u0164\12\327\1\0\67\327\1\u0168"+ - "\1\0\12\327\1\0\7\327\1\u0169\57\327\1\u0168\1\0"+ - "\12\327\1\u016a\71\327\14\333\1\0\65\333\1\u016b\1\0"+ - "\14\333\1\0\5\333\1\u016c\57\333\1\u016b\1\0\14\333"+ - "\1\u016d\67\333\7\0\1\u016e\11\0\1\u016f\3\0\1\u0170"+ - "\22\0\1\u0171\42\0\1\u0172\24\0\1\u0173\54\0\1\342"+ - "\2\0\2\u0174\5\0\1\342\6\0\1\342\5\u0174\1\0"+ - "\13\u0174\1\0\12\u0174\1\0\4\u0174\1\0\4\u0174\1\0"+ - "\4\u0174\2\0\1\u0175\1\0\3\u0175\1\u0176\4\343\1\u0175"+ - "\1\0\3\u0175\1\u0176\1\343\1\u0175\1\0\3\u0175\1\u0176"+ - "\5\343\1\u0175\13\343\1\u0175\12\343\1\u0175\4\343\1\u0177"+ - "\11\343\2\u0175\20\0\1\u0178\7\0\1\u0179\70\0\1\346"+ - "\66\0\103\347\1\u017a\1\u0175\1\0\3\u0175\1\u0176\4\350"+ - "\1\u0175\1\0\3\u0175\1\u0176\1\350\1\u0175\1\0\3\u0175"+ - "\1\u0176\5\350\1\u0175\13\350\1\u0175\12\350\1\u0175\4\350"+ - "\1\u017b\11\350\2\u0175\103\351\1\u017c\63\0\1\352\27\0"+ - "\1\u016e\15\0\1\u0170\22\0\1\u0171\67\0\1\u0173\51\0"+ - "\1\u017d\103\0\1\u017e\107\0\4\113\6\0\1\113\6\0"+ - "\3\113\2\u017f\1\0\13\113\1\0\12\113\1\0\4\113"+ - "\1\0\11\113\10\0\4\113\6\0\1\113\6\0\5\113"+ - "\1\0\13\113\1\0\2\113\1\u0180\7\113\1\0\4\113"+ - "\1\0\6\113\1\u0180\2\113\2\0\12\365\1\366\3\365"+ - "\1\0\65\365\14\370\1\366\1\370\1\0\65\370\1\375"+ - "\1\0\10\375\1\377\2\375\1\u0181\45\375\1\u0181\20\375"+ - "\1\141\2\375\1\376\1\141\1\375\4\141\1\377\1\141"+ - "\1\375\1\141\1\137\1\375\6\141\1\375\55\141\1\u0101"+ - "\1\0\12\u0101\1\377\1\u0182\45\u0101\1\u0182\20\u0101\1\142"+ - "\2\u0101\1\u0102\1\142\1\u0101\4\142\1\u0101\1\142\1\377"+ - "\1\142\1\137\1\u0101\6\142\1\u0101\55\142\12\u0108\1\u0109"+ - "\3\u0108\1\0\65\u0108\14\u010b\1\u0109\1\u010b\1\0\65\u010b"+ - "\6\0\4\166\6\0\1\166\6\0\5\166\1\0\13\166"+ - "\1\0\12\166\1\0\4\166\1\0\6\166\1\u0183\2\166"+ - "\10\0\4\u010f\6\0\1\u010f\6\0\5\u010f\1\0\13\u010f"+ - "\1\0\12\u010f\1\0\4\u010f\1\0\11\u010f\10\0\4\u0111"+ - "\6\0\1\u0111\6\0\5\u0111\1\0\13\u0111\1\0\12\u0111"+ - "\1\0\4\u0111\1\0\11\u0111\2\0\12\u0112\1\u0113\3\u0112"+ - "\1\0\65\u0112\14\u0115\1\u0113\1\u0115\1\0\65\u0115\1\u0184"+ - "\2\u0185\1\u0186\1\u0184\1\u0185\4\u0184\1\u0185\1\u0184\1\u0185"+ - "\2\u0184\1\u0185\6\u0184\1\u0185\54\u0184\1\173\1\u0187\2\u0188"+ - "\1\u0189\1\u0187\1\u0188\4\u0187\1\u0188\1\u0187\1\u0188\2\u0187"+ - "\1\u0188\6\u0187\1\u0188\54\u0187\1\173\35\0\1\u018a\34\0"+ - "\1\u018a\51\0\1\u018b\14\0\1\u018b\70\0\1\u018c\11\0"+ - "\1\u018c\73\0\1\u018d\17\0\1\u018d\110\0\1\u018e\7\0"+ - "\1\u018e\2\0\12\u0121\1\u0122\3\u0121\1\0\65\u0121\1\u0124"+ - "\1\0\12\u0124\1\u0122\1\u018f\45\u0124\1\u018f\21\u0124\1\0"+ - "\12\u0124\1\u0190\1\u018f\45\u0124\1\u018f\20\u0124\14\0\1\u0191"+ - "\67\0\14\u0124\1\u0190\1\u0124\1\0\65\u0124\12\u0131\1\u0132"+ - "\3\u0131\1\0\65\u0131\1\u0134\1\0\12\u0134\1\u0132\1\u0192"+ - "\45\u0134\1\u0192\21\u0134\1\0\12\u0134\1\u0193\1\u0192\45\u0134"+ - "\1\u0192\20\u0134\14\0\1\u0194\67\0\14\u0134\1\u0193\1\u0134"+ - "\1\0\65\u0134\2\231\1\0\4\231\1\u0195\15\231\1\u0196"+ - "\22\231\1\u0197\35\231\1\0\31\231\1\u0198\47\231\12\u013b"+ - "\1\u013c\3\u013b\1\0\65\u013b\1\u013e\1\0\12\u013e\1\u013c"+ - "\1\u0199\45\u013e\1\u0199\21\u013e\1\0\12\u013e\1\u019a\1\u0199"+ - "\45\u013e\1\u0199\20\u013e\14\0\1\u019b\67\0\14\u013e\1\u019a"+ - "\1\u013e\1\0\65\u013e\2\240\1\0\4\240\1\u019c\15\240"+ - "\1\u019d\22\240\1\u019e\35\240\1\0\31\240\1\u019f\47\240"+ - "\22\0\1\u01a0\61\0\16\251\1\0\65\251\16\257\1\0"+ - "\65\257\12\264\1\0\1\264\1\0\1\264\1\u01a1\64\264"+ - "\1\u014f\7\264\1\u01a2\2\264\1\0\1\264\1\0\1\u014c"+ - "\7\264\1\u01a3\22\264\1\u01a4\32\264\1\0\12\u01a1\1\0"+ - "\1\u01a1\1\0\66\u01a1\1\0\12\u014f\1\0\1\u014f\1\0"+ - "\1\u01a5\65\u014f\1\0\7\u0150\1\u01a6\4\u0150\1\u0151\10\u0150"+ - "\1\u01a7\22\u0150\1\u01a8\47\u0150\1\u0151\17\u0150\1\u01a9\47\u0150"+ - "\7\u0154\1\u01aa\2\u0154\1\u0155\12\u0154\1\u01ab\22\u0154\1\u01ac"+ - "\45\u0154\1\u0155\21\u0154\1\u01ad\47\u0154\12\302\1\0\100\302"+ - "\1\u01ae\2\302\1\0\12\302\1\u01af\22\302\1\u01b0\31\302"+ - "\1\u0158\1\0\102\u01b1\1\u01b2\1\u01b1\14\306\1\0\76\306"+ - "\1\u01b3\4\306\1\0\10\306\1\u01b4\22\306\1\u01b5\31\306"+ - "\1\u015b\1\0\102\u01b6\1\u01b7\1\u01b6\7\311\1\u01b8\2\311"+ - "\1\0\1\311\1\0\10\311\1\u01b9\22\311\1\u01ba\32\311"+ - "\1\0\7\u0160\1\u01bb\4\u0160\1\u0161\10\u0160\1\u01bc\22\u0160"+ - "\1\u01bd\47\u0160\1\u0161\17\u0160\1\u01be\47\u0160\7\u0164\1\u01bf"+ - "\2\u0164\1\u0165\12\u0164\1\u01c0\22\u0164\1\u01c1\45\u0164\1\u0165"+ - "\21\u0164\1\u01c2\47\u0164\12\327\1\0\100\327\1\u01c3\2\327"+ - "\1\0\12\327\1\u01c4\22\327\1\u01c5\31\327\1\u0168\1\0"+ - "\102\u01c6\1\u01c7\1\u01c6\14\333\1\0\76\333\1\u01c8\4\333"+ - "\1\0\10\333\1\u01c9\22\333\1\u01ca\31\333\1\u016b\1\0"+ - "\102\u01cb\1\u01cc\1\u01cb\7\0\1\u01cd\103\0\1\u01ce\131\0"+ - "\1\u01cf\46\0\1\u0174\1\0\11\u0174\1\0\6\u0174\1\0"+ - "\61\u0174\1\u0175\1\0\11\u0175\1\0\6\u0175\1\0\45\u0175"+ - "\1\0\14\u0175\1\0\3\u0175\1\u0176\5\u0175\1\0\3\u0175"+ - "\1\u0176\2\u0175\1\0\3\u0175\1\u0176\41\u0175\1\u01d0\13\u0175"+ - "\20\0\1\u0178\47\0\1\u01d1\33\0\1\u01d2\14\0\3\u01d2"+ - "\2\0\1\u01d2\11\0\1\u01d2\1\0\2\u01d2\6\0\1\u01d2"+ - "\2\0\2\u01d2\6\0\1\u01d2\10\0\4\113\6\0\1\113"+ - "\6\0\5\113\1\0\11\113\1\u01d3\1\113\1\0\1\u01d3"+ - "\11\113\1\0\4\113\1\0\11\113\2\0\12\375\1\377"+ - "\3\375\1\0\65\375\14\u0101\1\377\1\u0101\1\0\65\u0101"+ - "\6\0\3\166\1\u01d4\6\0\1\166\6\0\5\166\1\0"+ - "\13\166\1\0\12\166\1\0\4\166\1\0\11\166\2\0"+ - "\1\u0184\2\u0185\1\u0186\1\u0184\1\u0185\4\u0184\1\u0185\1\u0184"+ - "\1\u0185\2\u0184\1\u0185\6\u0184\1\u0185\54\u0184\1\u01d5\103\u0185"+ - "\1\u01d6\1\u0187\2\u0188\1\u0189\1\u0187\1\u0188\4\u0187\1\u0188"+ - "\1\u0187\1\u0188\2\u0187\1\u0188\6\u0187\1\u0188\54\u0187\1\u01d5"+ - "\103\u0188\1\u01d7\40\0\1\u01d8\14\0\1\u01d8\60\0\2\u01d9"+ - "\101\0\1\u01da\112\0\1\u01db\14\0\1\u01db\60\0\2\u01dc"+ - "\50\0\14\u0124\1\u0122\1\u0124\1\0\65\u0124\3\0\2\u01dd"+ - "\1\0\4\u01dd\2\0\1\u0126\1\u01dd\1\0\4\u01dd\1\0"+ - "\10\u01dd\1\0\37\u01dd\2\0\4\u01dd\2\0\14\u0134\1\u0132"+ - "\1\u0134\1\0\65\u0134\3\0\2\u01de\1\0\4\u01de\2\0"+ - "\1\u0136\1\u01de\1\0\4\u01de\1\0\10\u01de\1\0\37\u01de"+ - "\2\0\4\u01de\2\0\2\231\1\0\4\231\1\u01df\76\231"+ - "\1\0\32\231\1\u01e0\46\231\14\u013e\1\u013c\1\u013e\1\0"+ - "\65\u013e\3\0\2\u01e1\1\0\4\u01e1\2\0\1\u0140\1\u01e1"+ - "\1\0\4\u01e1\1\0\10\u01e1\1\0\37\u01e1\2\0\4\u01e1"+ - "\2\0\2\240\1\0\4\240\1\u01e2\76\240\1\0\32\240"+ - "\1\u01e3\46\240\2\0\1\u01e4\101\0\7\264\1\u01e5\2\264"+ - "\1\0\1\264\1\0\1\u014c\65\264\1\0\12\u014f\1\0"+ - "\1\u014f\1\0\1\u014f\1\0\65\u014f\7\u0150\1\u01e6\4\u0150"+ - "\1\u0151\103\u0150\1\u0151\20\u0150\1\u01e7\46\u0150\7\u0154\1\u01e8"+ - "\2\u0154\1\u0155\103\u0154\1\u0155\22\u0154\1\u01e9\46\u0154\7\302"+ - "\1\u01ea\2\302\1\0\67\302\1\u0158\1\0\12\u01eb\1\u01ec"+ - "\70\u01eb\1\0\7\306\1\u01ed\4\306\1\0\65\306\1\u015b"+ - "\1\0\14\u01ee\1\u01ec\66\u01ee\1\0\7\311\1\u01ef\2\311"+ - "\1\0\1\311\1\0\66\311\1\0\7\u0160\1\u01f0\4\u0160"+ - "\1\u0161\103\u0160\1\u0161\20\u0160\1\u01f1\46\u0160\7\u0164\1\u01f2"+ - "\2\u0164\1\u0165\103\u0164\1\u0165\22\u0164\1\u01f3\46\u0164\7\327"+ - "\1\u01f4\2\327\1\0\67\327\1\u0168\1\0\12\u01f5\1\u01f6"+ - "\70\u01f5\1\0\7\333\1\u01f7\4\333\1\0\65\333\1\u016b"+ - "\1\0\14\u01f8\1\u01f6\66\u01f8\37\0\1\u01f9\135\0\1\u01d0"+ - "\33\0\1\u01d2\14\0\3\u01d2\2\0\1\u01d2\11\0\1\u01d2"+ - "\1\0\2\u01d2\6\0\1\u01d2\1\0\1\u01d1\2\u01d2\6\0"+ - "\1\u01d2\10\0\4\113\6\0\1\113\6\0\5\113\1\0"+ - "\6\113\1\u01fa\4\113\1\0\12\113\1\0\1\113\1\u01fa"+ - "\2\113\1\0\11\113\10\0\4\166\6\0\1\166\6\0"+ - "\5\166\1\0\6\166\1\u01fb\4\166\1\0\6\166\1\u01fc"+ - "\3\166\1\0\4\166\1\0\11\166\54\0\1\u01fd\76\0"+ - "\1\u01fe\13\0\1\u01fe\64\0\1\u01ff\11\0\1\u01ff\71\0"+ - "\1\u0200\11\0\1\u0200\74\0\1\u0201\13\0\1\u0201\22\0"+ - "\2\231\1\0\33\231\1\u0202\45\231\2\240\1\0\33\240"+ - "\1\u0203\45\240\14\u0150\1\u0151\21\u0150\1\u0204\45\u0150\12\u0154"+ - "\1\u0155\23\u0154\1\u0205\45\u0154\12\u01eb\1\u01b1\67\u01eb\1\u0206"+ - "\1\u01b1\14\u01ee\1\u01b6\65\u01ee\1\u0207\1\u01b6\14\u0160\1\u0161"+ - "\21\u0160\1\u0208\45\u0160\12\u0164\1\u0165\23\u0164\1\u0209\45\u0164"+ - "\12\u01f5\1\u01c6\67\u01f5\1\u020a\1\u01c6\14\u01f8\1\u01cb\65\u01f8"+ - "\1\u020b\1\u01cb\37\0\1\u020c\52\0\4\113\6\0\1\113"+ - "\6\0\5\113\1\0\3\113\1\u020d\7\113\1\0\4\113"+ - "\1\u020d\5\113\1\0\4\113\1\0\11\113\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\11\166\1\u020e\1\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\10\166\1\u020f\2\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\55\0\1\u0210"+ - "\23\0\1\u0210\50\0\1\u0211\17\0\1\u0211\66\0\1\u0212"+ - "\12\0\1\u0212\52\0\1\u0213\107\0\1\u0214\34\0\1\u0214"+ - "\11\0\2\231\1\0\34\231\1\u0215\44\231\2\240\1\0"+ - "\34\240\1\u0216\44\240\14\u0150\1\u0151\22\u0150\1\u0217\44\u0150"+ - "\12\u0154\1\u0155\24\u0154\1\u0218\44\u0154\12\u01eb\1\u0219\67\u01eb"+ - "\1\u0206\1\u01b1\14\u01ee\1\u021a\65\u01ee\1\u0207\1\u01b6\14\u0160"+ - "\1\u0161\22\u0160\1\u021b\44\u0160\12\u0164\1\u0165\24\u0164\1\u021c"+ - "\44\u0164\12\u01f5\1\u021d\67\u01f5\1\u020a\1\u01c6\14\u01f8\1\u021e"+ - "\65\u01f8\1\u020b\1\u01cb\40\0\1\u021f\51\0\4\166\6\0"+ - "\1\166\6\0\5\166\1\0\11\166\1\u0220\1\166\1\0"+ - "\12\166\1\0\4\166\1\0\11\166\10\0\4\166\6\0"+ - "\1\166\6\0\5\166\1\0\6\166\1\u0221\4\166\1\0"+ - "\12\166\1\0\4\166\1\0\11\166\44\0\1\u0222\11\0"+ - "\1\u0222\67\0\1\u0223\14\0\1\u0223\66\0\1\u0224\14\0"+ - "\1\u0224\26\0\2\231\1\0\35\231\1\u0225\43\231\2\240"+ - "\1\0\35\240\1\u0226\43\240\14\u0150\1\u0151\23\u0150\1\u0227"+ - "\43\u0150\12\u0154\1\u0155\25\u0154\1\u0228\43\u0154\14\u0160\1\u0161"+ - "\23\u0160\1\u0229\43\u0160\12\u0164\1\u0165\25\u0164\1\u022a\43\u0164"+ - "\37\0\1\u022b\52\0\4\166\6\0\1\166\6\0\5\166"+ - "\1\0\13\166\1\0\4\166\1\u022c\5\166\1\0\4\166"+ - "\1\0\11\166\10\0\4\166\6\0\1\166\6\0\5\166"+ - "\1\0\5\166\1\u022d\5\166\1\0\12\166\1\0\4\166"+ - "\1\0\11\166\2\0\2\231\1\0\34\231\1\u022e\44\231"+ - "\2\240\1\0\34\240\1\u022f\44\240\14\u0150\1\u0151\22\u0150"+ - "\1\u0230\44\u0150\12\u0154\1\u0155\24\u0154\1\u0231\44\u0154\14\u0160"+ - "\1\u0161\22\u0160\1\u0232\44\u0160\12\u0164\1\u0165\24\u0164\1\u0233"+ - "\44\u0164\34\0\1\u0234\55\0\4\166\6\0\1\166\6\0"+ - "\5\166\1\0\13\166\1\0\12\166\1\0\4\166\1\0"+ - "\1\166\1\u0235\7\166\2\0\2\231\1\0\31\231\1\u0236"+ - "\47\231\2\240\1\0\31\240\1\u0237\47\240\14\u0150\1\u0151"+ - "\17\u0150\1\u0238\47\u0150\12\u0154\1\u0155\21\u0154\1\u0239\47\u0154"+ - "\14\u0160\1\u0161\17\u0160\1\u023a\47\u0160\12\u0164\1\u0165\21\u0164"+ - "\1\u023b\47\u0164\6\0\4\166\6\0\1\166\6\0\5\166"+ - "\1\0\13\166\1\0\4\166\1\u023c\5\166\1\0\4\166"+ - "\1\0\11\166\10\0\4\166\6\0\1\166\6\0\5\166"+ - "\1\0\10\166\1\u023d\2\166\1\0\12\166\1\0\4\166"+ - "\1\0\11\166\10\0\4\166\6\0\1\166\6\0\5\166"+ - "\1\0\4\166\1\u023e\6\166\1\0\12\166\1\0\4\166"+ - "\1\0\11\166\10\0\4\166\6\0\1\166\6\0\5\166"+ - "\1\0\5\166\1\u023f\5\166\1\0\12\166\1\0\4\166"+ - "\1\0\11\166\2\0\6\u0240\4\u0241\6\u0240\1\u0241\5\u0240"+ - "\1\0\5\u0241\1\u0240\13\u0241\1\u0240\12\u0241\1\u0240\4\u0241"+ - "\1\u0240\11\u0241\2\u0240\41\0\1\u0242\3\0\1\u0243\7\0"+ - "\1\u0244\1\u0245\20\0\1\u0246\12\0\4\166\6\0\1\166"+ - "\6\0\5\166\1\0\4\166\1\u0247\3\166\1\u0248\2\166"+ - "\1\0\4\166\1\u0249\1\u024a\4\166\1\0\4\166\1\0"+ - "\6\166\1\u024b\2\166\60\0\1\u024c\74\0\1\u024d\112\0"+ - "\1\u024e\102\0\1\u024f\104\0\1\u0250\33\0\4\166\6\0"+ - "\1\166\6\0\5\166\1\0\13\166\1\0\5\166\1\u0251"+ - "\4\166\1\0\4\166\1\0\11\166\10\0\4\166\6\0"+ - "\1\166\6\0\5\166\1\0\12\166\1\u0252\1\0\12\166"+ - "\1\0\4\166\1\0\11\166\10\0\4\166\6\0\1\166"+ - "\6\0\5\166\1\0\13\166\1\0\5\166\1\u0253\4\166"+ - "\1\0\4\166\1\0\11\166\10\0\4\166\6\0\1\166"+ - "\6\0\5\166\1\0\13\166\1\0\4\166\1\u0254\5\166"+ - "\1\0\4\166\1\0\11\166\10\0\4\166\6\0\1\166"+ - "\6\0\5\166\1\0\13\166\1\0\5\166\1\u0255\4\166"+ - "\1\0\4\166\1\0\11\166\45\0\1\u0256\132\0\1\u0257"+ - "\104\0\1\u0258\65\0\1\u0259\121\0\1\u025a\16\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\6\166\1\u025b\4\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\12\166"+ - "\1\0\4\166\1\0\1\166\1\u025c\7\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\12\166"+ - "\1\0\4\166\1\0\2\166\1\u025d\6\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\4\166"+ - "\1\u025e\5\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\12\166"+ - "\1\0\4\166\1\0\2\166\1\u025f\6\166\47\0\1\u0260"+ - "\71\0\1\u0261\103\0\1\u0262\113\0\1\u0263\102\0\1\u0264"+ - "\47\0\4\166\6\0\1\166\6\0\5\166\1\0\10\166"+ - "\1\u0265\2\166\1\0\12\166\1\0\4\166\1\0\11\166"+ - "\10\0\4\166\6\0\1\166\6\0\4\166\1\u0266\1\0"+ - "\13\166\1\0\12\166\1\0\4\166\1\0\11\166\10\0"+ - "\4\166\6\0\1\166\6\0\4\166\1\u0267\1\0\13\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\6\166\1\u0268\4\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\5\166\1\u0269\5\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\60\0\1\u026a"+ - "\125\0\1\u026b\50\0\1\u026c\103\0\1\u026d\44\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\5\166"+ - "\1\u026e\4\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\12\166"+ - "\1\0\4\166\1\0\7\166\1\u026f\1\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\10\166\1\u0270\2\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\10\166\1\u0271\2\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\103\0\1\u0272"+ - "\61\0\1\u025a\125\0\1\u0264\103\0\1\u0273\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\12\166"+ - "\1\0\4\166\1\0\10\166\1\u0274\10\0\4\166\6\0"+ - "\1\166\6\0\5\166\1\0\13\166\1\0\6\166\1\u025f"+ - "\3\166\1\0\4\166\1\0\11\166\10\0\4\166\6\0"+ - "\1\166\6\0\5\166\1\0\13\166\1\0\12\166\1\0"+ - "\4\166\1\0\10\166\1\u0269\10\0\4\166\6\0\1\166"+ - "\6\0\5\166\1\0\13\166\1\0\12\166\1\0\4\166"+ - "\1\0\10\166\1\u0275\35\0\1\u025a\150\0\1\u0276\11\0"+ - "\4\166\6\0\1\166\6\0\4\166\1\u025f\1\0\13\166"+ - "\1\0\12\166\1\0\4\166\1\0\11\166\10\0\4\166"+ - "\6\0\1\166\6\0\5\166\1\0\13\166\1\0\12\166"+ - "\1\0\4\166\1\0\7\166\1\u0277\1\166\57\0\1\u025a"+ - "\34\0\4\166\6\0\1\166\6\0\5\166\1\0\13\166"+ - "\1\0\4\166\1\u025f\5\166\1\0\4\166\1\0\11\166"+ - "\2\0"; - - /** - * The transition table of the DFA - */ - final private static int yytrans [] = yy_unpack(yy_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", //$NON-NLS-1$ - "Internal error: unknown state", //$NON-NLS-1$ - "Error: could not match input", //$NON-NLS-1$ - "Error: pushback value was too large" //$NON-NLS-1$ - }; - - /** - * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code> - */ - private final static byte YY_ATTRIBUTE[] = { - 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9, - 1, 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, - 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 9, 1, 1, - 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, - 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, - 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, - 1, 9, 9, 1, 1, 9, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, - 9, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, 3, 3, 3, 3, 9, - 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 9, 9, 1, 9, 3, 3, - 3, 3, 3, 3, 9, 9, 1, 1, 1, 9, 1, 1, 1, 9, 9, 1, - 1, 0, 1, 0, 9, 1, 2, 1, 2, 1, 1, 0, 0, 0, 9, 1, - 1, 9, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, - 0, 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 0, 9, 1, 1, 0, - 1, 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 9, 0, 0, 0, 1, 0, 0, 1, 0, 0, 9, 0, 0, 1, 0, - 0, 9, 0, 0, 0, 1, 0, 1, 1, 0, 0, 9, 0, 0, 0, 1, - 0, 1, 1, 0, 0, 9, 9, 9, 0, 9, 9, 1, 1, 1, 1, 2, - 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 1, 1, 2, - 13, 3, 2, 2, 13, 3, 2, 0, 1, 1, 0, 1, 1, 0, 9, 9, - 9, 0, 0, 1, 1, 1, 9, 0, 0, 13, 9, 13, 9, 9, 1, 1, - 0, 0, 1, 3, 2, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 0, 2, 3, 3, 2, 2, 3, 3, 2, 1, 1, 1, - 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 2, 3, 3, 2, 2, 3, - 3, 2, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 9, 9, 0, 1, - 9, 0, 1, 1, 5, 13, 13, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 0, 1, 1, 9, 1, 3, 2, 3, 2, 1, 0, 9, 1, 0, 1, 3, - 2, 3, 2, 1, 0, 9, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, - 0, 1, 1, 2, 2, 0, 0, 2, 2, 0, 0, 0, 1, 1, 1, 0, - 0, 0, 9, 9, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 0, 1, - 1, 9, 9, 9, 1, 1, 2, 2, 2, 2, 0, 1, 1, 1, 1, 2, - 2, 2, 2, 9, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 0, - 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 9, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, - 1, 0, 0, 1, 1, 0, 1 - }; - - /** 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; - - /** 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; - - /** - * 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 int fTokenCount = 0; - - // required holders for white-space compacting - private boolean fShouldLoadBuffered = false; - private String fBufferedContext = null; - private int fBufferedStart = 1; - private int fBufferedLength = 0; - private ContextRegionContainer fBufferedEmbeddedContainer = null; - private String f_context = null; - - // state stack for handling embedded regions - private IntStack fStateStack = new IntStack(); - // a "hint" as to what an embedded region should be evaluated - private String fEmbeddedHint = UNDEFINED; - // a "hint" as to what state to enter once an embedded region has - // been completed - private int fEmbeddedPostState = YYINITIAL; - // the container used to create embedded regions - private ContextRegionContainer fEmbeddedContainer = null; - private static final String PROXY_CONTEXT = "PROXY_CONTEXT"; - - private String context = null; - private int start = 0; - private int textLength = 0; - private int length = 0; - - // offset for tracking position specific block tags - private int fOffset = 0; - - // the name of the current tag being opened - private String fCurrentTagName = null; - - // the name of the current tag inside of an embedded region - private String internalTagName = null; - private String internalContext = null; - - // the list of tag name BlockMarkers - private List fBlockMarkers = new ArrayList(0); - private List fNestablePrefixes = new ArrayList(1); - - // where the last internal container block was found - private int fLastInternalBlockStart = -1; - - // required to not seek text blocks on an end tag - private boolean fIsBlockingEnabled = false; - private boolean fIsCaseSensitiveBlocking = true; - - private static final boolean fForbidJSP = false; - - private int fELlevel = 0; - - private JSPParserRegionFactory fRegionFactory = new JSPParserRegionFactory(); - - /** - * user method - */ - public final void addBlockMarker(BlockMarker marker) { - if(containsTagName(marker.getTagName())) - return; - fBlockMarkers.add(marker); - } - /** - * user method - */ - public final void addNestablePrefix(TagMarker marker) { - fNestablePrefixes.add(marker); - } - /* user method */ - public List getNestablePrefixes() { - return fNestablePrefixes; - } - /** - * user method - */ - private boolean isNestable(String tagName) { - //Iterator blocks = fNestablePrefixes.iterator(); - //while(blocks.hasNext()) { - // TagMarker marker = (TagMarker)blocks.next(); - // String markerName = marker.getTagName(); - // if(tagName.length() > markerName.length() + 1 && tagName.startsWith(markerName) && tagName.charAt(markerName.length()) == ':') { - // return marker.isGlobal() || getOffset() >= marker.getMarker().getStart(); - // } - //} - //return false; - return true; - } - /** - * user method - */ - public final void removeNestablePrefix(String name) { - if (fNestablePrefixes != null) { - Iterator nestables = fNestablePrefixes.iterator(); - while (nestables.hasNext()) { - if (((TagMarker) nestables.next()).getTagName().equalsIgnoreCase(name)) - nestables.remove(); - } - } - } - /** - * user method - */ - public final void removeBlockMarker(BlockMarker marker) { - fBlockMarkers.remove(marker); - } - /** - * user method - */ - public final void removeBlockMarker(String tagname) { - if (fBlockMarkers != null) { - Iterator blocks = fBlockMarkers.iterator(); - while (blocks.hasNext()) { - if (((BlockMarker) blocks.next()).getTagName().equals(tagname)) - blocks.remove(); - } - } - } - /* user method */ - private final void assembleEmbeddedTagSequence(String startType, String endTagName) { - assembleEmbeddedContainer(startType, null, endTagName); - } - /* user method */ - private final void assembleEmbeddedContainer(String startType, String[] endTypes) { - assembleEmbeddedContainer(startType, endTypes, null); - } - /* user method */ - private final void assembleEmbeddedContainer(String startType, String endType) { - assembleEmbeddedContainer(startType, new String[]{endType}, null); - } - /** - * user method - * - * Assembles an embedded container beginning with the given startType as - * the first ContextRegion within it and of the type fEmbeddedHint. The - * endTypes[] array contains the context types that will cause a successful - * exit. Use of the endTagName parameter alters this behavior to force an - * exit on an XML_TAG_CLOSE after seeing an XML_TAG_NAME whose significant - * text matches the endTagName String. All contents in between are - * insignificant, and yes, this means comments are allowed inside. - **/ - private final void assembleEmbeddedContainer(String startType, String[] endTypes, String endTagName) { - // the context of the region being added to the embedded container - internalContext = startType; - // keep track of where this container began; to provide relative indeces for the regions - int containerStart = yychar; - boolean notFinished = true; - // keep track of where we seem to be so that the endTagName can be checked - boolean isInEndTag = false; - boolean isInFirstTag = true; - // create the embedded container and setup its "type" - if (fEmbeddedContainer == null) { - fEmbeddedContainer = new ContextRegionContainer(); - fEmbeddedContainer.setType(fEmbeddedHint); - fEmbeddedContainer.setStart(containerStart); - // TODO: parent region needs to be set .... but not sure where to get it from - // fEmbeddedContainer.setParent(parentRegion); - } - containerStart = fEmbeddedContainer.getStart(); - while (notFinished) { - // add the region to the container - if (internalContext != null && internalContext != PROXY_CONTEXT) { - ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength()); - fEmbeddedContainer.getRegions().add(newToken); - fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength()); - fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength()); - // DW, 4/16/2003 token regions no longer have parents - //newToken.setParent(fEmbeddedContainer); - } - try { - // longscan determines whether to attempt a blockTagScan within the embedded container - boolean longscan = false; - // save the tokenizer state in case of a block tag scan - int previousState = yystate(); - String previousCurrentTagName = fCurrentTagName; - int previousPostState = fEmbeddedPostState; - String previousEmbeddedHint = fEmbeddedHint; - // determine if a block tag scan is necessary - if (internalContext == XML_TAG_NAME) { - internalTagName = yytext(); - if(!isNestable(internalTagName)) { - internalTagName = null; - // snagged a tag name we shouldn't have - fEmbeddedPostState = ST_ABORT_EMBEDDED; - notFinished = false; - } - } - else if (internalContext == XML_TAG_OPEN || internalContext == XML_END_TAG_OPEN) { - internalTagName = null; - } - // do upkeep for endTagName usage; must be here since the next token could be the close - if (internalContext == XML_END_TAG_OPEN) { - isInEndTag = true; - } else if (internalContext == XML_TAG_CLOSE) { - isInFirstTag = isInEndTag = false; - } else { - ITextRegionList embeddedRegions = fEmbeddedContainer.getRegions(); - if (embeddedRegions.size() > 2 && (embeddedRegions.get(embeddedRegions.size()-1)).getType() == XML_TAG_CLOSE && (embeddedRegions.get(embeddedRegions.size() - 3)).getType() == XML_TAG_OPEN && internalTagName != null) { - if (containsTagName(internalTagName)) { - longscan = true; - yybegin(ST_BLOCK_TAG_SCAN); - } - } - } - if (longscan) - fCurrentTagName = internalTagName; - // read the next region and context - internalContext = primGetNextToken(); - if (longscan) { - // Returning from a block tag scan requires restoring some state variables - // as well as handling the block region and setting up for normal scanning - // inside the embedded container - ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength()); - fEmbeddedContainer.getRegions().add(newToken); - fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength()); - fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength()); - // DW, 4/16/2003 token regions no longer have parents - // newToken.setParent(fEmbeddedContainer); - longscan = false; - fEmbeddedPostState = previousPostState; - fEmbeddedHint = previousEmbeddedHint; - fCurrentTagName = previousCurrentTagName; - yybegin(previousState); - internalContext = primGetNextToken(); - } - } catch (IOException e) { - // primGetNextToken() calls may throw an IOException - // catch and do nothing since the isEOF check below - // will properly exit if the input was too short - } catch (Exception f) { - // some other exception happened; never should - Logger.logException(f); - } - boolean isEndingType = yystate() == ST_ABORT_EMBEDDED; - if(!isEndingType) { - // check for ending context - if (endTagName == null) { - for (int i = 0; i < endTypes.length; i++) { - isEndingType = isEndingType || (internalContext == endTypes[i]); - } - } - else { - isEndingType = ((isInEndTag && internalContext == XML_TAG_CLOSE) || (isInFirstTag && internalContext == XML_EMPTY_TAG_CLOSE)) && internalTagName != null && internalTagName.equals(endTagName); - } - } - ITextRegionList embeddedList = fEmbeddedContainer.getRegions(); - notFinished = notFinished && ((!isEndingType) && !isEOF() && (endTagName != null || internalContext != UNDEFINED) && !(internalContext == PROXY_CONTEXT && (embeddedList.get(embeddedList.size()-1)).getType() == UNDEFINED)); - } - // finish adding the last context - if (internalContext != null && internalContext != PROXY_CONTEXT) { - ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength()); - fEmbeddedContainer.getRegions().add(newToken); - // DW, 4/16/2003 token regions no longer have parents - //newToken.setParent(fEmbeddedContainer); - fEmbeddedContainer.setLength(yychar - containerStart + yylength()); - fEmbeddedContainer.setTextLength(yychar - containerStart + yylength()); - } - yybegin(fEmbeddedPostState); - } - /* user method */ - public final boolean isCaseSensitiveBlocking() { - return fIsCaseSensitiveBlocking; - } - /* user method */ - public final void setCaseSensitiveBlocking(boolean newValue) { - fIsCaseSensitiveBlocking = newValue; - } - /* user method */ - public boolean getBlockMarkerAllowsJSP() { - return getBlockMarkerAllowsJSP(fCurrentTagName); - } - /* user method */ - public boolean getBlockMarkerAllowsJSP(String name) { - Iterator iterator = fBlockMarkers.iterator(); - while(iterator.hasNext()) { - BlockMarker marker = (BlockMarker)iterator.next(); - boolean casesensitive = marker.isCaseSensitive(); - if(casesensitive && marker.getTagName().equals(name)) - return marker.allowsJSP(); - else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name)) - return marker.allowsJSP(); - } - return true; - } - /* user method */ - public boolean getBlockMarkerCaseSensitivity() { - return getBlockMarkerCaseSensitivity(fCurrentTagName); - } - public boolean getBlockMarkerCaseSensitivity(String name) { - Iterator iterator = fBlockMarkers.iterator(); - while(iterator.hasNext()) { - BlockMarker marker = (BlockMarker)iterator.next(); - boolean casesensitive = marker.isCaseSensitive(); - if(casesensitive && marker.getTagName().equals(name)) - return casesensitive; - else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name)) - return casesensitive; - } - return true; - } - /* user method */ - public String getBlockMarkerContext() { - return getBlockMarkerContext(fCurrentTagName); - } - /* user method */ - public String getBlockMarkerContext(String name) { - Iterator iterator = fBlockMarkers.iterator(); - while(iterator.hasNext()) { - BlockMarker marker = (BlockMarker)iterator.next(); - if(marker.getTagName().equals(name)) - return marker.getContext(); - } - return BLOCK_TEXT; - } - /* user method */ - public List getBlockMarkers() { - return fBlockMarkers; - } - /* user method */ - public final int getOffset() { - return fOffset + yychar; - } - private final boolean isBlockMarker() { - return isBlockMarker(fCurrentTagName); - } - private final boolean isBlockMarker(String tagName) { - if (!fIsBlockingEnabled) - return false; - return containsTagName(tagName); - } - /** - * user method - */ - public final void beginBlockTagScan(String newTagName) { - beginBlockMarkerScan(newTagName, BLOCK_TEXT); - } - /** - * user method - * - * Special tokenizer setup. Allows tokenization to be initiated at the - * start of a text block within a "newTagName" tag. - * - * Example: - * Tokenizer toker = new Tokenizer(); - * toker.setCaseSensitiveBlocking(false); - * toker.reset(new java.io.StringReader("afiuhqwkejhtasihgalkwhtq</scripter></scr></script>asgdasga")); - * toker.beginBlockMarkerScan("script", BLOCK_TEXT); - * toker.getRegions(); - * - * Returns: - * BLOCK_TEXT: 0-40 - * XML_END_TAG_OPEN: 41-42 - * XML_TAG_NAME: 43-48 - * XML_TAG_CLOSE: 49-49 - * XML_CONTENT: 50-57 - * - */ - public final void beginBlockMarkerScan(String newTagName, String blockcontext) { - yybegin(ST_BLOCK_TAG_SCAN); - fCurrentTagName = newTagName; - } - -/** - * Method doScan. - * - * Returns a context region for all of the text from the current position upto the end of input or - * to right *before* the first occurence of searchString - * - * @param searchString - target string to search for ex.: "-->", "</tagname" - * @param requireTailSeparator - whether the target must be immediately followed by whitespace or '>' - * @param allowJSP - check for and allow for JSP markup <%%> - * @param context - the context of the scanned region if non-zero length - * @param exitState - the state to go to if the region was of non-zero length - * @param abortState - the state to go to if the searchString was found immediately - * @return String - the context found: the desired context on a non-zero length match, the abortContext on immediate success - * @throws IOException - */ -private final String doScan(String searchString, boolean requireTailSeparator, boolean allowJSP, boolean allowCDATA, String searchContext, int exitState, int immediateFallbackState) throws IOException { - boolean stillSearching = true; - // Disable further block (probably) - fIsBlockingEnabled = false; - int searchStringLength = searchString.length(); - int n = 0; - char lastCheckChar; - int i; - boolean same = false; - // Check for JSP starts ("<%") if the tag is global like SCRIPT or STYLE - boolean checkJSPs = allowJSP && !fForbidJSP; - boolean checkedForJSPsOnce = !checkJSPs; - boolean checkedJSPsAtStartOnce = false; - - while (stillSearching) { - n = 0; - // Ensure that enough data from the input exists to compare against the search String. - n = yy_advance(); - while(n != YYEOF && yy_currentPos < searchStringLength) - n = yy_advance(); -// c = (char) n; - // If the input was too short or we've exhausted the input, stop immediately. - if (n == YYEOF && checkedForJSPsOnce) { - stillSearching = false; - } - else { - /** - * Look for starting JSPs "<%" - */ - checkedForJSPsOnce = true; - // 1) yy_currentPos - searchStringLength : There's at least searchStringLength of input available; once that's read, check for JSPs - // --- - // Look for a JSP beginning at current-searchStringLength; if so, backup and switch scanner states to handle it. - // Ensure that we've not encountered a complete block (<%%>) that was *shorter* than the closeTagString and - // thus found twice at current-targetLength [since the first scan would have come out this far anyway]. - if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart && - yy_buffer[yy_currentPos - searchStringLength] == '<' && yy_buffer[yy_currentPos - searchStringLength + 1] == '%') { - fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength; - yy_currentPos = yy_markedPos + 1; - int resumeState = yystate(); - yybegin(ST_BLOCK_TAG_INTERNAL_SCAN); - if(yy_markedPos == yy_startRead) { - String jspContext = primGetNextToken(); - yybegin(resumeState); - return jspContext; - } - return searchContext; - } - // 2) yy_currentPos - jspstarter.length : There's not searchStringLength of input available; check for a JSP 2 spots back in what we could read - // --- - // Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section - // since it relies upon *having* closeTagStringLength amount of input to work as designed. Must be sure we don't - // spill over the end of the buffer while checking. - else if(checkJSPs && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 && - yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') { - fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1; - yy_currentPos = yy_markedPos + 1; - int resumeState = yystate(); - yybegin(ST_BLOCK_TAG_INTERNAL_SCAN); - if(yy_markedPos == yy_startRead) { - String jspContext = primGetNextToken(); - yybegin(resumeState); - return jspContext; - } - return searchContext; - } - // 3) yy_currentPos..(yy_currentPos+jspStartlength-1) : Check at the start of the block one time - // --- - // Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section - // since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed. - else if(checkJSPs && !checkedJSPsAtStartOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 && - yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') { - checkedJSPsAtStartOnce = true; - fLastInternalBlockStart = yy_markedPos = yy_startRead; - yy_currentPos = yy_markedPos + 1; - int resumeState = yystate(); - yybegin(ST_BLOCK_TAG_INTERNAL_SCAN); - if(yy_markedPos == yy_startRead) { - String jspContext = primGetNextToken(); - yybegin(resumeState); - return jspContext; - } - return searchContext; - } - - - /** - * Look for starting CDATA "<![CDATA[" - */ - // 1) yy_currentPos - searchStringLength: There's at least searchStringLength of input available; once that's read, check for CDATA - // --- - // Look for a CDATA beginning at current-searchStringLength; if so, backup and switch scanner states to handle it. - // Ensure that we've not encountered a complete block (<[!CDATA[]]>) that was *shorter* than the closeTagString and - // thus found twice at current-targetLength [since the first scan would have come out this far anyway]. -/* if(checkCDATA && yy_currentPos > searchStringLength && yy_currentPos + searchStringLength < yy_buffer.length && yy_currentPos - searchStringLength != fLastInternalBlockStart && - charsMatch(cdataStarter, yy_buffer, 0, yy_currentPos - searchStringLength)) { - fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength; - yy_currentPos = yy_markedPos + 1; - int resumeState = yystate(); - // go to a state where CDATA can be found - if (fEmbeddedContainer == null) { - fEmbeddedContainer = new ContextRegionContainer(); - fEmbeddedContainer.setType(searchContext); - fEmbeddedContainer.setStart(yychar); - } - ITextRegion newToken = fRegionFactory.createToken(searchContext, yychar, yylength(), yylength()); - fEmbeddedContainer.getRegions().add(newToken); - fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength()); - fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength()); - yybegin(YYINITIAL); - String context = primGetNextToken(); - if(context.equals(XMLRegionContexts.XML_CDATA_OPEN)) { - assembleEmbeddedContainer(XMLRegionContexts.XML_CDATA_OPEN, XMLRegionContexts.XML_CDATA_CLOSE); - } - yybegin(resumeState); - return searchContext; - } -*//* - // 2) yy_currentPos - cdataStarter.length: There's not searchStringLength of input available; check for a CDATA right here spots back in what we could read - // --- - // Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section - // since it relies upon *having* closeTagStringLength amount of input to work as designed. Must be sure we don't - // spill over the end of the buffer while checking. - else if(checkCDATA && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 && - yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') { - fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1; - yy_currentPos = yy_markedPos + 1; - int resumeState = yystate(); - yybegin(ST_BLOCK_TAG_INTERNAL_SCAN); - if(yy_markedPos == yy_startRead) { - String jspContext = primGetNextToken(); - yybegin(resumeState); - return jspContext; - } - return searchContext; - } - // 3) yy_currentPos : Check at the start of the block one time - // --- - // Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section - // since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed. - else if(checkCDATA && !checkedForCDATAOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 && - yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') { - checkedForCDATAOnce = true; - fLastInternalBlockStart = yy_markedPos = yy_startRead; - yy_currentPos = yy_markedPos + 1; - int resumeState = yystate(); - yybegin(ST_BLOCK_TAG_INTERNAL_SCAN); - if(yy_markedPos == yy_startRead) { - String jspContext = primGetNextToken(); - yybegin(resumeState); - return jspContext; - } - return searchContext; - } -*/ - // Check the characters in the target versus the last targetLength characters read from the buffer - // and see if it matches - if (n == YYEOF) { - stillSearching = false; - } - else { - same = true; - // safety check for array accesses - if(yy_currentPos >= searchStringLength && yy_currentPos <= yy_buffer.length) { - for(i = 0; i < searchStringLength; i++) { - if(same && fIsCaseSensitiveBlocking) - same = yy_buffer[i + yy_currentPos - searchStringLength] == searchString.charAt(i); - else if(same && !fIsCaseSensitiveBlocking) - same = Character.toLowerCase(yy_buffer[i + yy_currentPos - searchStringLength]) == Character.toLowerCase(searchString.charAt(i)); - } - } - // safety check failed; no match is possible right now - else { - same = false; - } - } - if (same && requireTailSeparator && yy_currentPos < yy_buffer.length) { - // Additional check for close tags to ensure that targetString="</script" doesn't match - // "</scriptS" - lastCheckChar = yy_buffer[yy_currentPos]; - // Succeed on "</script>" and "</script " - if(lastCheckChar == '>' || Character.isWhitespace(lastCheckChar)) - stillSearching = false; - } - else { - stillSearching = !same || (yy_currentPos < yy_startRead + searchStringLength); - } - } - } - if (n != YYEOF || same) { - // We've stopped short of the end or definitely found a match - yy_markedPos = yy_currentPos - searchStringLength; - yy_currentPos = yy_markedPos + 1; - // If the searchString occurs at the very beginning of what would have - // been a Block, resume scanning normally immediately - if (yy_markedPos == yy_startRead) { - yybegin(immediateFallbackState); - return primGetNextToken(); - } - } - else { - // We ran through the rest of the input - yy_markedPos = yy_currentPos; - yy_currentPos++; - } - yybegin(exitState); - // If the ending occurs at the very beginning of what would have - // been a Block, resume scanning normally immediately - if(yy_markedPos == yy_startRead) - return primGetNextToken(); - return searchContext; -} -/** - * user method - * does a lookahead for the current tag name - */ -private final String doBlockTagScan() throws IOException { - fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity(); - return doScan("</" + fCurrentTagName, true, getBlockMarkerAllowsJSP(), true, getBlockMarkerContext(fCurrentTagName), YYINITIAL, YYINITIAL); -} - /** - * user method - * - * Converts the raw context String returned by the primGetNextToken() - * method into a full ITextRegion by pulling in values for the - * current offset within the scanning text. - * - * Returns null when EOF is encountered and attaches intermittently - * discovered whitespace onto the end of useful regions. - * - * Note that this algorithm caches the token following the one being returned - * so that whitespace can be collapsed. - */ - public final ITextRegion getNextToken() throws IOException { - fEmbeddedContainer = null; - // load the starting non-whitespace token (assume that it is so) - if (fShouldLoadBuffered) { - if (fBufferedEmbeddedContainer != null) { - ITextRegion container = fBufferedEmbeddedContainer; - fBufferedEmbeddedContainer = null; - fShouldLoadBuffered = false; - return container; - } - context = fBufferedContext; - start = fBufferedStart; - textLength = length = fBufferedLength; - fShouldLoadBuffered = false; - } else { - context = primGetNextToken(); - if (context == PROXY_CONTEXT) { - return fEmbeddedContainer; - } else if (context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_NAME) { - if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead)) - fCurrentTagName = yytext(); - else - fCurrentTagName = null; - } else if (context == XML_TAG_OPEN) { - fIsBlockingEnabled = true; - } else if (context == XML_END_TAG_OPEN) { - fIsBlockingEnabled = false; - } - start = yychar; - textLength = length = yylength(); - if (yy_atEOF) { - fTokenCount++; - return null; - } - } - // store the next token - f_context = primGetNextToken(); - if (f_context == PROXY_CONTEXT) { - fBufferedEmbeddedContainer = fEmbeddedContainer; - fShouldLoadBuffered = true; - } else if (f_context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_NAME) { - if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead)) - fCurrentTagName = yytext(); - else - fCurrentTagName = null; - } else if (f_context == XML_TAG_OPEN) { - fIsBlockingEnabled = true; - } else if (f_context == XML_END_TAG_OPEN) { - fIsBlockingEnabled = false; - } - fBufferedContext = f_context; - fBufferedStart = yychar; - fBufferedLength = yylength(); - fShouldLoadBuffered = true; - if (fBufferedContext == WHITE_SPACE) { - fShouldLoadBuffered = false; - length += fBufferedLength; - } - if (context == null) { - // EOF - if (Debug.debugTokenizer) { - System.out.println(getClass().getName() + " discovered " + fTokenCount + " tokens."); //$NON-NLS-2$//$NON-NLS-1$ - } - return null; - } - fTokenCount++; - return fRegionFactory.createToken(context, start, textLength, length, null, fCurrentTagName); - } - /* user method */ - public JSPTokenizer(){ - super(); - } - /* user method */ - public JSPTokenizer(char[] charArray){ - this(new CharArrayReader(charArray)); - } - /* user method */ - public void reset(char[] charArray) { - reset(new CharArrayReader(charArray), 0); - } - /* user method */ - public void reset(char[] charArray, int newOffset) { - reset(new CharArrayReader(charArray), newOffset); - } - /* user method */ - public void reset(java.io.InputStream in) { - reset(new java.io.InputStreamReader(in), 0); - } - /* user method */ - public void reset(java.io.InputStream in, int newOffset) { - reset(new java.io.InputStreamReader(in), newOffset); - } - /* user method */ - public void reset(java.io.Reader in) { - reset(in, 0); - } - /** - * user method * - * - * Reset internal counters and vars to "newly created" values, in the hopes - * that resetting a pre-existing tokenizer is faster than creating a new one. - * - * This method contains code blocks that were essentially duplicated from the - * <em>generated</em> output of this specification before this method was - * added. Those code blocks were under the above copyright. - */ - public void reset(java.io.Reader in, int newOffset) { - if (Debug.debugTokenizer) { - System.out.println("resetting tokenizer");//$NON-NLS-1$ - } - fOffset = newOffset; - - /* 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; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /* 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; - - - /* user vars: */ - fTokenCount = 0; - - fShouldLoadBuffered = false; - fBufferedContext = null; - fBufferedStart = 1; - fBufferedLength = 0; - fStateStack = new IntStack(); - - fLastInternalBlockStart = -1; - - context = null; - start = 0; - textLength = 0; - length = 0; - - fEmbeddedContainer = null; - - fELlevel = 0; - } - /** - * user method - * - */ - public BlockTokenizer newInstance() { - JSPTokenizer newInstance = new JSPTokenizer(); - // global tagmarkers can be shared; they have no state and - // are never destroyed (e.g. 'release') - for(int i = 0; i < fBlockMarkers.size(); i++) { - BlockMarker blockMarker = (BlockMarker) fBlockMarkers.get(i); - if(blockMarker.isGlobal()) - newInstance.addBlockMarker(blockMarker); - } - for(int i = 0; i < fNestablePrefixes.size(); i++) { - TagMarker marker = (TagMarker) fNestablePrefixes.get(i); - if(marker.isGlobal()) - newInstance.addNestablePrefix(marker); - } - return newInstance; - } - /* user method */ - private final String scanXMLCommentText() throws IOException { - // Scan for '-->' and return the text up to that point as - // XML_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which - // case change to the ST_XML_COMMENT_END state and return the next - // context as usual. - return doScan("-->", false, true, true, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END); - } - /* user method */ - private final String scanJSPCommentText() throws IOException { - // Scan for '--%>' and return the text up to that point as - // JSP_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which - // case change to the ST_JSP_COMMENT_END state and return the next - // context as usual. - return doScan("--%>", false, false, true, JSP_COMMENT_TEXT, ST_JSP_COMMENT_END, ST_JSP_COMMENT_END); - } - - - /** - * 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 JSPTokenizer(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 JSPTokenizer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed DFA transition table. - * - * @param packed the packed transition table - * @return the unpacked transition table - */ - private static int [] yy_unpack(String packed) { - int [] trans = new int[29580]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 7346) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - value--; - do trans[j++] = value; while (--count > 0); - } - return trans; - } - - /** - * 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 < 1376) { - 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 - from the SED JFlex skeleton - * - * @param errorCode the code of the errormessage to display - */ - private void yy_ScanError(int errorCode) { - try { - Logger.log(Logger.ERROR, YY_ERROR_MSG[errorCode]); - } - catch (ArrayIndexOutOfBoundsException e) { - Logger.log(Logger.ERROR, YY_ERROR_MSG[YY_UNKNOWN_ERROR]); - } - // DO NOT EXIT the VM on an 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()! - */ - void yypushback(int number) { - if ( number > yylength() ) - yy_ScanError(YY_PUSHBACK_2BIG); - - yy_markedPos -= number; - } - - /** - * user method - skeleton.sed - */ - protected final boolean containsTagName(char[] markerTagName, int offset, int tagnameLength) { - for(int j = 0; j < fBlockMarkers.size(); j++) { - BlockMarker marker = (BlockMarker)fBlockMarkers.get(j); - if(marker.getTagName().length() == tagnameLength) { - boolean matchesSoFar = true; - for(int i = 0; i < tagnameLength && matchesSoFar; i++) { - if(marker.isCaseSensitive()) { - if(marker.getTagName().charAt(i) != markerTagName[i + offset]) - matchesSoFar = false; - } - else { - if(Character.toLowerCase(marker.getTagName().charAt(i)) != Character.toLowerCase(markerTagName[i + offset])) - matchesSoFar = false; - } - } - if(matchesSoFar) - return true; - } - } - return false; - } - - /** - * user method - skeleton.sed - * - * Return ALL of the regions scannable within the remaining text - * Note: for verification use - */ - public final List getRegions() { - List tokens = new ArrayList(); - ITextRegion region = null; - try { - region = getNextToken(); - while(region != null) { - if (region != null) { - tokens.add(region); - } - region = getNextToken(); - } - } - catch (StackOverflowError e) { - Logger.logException(getClass().getName()+": input could not be tokenized correctly at position " + getOffset(), e);//$NON-NLS-1$ - throw e; - } - catch (Exception e) { - // Since this is convenience method and NOT the recommended - // way of getting tokens, many errors are simply hidden - Logger.logException("Exception not handled retrieving regions: " + e.getLocalizedMessage(), e);//$NON-NLS-1$ - } - return tokens; - } - /** - * user method - skeleton.sed - */ - private final void dump(String s) { - if (Debug.debugTokenizer) { - System.out.println(s + " (" + yychar + "-" + //$NON-NLS-2$//$NON-NLS-1$ - (yylength() + yychar) + "):\'" +//$NON-NLS-1$ - StringUtils.escape(yytext()) + "\'");//$NON-NLS-1$ - } - } - /* user method - skeleton.sed */ - public final boolean isEOF() { - return yy_atEOF; - } -/* user method - skeleton.sed */ -protected final boolean containsTagName(String markerTagName) { - Iterator blocks = fBlockMarkers.iterator(); - while(blocks.hasNext()) { - BlockMarker marker = (BlockMarker)blocks.next(); - if(marker.isCaseSensitive()) { - if(marker.getTagName().equals(markerTagName)) - return true; - } - else { - if(marker.getTagName().equalsIgnoreCase(markerTagName)) - return true; - } - } - return false; -} - - /** - * 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; - // do nothing, this is the downstream parser's job - - } - } - - - /** - * 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; - - yy_pushbackPos = -1; - boolean yy_was_pushback; - - while (true) { - - yychar+= yylength(); - - boolean yy_counted = false; - for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos; - yy_currentPos++) { - switch (yy_buffer[yy_currentPos]) { - case '\r': - yyline++; - yy_counted = true; - break; - case '\n': - if (yy_counted) - yy_counted = false; - else { - yyline++; - } - break; - default: - yy_counted = false; - } - } - - if (yy_counted) { - if ( yy_advance() == '\n' ) yyline--; - if ( !yy_atEOF ) yy_currentPos--; - } - - yy_action = -1; - - yy_currentPos = yy_startRead = yy_markedPos; - - yy_state = yy_lexical_state; - - yy_was_pushback = false; - - yy_forAction: { - while (true) { - - yy_input = yy_advance(); - - if ( yy_input == YYEOF ) break yy_forAction; - - int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ]; - if (yy_next == -1) break yy_forAction; - yy_state = yy_next; - - int yy_attributes = YY_ATTRIBUTE[yy_state]; - if ( (yy_attributes & 2) > 0 ) - yy_pushbackPos = yy_currentPos; - - if ( (yy_attributes & 1) > 0 ) { - yy_was_pushback = (yy_attributes & 4) > 0; - yy_action = yy_state; - yy_markedPos = yy_currentPos; - if ( (yy_attributes & 8) > 0 ) break yy_forAction; - } - - } - } - - if (yy_was_pushback) - yy_markedPos = yy_pushbackPos; - - switch (yy_action) { - - case 599: - case 604: - case 611: - case 616: - { - if(Debug.debugTokenizer) - dump("jsp directive tag name");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_ATTRIBUTE_NAME); - return JSP_DIRECTIVE_NAME; - } - case 632: break; - case 563: - case 565: - case 566: - case 567: - case 568: - case 569: - case 570: - { - if(Debug.debugTokenizer) - dump("\nCDATA start");//$NON-NLS-1$ - fStateStack.push(yystate()); - yybegin(ST_CDATA_TEXT); - return XML_CDATA_OPEN; - } - case 633: break; - case 555: - { - if(Debug.debugTokenizer) - dump("jsp:root tag name");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_ATTRIBUTE_NAME); - return JSP_ROOT_TAG_NAME; - } - case 634: break; - case 547: - { - if(Debug.debugTokenizer) - dump("element");//$NON-NLS-1$ - yybegin(ST_XML_ELEMENT_DECLARATION); - return XML_ELEMENT_DECLARATION; - } - case 635: break; - case 546: - { - if(Debug.debugTokenizer) - dump("attlist");//$NON-NLS-1$ - yybegin(ST_XML_ATTLIST_DECLARATION); - return XML_ATTLIST_DECLARATION; - } - case 636: break; - case 545: - { - if(Debug.debugTokenizer) - dump("doctype");//$NON-NLS-1$ - yybegin(ST_XML_DOCTYPE_DECLARATION); - return XML_DOCTYPE_DECLARATION; - } - case 637: break; - case 531: - { - if(Debug.debugTokenizer) - dump("doctype external id");//$NON-NLS-1$ - fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_PUBREF; - yybegin(ST_XML_DOCTYPE_ID_PUBLIC); - return XML_DOCTYPE_EXTERNAL_ID_PUBLIC; - } - case 638: break; - case 530: - { - if(Debug.debugTokenizer) - dump("doctype external id");//$NON-NLS-1$ - fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_SYSREF; - yybegin(ST_XML_DOCTYPE_ID_SYSTEM); - return XML_DOCTYPE_EXTERNAL_ID_SYSTEM; - } - case 639: break; - case 524: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction target");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_DHTML_ATTRIBUTE_NAME); - return XML_TAG_NAME; - } - case 640: break; - case 501: - case 540: - case 541: - { - return JSP_VBL_QUOTED_CONTENT; - } - case 641: break; - case 491: - case 536: - case 537: - { - return JSP_EL_QUOTED_CONTENT; - } - case 642: break; - case 483: - { - if(Debug.debugTokenizer) - dump("\nJSP comment close");//$NON-NLS-1$ - yybegin(YYINITIAL); - return JSP_COMMENT_CLOSE; - } - case 643: break; - case 470: - { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - fStateStack.push(yystate()); - if(yylength() > 2) - yypushback(yylength() -2); - if(Debug.debugTokenizer) - dump("VBL in attr value");//$NON-NLS-1$ - yybegin(ST_JSP_VBL); - fELlevel++; - assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE}); - fStateStack.pop(); - yybegin(ST_XML_ATTRIBUTE_NAME); - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - return PROXY_CONTEXT; - } - case 644: break; - case 469: - { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - fStateStack.push(yystate()); - if(yylength() > 2) - yypushback(yylength() -2); - if(Debug.debugTokenizer) - dump("EL in attr value");//$NON-NLS-1$ - yybegin(ST_JSP_EL); - fELlevel++; - assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE}); - fStateStack.pop(); - yybegin(ST_XML_ATTRIBUTE_NAME); - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - return PROXY_CONTEXT; - } - case 645: break; - case 464: - { - if(Debug.debugTokenizer) - dump("\nCharRef");//$NON-NLS-1$ - return XML_CHAR_REFERENCE; - } - case 646: break; - case 461: - { - if(Debug.debugTokenizer) - dump("\ncomment start");//$NON-NLS-1$ - fEmbeddedHint = XML_COMMENT_TEXT; - fEmbeddedPostState = ST_XML_COMMENT; - yybegin(ST_XML_COMMENT); - return XML_COMMENT_OPEN; - } - case 647: break; - case 460: - case 478: - case 481: - case 484: - case 485: - case 487: - case 489: - case 492: - case 494: - case 495: - case 497: - case 499: - case 502: - { - /* JSP comment begun (anywhere) - * A consequence of the start anywhere possibility is that the - * incoming state must be checked to see if it's erroneous - * due to the order of precedence generated - */ - // begin sanity checks - if(yystate() == ST_JSP_CONTENT) { - // at the beginning?! - yypushback(3); - return JSP_CONTENT; - } - else if(yystate() == ST_BLOCK_TAG_SCAN) { - yypushback(4); - return doBlockTagScan(); - } - else if(yystate() == ST_XML_COMMENT) { - yypushback(4); - return scanXMLCommentText(); - } - else if(yystate() == ST_JSP_COMMENT) { - yypushback(4); - return scanJSPCommentText(); - } - else if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { - yybegin(ST_JSP_COMMENT); - assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE); - if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) - yybegin(ST_BLOCK_TAG_SCAN); - return PROXY_CONTEXT; - } - // finished sanity checks - if(yystate()==YYINITIAL) { - // the simple case, just a regular scriptlet out in content - if(Debug.debugTokenizer) - dump("\nJSP comment start");//$NON-NLS-1$ - yybegin(ST_JSP_COMMENT); - return JSP_COMMENT_OPEN; - } - else { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - if(Debug.debugTokenizer) - dump("JSP comment start");//$NON-NLS-1$ - if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED; - else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED; - else if(yystate() == ST_CDATA_TEXT) { - fEmbeddedPostState = ST_CDATA_TEXT; - fEmbeddedHint = XML_CDATA_TEXT; - } - yybegin(ST_JSP_COMMENT); - // the comment container itself will act as comment text - fEmbeddedHint = JSP_COMMENT_TEXT; - assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE); - if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { - yybegin(ST_BLOCK_TAG_SCAN); - return BLOCK_TEXT; - } - /* - * required help for successive embedded regions; mark this one as a - * comment so it will be otherwise ignored but preserved (which is why - * we can't use white-space) - */ - if(yystate() == ST_XML_TAG_NAME) { - fEmbeddedHint = XML_TAG_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - } - else if(yystate() == ST_XML_ATTRIBUTE_VALUE) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - return PROXY_CONTEXT; - } - } - case 648: break; - case 382: - { - if(Debug.debugTokenizer) - dump("XML processing instruction target");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_PI_ATTRIBUTE_NAME); - return XML_TAG_NAME; - } - case 649: break; - case 381: - { - if(Debug.debugTokenizer) - dump("comment end");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - yybegin(YYINITIAL); - return XML_COMMENT_CLOSE; - } - case 650: break; - case 380: - { - if(Debug.debugTokenizer) - dump("CDATA end");//$NON-NLS-1$ - yybegin(fStateStack.pop()); - return XML_CDATA_CLOSE; - } - case 651: break; - case 379: - { - yybegin(ST_JSP_VBL); - if(yylength() > 2) - yypushback(yylength() - 2); - fELlevel++; - fEmbeddedHint = XML_CONTENT; - fEmbeddedPostState = YYINITIAL; - assembleEmbeddedContainer(JSP_VBL_OPEN, JSP_VBL_CLOSE); - fEmbeddedHint = XML_CONTENT; - yybegin(YYINITIAL); - return PROXY_CONTEXT; - } - case 652: break; - case 378: - { - if(Debug.debugTokenizer) - dump("\nPEReference");//$NON-NLS-1$ - return XML_PE_REFERENCE; - } - case 653: break; - case 377: - { - yybegin(ST_JSP_EL); - if(yylength() > 2) - yypushback(yylength() - 2); - fELlevel++; - fEmbeddedHint = XML_CONTENT; - fEmbeddedPostState = YYINITIAL; - assembleEmbeddedContainer(JSP_EL_OPEN, JSP_EL_CLOSE); - fEmbeddedHint = XML_CONTENT; - yybegin(YYINITIAL); - return PROXY_CONTEXT; - } - case 654: break; - case 374: - { - if(Debug.debugTokenizer) - dump("\nEntityRef");//$NON-NLS-1$ - return XML_ENTITY_REFERENCE; - } - case 655: break; - case 368: - case 406: - case 413: - case 419: - case 423: - case 427: - case 431: - case 436: - case 441: - case 444: - case 448: - case 452: - case 457: - { - /* JSP expression begun (anywhere) - * A consequence of the start anywhere possibility is that the - * incoming state must be checked to see if it's erroneous - * due to the order of precedence generated - */ - // begin sanity checks - if(yystate() == ST_JSP_CONTENT) { - // at the beginning?! - yypushback(2); - return JSP_CONTENT; - } - else if(yystate() == ST_BLOCK_TAG_SCAN) { - yypushback(3); - return doBlockTagScan(); - } - else if(yystate() == ST_XML_COMMENT) { - yypushback(3); - return scanXMLCommentText(); - } - else if(yystate() == ST_JSP_COMMENT) { - yypushback(3); - return scanJSPCommentText(); - } - // end sanity checks - fStateStack.push(yystate()); - if(fStateStack.peek()==YYINITIAL) { - // the simple case, just an expression out in content - if(Debug.debugTokenizer) - dump("\nJSP expression start");//$NON-NLS-1$ - yybegin(ST_JSP_CONTENT); - return JSP_EXPRESSION_OPEN; - } - else { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - if(Debug.debugTokenizer) - dump("JSP expression start");//$NON-NLS-1$ - if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED; - else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED; - else if(yystate() == ST_CDATA_TEXT) { - fEmbeddedPostState = ST_CDATA_TEXT; - fEmbeddedHint = XML_CDATA_TEXT; - } - yybegin(ST_JSP_CONTENT); - assembleEmbeddedContainer(JSP_EXPRESSION_OPEN, JSP_CLOSE); - if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { - yybegin(ST_BLOCK_TAG_SCAN); - return BLOCK_TEXT; - } - // required help for successive embedded regions - if(yystate() == ST_XML_TAG_NAME) { - fEmbeddedHint = XML_TAG_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - } - else if(yystate() == ST_XML_ATTRIBUTE_VALUE) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - return PROXY_CONTEXT; - } - } - case 656: break; - case 367: - case 405: - case 412: - case 418: - case 422: - case 426: - case 430: - case 435: - case 440: - case 443: - case 447: - case 451: - case 456: - { - /* JSP declaration begun (anywhere) - * A consequence of the start anywhere possibility is that the - * incoming state must be checked to see if it's erroneous - * due to the order of precedence generated - */ - // begin sanity checks - if(yystate() == ST_JSP_CONTENT) { - // at the beginning?! - yypushback(2); - return JSP_CONTENT; - } - else if(yystate() == ST_BLOCK_TAG_SCAN) { - yypushback(3); - return doBlockTagScan(); - } - else if(yystate() == ST_XML_COMMENT) { - yypushback(3); - return scanXMLCommentText(); - } - else if(yystate() == ST_JSP_COMMENT) { - yypushback(3); - return scanJSPCommentText(); - } - // end sanity checks - fStateStack.push(yystate()); - if(fStateStack.peek()==YYINITIAL) { - // the simple case, just a declaration out in content - if(Debug.debugTokenizer) - dump("\nJSP declaration start");//$NON-NLS-1$ - yybegin(ST_JSP_CONTENT); - return JSP_DECLARATION_OPEN; - } - else { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - if(Debug.debugTokenizer) - dump("JSP declaration start");//$NON-NLS-1$ - if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED; - else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED; - else if(yystate() == ST_CDATA_TEXT) { - fEmbeddedPostState = ST_CDATA_TEXT; - fEmbeddedHint = XML_CDATA_TEXT; - } - yybegin(ST_JSP_CONTENT); - assembleEmbeddedContainer(JSP_DECLARATION_OPEN, JSP_CLOSE); - if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { - yybegin(ST_BLOCK_TAG_SCAN); - return BLOCK_TEXT; - } - // required help for successive embedded regions - if(yystate() == ST_XML_TAG_NAME) { - fEmbeddedHint = XML_TAG_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - } - else if(yystate() == ST_XML_ATTRIBUTE_VALUE) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - return PROXY_CONTEXT; - } - } - case 657: break; - case 366: - { - fStateStack.push(yystate()); - if(fStateStack.peek()==YYINITIAL) { - if(Debug.debugTokenizer) - dump("\nJSP directive start");//$NON-NLS-1$ - yybegin(ST_JSP_DIRECTIVE_NAME); - return JSP_DIRECTIVE_OPEN; - } - else { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - if(Debug.debugTokenizer) - dump("JSP directive start");//$NON-NLS-1$ - yybegin(ST_JSP_DIRECTIVE_NAME); - assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE}); - if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { - yybegin(ST_BLOCK_TAG_SCAN); - return BLOCK_TEXT; - } - return PROXY_CONTEXT; - } - } - case 658: break; - case 356: - { - yybegin(ST_JSP_VBL_DQUOTES_END); - return JSP_VBL_QUOTED_CONTENT; - } - case 659: break; - case 352: - { - yybegin(ST_JSP_VBL_SQUOTES_END); - return JSP_VBL_QUOTED_CONTENT; - } - case 660: break; - case 350: - { - fELlevel++; - if(fELlevel == 1) { - return JSP_VBL_OPEN; - } - } - case 661: break; - case 340: - { - yybegin(ST_JSP_EL_DQUOTES_END); - return JSP_EL_QUOTED_CONTENT; - } - case 662: break; - case 336: - { - yybegin(ST_JSP_EL_SQUOTES_END); - return JSP_EL_QUOTED_CONTENT; - } - case 663: break; - case 334: - { - //System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]"); - return JSP_EL_CONTENT; - } - case 664: break; - case 333: - { - fELlevel++; - if(fELlevel == 1) { - return JSP_EL_OPEN; - } - } - case 665: break; - case 330: - { - int enterState = yystate(); - yybegin(ST_JSP_DQUOTED_VBL); - assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE}); - // abort early when an unescaped double quote is found in the VBL - if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) { - yybegin(ST_ABORT_EMBEDDED); - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else { - yybegin(enterState); - } - return PROXY_CONTEXT; - } - case 666: break; - case 329: - { - int enterState = yystate(); - yybegin(ST_JSP_DQUOTED_EL); - assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE}); - // abort early when an unescaped double quote is found in the EL - if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) { - yybegin(ST_ABORT_EMBEDDED); - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else { - yybegin(enterState); - } - return PROXY_CONTEXT; - } - case 667: break; - case 327: - { - int enterState = yystate(); - yybegin(ST_JSP_SQUOTED_VBL); - assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE}); - // abort early when an unescaped single quote is found in the VBL - if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) { - yybegin(ST_ABORT_EMBEDDED); - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else { - yybegin(enterState); - } - return PROXY_CONTEXT; - } - case 668: break; - case 326: - { - int enterState = yystate(); - yybegin(ST_JSP_SQUOTED_EL); - assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE}); - // abort early when an unescaped single quote is found in the EL - if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) { - yybegin(ST_ABORT_EMBEDDED); - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else { - yybegin(enterState); - } - return PROXY_CONTEXT; - } - case 669: break; - case 325: - { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - int incomingState = yystate(); - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - if(Debug.debugTokenizer) - dump("JSP attribute value start - end tag");//$NON-NLS-1$ - yybegin(ST_XML_TAG_NAME); - assembleEmbeddedContainer(XML_END_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE}); - if(yystate() != ST_ABORT_EMBEDDED) - yybegin(incomingState); - return PROXY_CONTEXT; - } - case 670: break; - case 284: - case 296: - case 302: - { - return XML_DOCTYPE_INTERNAL_SUBSET; - } - case 671: break; - case 272: - { - String tagName = yytext().substring(1); - // pushback to just after the opening bracket - yypushback(yylength() - 1); - /* - * If this tag can not be nested or we're already searching for an - * attribute name, equals, or value, return immediately. - */ - if (!isNestable(tagName) || (!fStateStack.empty() && (fStateStack.peek() == ST_XML_ATTRIBUTE_NAME || fStateStack.peek() == ST_XML_EQUALS || fStateStack.peek() == ST_XML_ATTRIBUTE_VALUE))) { - yybegin(ST_XML_TAG_NAME); - return XML_TAG_OPEN; - } - if(Debug.debugTokenizer) - dump("tag in place of attr value");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - fStateStack.push(yystate()); - // embedded container should be looking for the name (again) next - yybegin(ST_XML_TAG_NAME); - assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ? - fStateStack.pop(); - yybegin(ST_XML_ATTRIBUTE_NAME); - return PROXY_CONTEXT; - } - case 672: break; - case 270: - { - String tagName = yytext().substring(1); - // pushback to just after the opening bracket - yypushback(yylength() - 1); - /* - * If this tag can not be nested or we're already searching for an - * attribute name, equals, or value, return immediately. - */ - if (!isNestable(tagName) || (!fStateStack.empty() && (fStateStack.peek() == ST_XML_ATTRIBUTE_NAME || fStateStack.peek() == ST_XML_EQUALS || fStateStack.peek() == ST_XML_ATTRIBUTE_VALUE))) { - yybegin(ST_XML_TAG_NAME); - return XML_TAG_OPEN; - } - if(Debug.debugTokenizer) - dump("tag in place of attr name");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - fStateStack.push(yystate()); - // embedded container should be looking for the name (again) next - yybegin(ST_XML_TAG_NAME); - assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ? - fStateStack.pop(); - yybegin(ST_XML_EQUALS); - return PROXY_CONTEXT; - } - case 673: break; - case 268: - { - yybegin(YYINITIAL); - fEmbeddedHint = UNDEFINED; - if(Debug.debugTokenizer) - dump("empty tag close");//$NON-NLS-1$ - return XML_EMPTY_TAG_CLOSE; - } - case 674: break; - case 125: - { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED; - yybegin(ST_XML_ATTRIBUTE_VALUE_DQUOTED); - fStateStack.push(yystate()); - if(Debug.debugTokenizer) - dump("JSP attribute value start - complex double quoted");//$NON-NLS-1$ - assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_DQUOTE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE); - fStateStack.pop(); - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_ATTRIBUTE_NAME); - return PROXY_CONTEXT; - } - case 675: break; - case 123: - { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - fStateStack.push(yystate()); - if(Debug.debugTokenizer) - dump("JSP tag embedded name start - start tag");//$NON-NLS-1$ - yybegin(ST_XML_TAG_NAME); - assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE}); - fStateStack.pop(); - yybegin(ST_XML_ATTRIBUTE_NAME); - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - return PROXY_CONTEXT; - } - case 676: break; - case 122: - case 127: - case 128: - case 274: - case 278: - case 279: - case 387: - case 390: - case 468: - { - if(Debug.debugTokenizer) - dump("attr value");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_ATTRIBUTE_NAME); - return XML_TAG_ATTRIBUTE_VALUE; - } - case 677: break; - case 121: - { - if(Debug.debugTokenizer) - dump("equals");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - yybegin(ST_XML_ATTRIBUTE_VALUE); - return XML_TAG_ATTRIBUTE_EQUALS; - } - case 678: break; - case 120: - { - if(Debug.debugTokenizer) - dump("attr name");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - yybegin(ST_XML_EQUALS); - return XML_TAG_ATTRIBUTE_NAME; - } - case 679: break; - case 116: - case 117: - case 118: - case 269: - case 386: - case 467: - case 506: - case 507: - case 525: - case 526: - case 543: - case 544: - case 556: - case 564: - case 571: - case 572: - case 573: - case 574: - case 576: - case 582: - case 583: - case 584: - case 585: - case 586: - case 592: - case 593: - case 594: - case 595: - case 596: - case 602: - case 603: - case 605: - case 606: - case 612: - case 613: - case 614: - case 615: - case 621: - case 622: - case 623: - case 624: - case 627: - case 628: - case 630: - { - if(Debug.debugTokenizer) - dump("tag name");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_ATTRIBUTE_NAME); - return XML_TAG_NAME; - } - case 680: break; - case 114: - { - if(Debug.debugTokenizer) - dump("tag close");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - if(isBlockMarker()) { - fEmbeddedHint = getBlockMarkerContext(); - fEmbeddedPostState = ST_BLOCK_TAG_SCAN; - yybegin(ST_BLOCK_TAG_SCAN); - } - else - yybegin(YYINITIAL); - return XML_TAG_CLOSE; - } - case 681: break; - case 107: - case 111: - case 264: - { - if(Debug.debugTokenizer) - dump("attr value");//$NON-NLS-1$ - yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME); - return XML_TAG_ATTRIBUTE_VALUE; - } - case 682: break; - case 106: - { - if(Debug.debugTokenizer) - dump("equals");//$NON-NLS-1$ - yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE); - return XML_TAG_ATTRIBUTE_EQUALS; - } - case 683: break; - case 105: - { - if(Debug.debugTokenizer) - dump("attr name");//$NON-NLS-1$ - yybegin(ST_JSP_DIRECTIVE_EQUALS); - return XML_TAG_ATTRIBUTE_NAME; - } - case 684: break; - case 102: - { - if(Debug.debugTokenizer) - dump("JSP directive name");//$NON-NLS-1$ - yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE); - return JSP_DIRECTIVE_NAME; - } - case 685: break; - case 98: - case 99: - case 100: - { - if(Debug.debugTokenizer) - dump("JSP code content");//$NON-NLS-1$ - return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT); - } - case 686: break; - case 94: - case 96: - case 97: - case 254: - case 255: - case 258: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction attribute value");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_DHTML_ATTRIBUTE_NAME); - return XML_TAG_ATTRIBUTE_VALUE; - } - case 687: break; - case 93: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction '='");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - yybegin(ST_DHTML_ATTRIBUTE_VALUE); - return XML_TAG_ATTRIBUTE_EQUALS; - } - case 688: break; - case 92: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction attribute name");//$NON-NLS-1$ - yybegin(ST_DHTML_EQUALS); - return XML_TAG_ATTRIBUTE_NAME; - } - case 689: break; - case 90: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction end");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 690: break; - case 84: - case 86: - case 245: - { - if(Debug.debugTokenizer) - dump("XML processing instruction attribute value");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_PI_ATTRIBUTE_NAME); - return XML_TAG_ATTRIBUTE_VALUE; - } - case 691: break; - case 83: - { - if(Debug.debugTokenizer) - dump("XML processing instruction '='");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - yybegin(ST_XML_PI_ATTRIBUTE_VALUE); - return XML_TAG_ATTRIBUTE_EQUALS; - } - case 692: break; - case 50: - case 200: - case 201: - case 204: - case 214: - case 215: - case 218: - case 219: - case 361: - case 364: - case 439: - case 450: - case 455: - { - return JSP_VBL_CONTENT; - } - case 693: break; - case 43: - case 179: - case 180: - case 183: - case 193: - case 194: - case 197: - case 198: - case 331: - case 345: - case 348: - case 416: - case 417: - case 429: - case 434: - { - return JSP_EL_CONTENT; - } - case 694: break; - case 35: - case 159: - case 160: - case 322: - case 411: - case 414: - case 482: - case 514: - case 533: - case 549: - case 558: - { - if(Debug.debugTokenizer) - dump("attlist contentspec");//$NON-NLS-1$ - return XML_ATTLIST_DECL_CONTENT; - } - case 695: break; - case 33: - case 152: - case 153: - case 312: - case 404: - case 407: - case 479: - case 513: - case 532: - case 548: - case 557: - { - if(Debug.debugTokenizer) - dump("elementdecl contentspec");//$NON-NLS-1$ - return XML_ELEMENT_DECL_CONTENT; - } - case 696: break; - case 22: - case 112: - { - if(Debug.debugTokenizer) - dump("inappropriate tag name");//$NON-NLS-1$ - if(!fStateStack.empty() && (fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_SQUOTED||fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_DQUOTED)) { - yybegin(ST_ABORT_EMBEDDED); - yypushback(yylength()-1); - return XML_TAG_ATTRIBUTE_VALUE; - } - yybegin(YYINITIAL); - return XML_CONTENT; - } - case 697: break; - case 18: - case 104: - { - if(Debug.debugTokenizer) - dump("white space");//$NON-NLS-1$ - yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME); - return WHITE_SPACE; - } - case 698: break; - case 5: - case 8: - case 9: - case 10: - case 12: - case 13: - case 14: - case 15: - case 17: - case 19: - case 20: - case 21: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 34: - case 40: - case 41: - case 73: - case 170: - case 175: - { - if(Debug.debugTokenizer) - dump("white space");//$NON-NLS-1$ - return WHITE_SPACE; - } - case 699: break; - case 0: - case 57: - case 60: - case 62: - case 226: - case 228: - case 229: - case 231: - case 233: - case 371: - case 372: - case 373: - case 463: - { - if(Debug.debugTokenizer) - dump("\nXML content");//$NON-NLS-1$ - return XML_CONTENT; - } - case 700: break; - case 58: - case 101: - case 113: - case 119: - case 129: - { - if(Debug.debugTokenizer) - dump("\nstart tag open");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - yybegin(ST_XML_TAG_NAME); - return XML_TAG_OPEN; - } - case 701: break; - case 59: - case 61: - case 65: - case 66: - case 67: - case 71: - case 72: - case 81: - case 85: - case 87: - case 88: - case 89: - case 91: - case 95: - case 103: - case 108: - case 109: - case 110: - case 115: - case 124: - case 131: - case 132: - case 133: - case 134: - case 136: - case 137: - case 139: - case 140: - case 141: - case 144: - case 145: - case 146: - case 149: - case 150: - case 151: - case 156: - case 157: - case 158: - case 164: - case 167: - case 172: - case 173: - case 177: - case 178: - case 185: - case 186: - case 188: - case 189: - case 195: - case 199: - case 206: - case 207: - case 209: - case 210: - case 216: - case 220: - { - if (Debug.debugTokenizer) - System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$ - yychar + "-" + (yychar + yylength()));//$NON-NLS-1$ - return UNDEFINED; - } - case 702: break; - case 63: - case 64: - { - if(Debug.debugTokenizer) - dump("CDATA text");//$NON-NLS-1$ - fEmbeddedPostState = ST_CDATA_TEXT; - fEmbeddedHint = XML_CDATA_TEXT; - String returnedContext = doScan("]]>", false, true, true, XML_CDATA_TEXT, ST_CDATA_END, ST_CDATA_END);//$NON-NLS-1$ - if(returnedContext == XML_CDATA_TEXT) - yybegin(ST_CDATA_END); - return returnedContext; - } - case 703: break; - case 68: - case 187: - case 190: - case 208: - case 211: - { - if(Debug.debugTokenizer) - dump("LINE FEED");//$NON-NLS-1$ - return WHITE_SPACE; - } - case 704: break; - case 69: - case 70: - { - if(Debug.debugTokenizer) - dump("comment content");//$NON-NLS-1$ - return scanXMLCommentText(); - } - case 705: break; - case 74: - case 75: - case 76: - case 239: - case 240: - case 383: - case 466: - case 505: - { - if(Debug.debugTokenizer) - dump("processing instruction target");//$NON-NLS-1$ - fEmbeddedHint = XML_CONTENT; - yybegin(ST_PI_WS); - return XML_TAG_NAME; - } - case 706: break; - case 77: - { - yybegin(ST_PI_CONTENT); - return WHITE_SPACE; - } - case 707: break; - case 78: - case 79: - case 80: - { - // block scan until close is found - return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE); - } - case 708: break; - case 82: - { - if(Debug.debugTokenizer) - dump("XML processing instruction attribute name");//$NON-NLS-1$ - yybegin(ST_XML_PI_EQUALS); - return XML_TAG_ATTRIBUTE_NAME; - } - case 709: break; - case 126: - { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED; - yybegin(ST_XML_ATTRIBUTE_VALUE_SQUOTED); - fStateStack.push(yystate()); - if(Debug.debugTokenizer) - dump("JSP attribute value start - complex single quoted");//$NON-NLS-1$ - assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_SQUOTE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE); - fStateStack.pop(); - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - yybegin(ST_XML_ATTRIBUTE_NAME); - return PROXY_CONTEXT; - } - case 710: break; - case 130: - { - if(Debug.debugTokenizer) - dump("declaration end");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return XML_DECLARATION_CLOSE; - } - case 711: break; - case 135: - { - if(Debug.debugTokenizer) - dump("doctype type");//$NON-NLS-1$ - yybegin(ST_XML_DOCTYPE_EXTERNAL_ID); - return XML_DOCTYPE_NAME; - } - case 712: break; - case 138: - case 142: - case 289: - case 293: - case 399: - { - if(Debug.debugTokenizer) - dump("doctype public reference");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - fEmbeddedPostState = YYINITIAL; - yybegin(ST_XML_DOCTYPE_ID_SYSTEM); - return XML_DOCTYPE_EXTERNAL_ID_PUBREF; - } - case 713: break; - case 143: - case 147: - case 299: - { - if(Debug.debugTokenizer) - dump("doctype system reference");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - fEmbeddedPostState = YYINITIAL; - yybegin(ST_XML_DECLARATION_CLOSE); - return XML_DOCTYPE_EXTERNAL_ID_SYSREF; - } - case 714: break; - case 148: - case 305: - case 309: - case 402: - { - if(Debug.debugTokenizer) - dump("elementdecl name");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - fEmbeddedPostState = YYINITIAL; - yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT); - return XML_ELEMENT_DECL_NAME; - } - case 715: break; - case 154: - { - if(Debug.debugTokenizer) - dump("elementdecl close");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return XML_DECLARATION_CLOSE; - } - case 716: break; - case 155: - case 315: - case 319: - case 409: - { - if(Debug.debugTokenizer) - dump("attlist name");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - fEmbeddedPostState = YYINITIAL; - yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT); - return XML_ATTLIST_DECL_NAME; - } - case 717: break; - case 161: - { - if(Debug.debugTokenizer) - dump("attlist close");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return XML_DECLARATION_CLOSE; - } - case 718: break; - case 165: - case 166: - { - if(Debug.debugTokenizer) - dump("\nJSP comment text");//$NON-NLS-1$ - return scanJSPCommentText(); - } - case 719: break; - case 168: - case 174: - { - return XML_TAG_ATTRIBUTE_VALUE; - } - case 720: break; - case 169: - { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - int incomingState = yystate(); - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - if(Debug.debugTokenizer) - dump("tag inside of JSP attribute value start");//$NON-NLS-1$ - yybegin(ST_XML_TAG_NAME); - assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE}); - if(yystate() != ST_ABORT_EMBEDDED) - yybegin(incomingState); - return PROXY_CONTEXT; - } - case 721: break; - case 171: - { - return XML_TAG_ATTRIBUTE_VALUE_SQUOTE; - } - case 722: break; - case 176: - { - return XML_TAG_ATTRIBUTE_VALUE_DQUOTE; - } - case 723: break; - case 181: - { - yybegin(ST_JSP_EL_DQUOTES); - return JSP_EL_DQUOTE; - } - case 724: break; - case 182: - { - yybegin(ST_JSP_EL_SQUOTES); - return JSP_EL_SQUOTE; - } - case 725: break; - case 184: - { - fELlevel--; - if(fELlevel == 0) { - yybegin(YYINITIAL); - return JSP_EL_CLOSE; - } - return JSP_EL_CONTENT; - } - case 726: break; - case 191: - { - yybegin(ST_JSP_EL); - return JSP_EL_SQUOTE; - } - case 727: break; - case 192: - { - yybegin(ST_JSP_EL); - return JSP_EL_DQUOTE; - } - case 728: break; - case 196: - { - return JSP_EL_CLOSE; - } - case 729: break; - case 202: - { - yybegin(ST_JSP_VBL_DQUOTES); - return JSP_VBL_DQUOTE; - } - case 730: break; - case 203: - { - yybegin(ST_JSP_VBL_SQUOTES); - return JSP_VBL_SQUOTE; - } - case 731: break; - case 205: - { - fELlevel--; - if(fELlevel == 0) { - yybegin(YYINITIAL); - return JSP_VBL_CLOSE; - } - return JSP_VBL_CONTENT; - } - case 732: break; - case 212: - { - yybegin(ST_JSP_VBL); - return JSP_VBL_SQUOTE; - } - case 733: break; - case 213: - { - yybegin(ST_JSP_VBL); - return JSP_VBL_DQUOTE; - } - case 734: break; - case 217: - { - return JSP_VBL_CLOSE; - } - case 735: break; - case 221: - { - if(Debug.debugTokenizer) - dump("\nend tag open");//$NON-NLS-1$ - fEmbeddedHint = XML_TAG_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - yybegin(ST_XML_TAG_NAME); - return XML_END_TAG_OPEN; - } - case 736: break; - case 222: - { - if(Debug.debugTokenizer) - dump("\nprocessing instruction start");//$NON-NLS-1$ - yybegin(ST_PI); - return XML_PI_OPEN; - } - case 737: break; - case 223: - case 234: - case 311: - case 321: - case 332: - case 337: - case 341: - case 344: - case 347: - case 349: - case 353: - case 357: - case 360: - case 363: - { - /* JSP scriptlet begun (anywhere) - * A consequence of the start anywhere possibility is that the - * incoming state must be checked to see if it's erroneous - * due to the order of precedence generated - */ - // begin sanity checks - if(yystate() == ST_JSP_CONTENT) { - // at the beginning?! - yypushback(1); - return JSP_CONTENT; - } - else if(yystate() == ST_BLOCK_TAG_SCAN) { - yypushback(2); - return doBlockTagScan(); - } - else if(yystate() == ST_XML_COMMENT) { - yypushback(2); - return scanXMLCommentText(); - } - else if(yystate() == ST_JSP_COMMENT) { - yypushback(2); - return scanJSPCommentText(); - } - // finished sanity checks - fStateStack.push(yystate()); - if(fStateStack.peek()==YYINITIAL) { - // the simple case, just a regular scriptlet out in content - if(Debug.debugTokenizer) - dump("\nJSP scriptlet start");//$NON-NLS-1$ - yybegin(ST_JSP_CONTENT); - return JSP_SCRIPTLET_OPEN; - } - else { - if (Debug.debugTokenizer) { - System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$ - } - if(Debug.debugTokenizer) - dump("JSP scriptlet start");//$NON-NLS-1$ - if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED; - else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED) - fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED; - else if(yystate() == ST_CDATA_TEXT) { - fEmbeddedPostState = ST_CDATA_TEXT; - fEmbeddedHint = XML_CDATA_TEXT; - } - yybegin(ST_JSP_CONTENT); - assembleEmbeddedContainer(JSP_SCRIPTLET_OPEN, JSP_CLOSE); - if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) { - yybegin(ST_BLOCK_TAG_SCAN); - return BLOCK_TEXT; - } - // required help for successive embedded regions - if(yystate() == ST_XML_TAG_NAME) { - fEmbeddedHint = XML_TAG_NAME; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME; - fEmbeddedPostState = ST_XML_EQUALS; - } - else if(yystate() == ST_XML_ATTRIBUTE_VALUE) { - fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE; - fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME; - } - return PROXY_CONTEXT; - } - } - case 738: break; - case 224: - { - fStateStack.push(yystate()); - if(Debug.debugTokenizer) - dump("\ndeclaration start");//$NON-NLS-1$ - yybegin(ST_XML_DECLARATION); - return XML_DECLARATION_OPEN; - } - case 739: break; - case 238: - { - if(Debug.debugTokenizer) - dump("processing instruction end");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 740: break; - case 241: - { - // ended with nothing inside - fEmbeddedHint = UNDEFINED; - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 741: break; - case 242: - { - if(Debug.debugTokenizer) - dump("XML processing instruction end");//$NON-NLS-1$ - fEmbeddedHint = UNDEFINED; - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 742: break; - case 259: - { - if(Debug.debugTokenizer) - dump("JSP end");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return JSP_CLOSE; - } - case 743: break; - case 261: - { - if(Debug.debugTokenizer) - dump("JSP end");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return JSP_DIRECTIVE_CLOSE; - } - case 744: break; - case 162: - case 163: - { - return doBlockTagScan(); - } - case 745: break; - default: - if (yy_input == YYEOF && yy_startRead == yy_currentPos) { - yy_atEOF = true; - yy_do_eof(); - return null; - } - else { - yy_ScanError(YY_NO_MATCH); - } - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex deleted file mode 100644 index 92574e07a6..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex +++ /dev/null @@ -1,2646 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2004, 2006 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
- *******************************************************************************/
-
-/*nlsXXX*/
-
-package org.eclipse.jst.jsp.core.internal.parser.internal;
-
-import java.io.CharArrayReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.parser.ContextRegionContainer;
-import org.eclipse.wst.xml.core.internal.parser.IntStack;
-
-%%
-
-%{
- private int fTokenCount = 0;
-
- // required holders for white-space compacting
- private boolean fShouldLoadBuffered = false;
- private String fBufferedContext = null;
- private int fBufferedStart = 1;
- private int fBufferedLength = 0;
- private ContextRegionContainer fBufferedEmbeddedContainer = null;
- private String f_context = null;
-
- // state stack for handling embedded regions
- private IntStack fStateStack = new IntStack();
- // a "hint" as to what an embedded region should be evaluated
- private String fEmbeddedHint = UNDEFINED;
- // a "hint" as to what state to enter once an embedded region has
- // been completed
- private int fEmbeddedPostState = YYINITIAL;
- // the container used to create embedded regions
- private ContextRegionContainer fEmbeddedContainer = null;
- private static final String PROXY_CONTEXT = "PROXY_CONTEXT";
-
- private String context = null;
- private int start = 0;
- private int textLength = 0;
- private int length = 0;
-
- // offset for tracking position specific block tags
- private int fOffset = 0;
-
- // the name of the current tag being opened
- private String fCurrentTagName = null;
-
- // the name of the current tag inside of an embedded region
- private String internalTagName = null;
- private String internalContext = null;
-
- // the list of tag name BlockMarkers
- private List fBlockMarkers = new ArrayList(0);
- private List fNestablePrefixes = new ArrayList(1);
-
- // where the last internal container block was found
- private int fLastInternalBlockStart = -1;
-
- // required to not seek text blocks on an end tag
- private boolean fIsBlockingEnabled = false;
- private boolean fIsCaseSensitiveBlocking = true;
-
- private static final boolean fForbidJSP = false;
-
- private int fELlevel = 0;
-
- private JSPParserRegionFactory fRegionFactory = new JSPParserRegionFactory();
-
- /**
- * user method
- */
- public final void addBlockMarker(BlockMarker marker) {
- if(containsTagName(marker.getTagName()))
- return;
- fBlockMarkers.add(marker);
- }
- /**
- * user method
- */
- public final void addNestablePrefix(TagMarker marker) {
- fNestablePrefixes.add(marker);
- }
- /* user method */
- public List getNestablePrefixes() {
- return fNestablePrefixes;
- }
- /**
- * user method
- */
- private boolean isNestable(String tagName) {
- //Iterator blocks = fNestablePrefixes.iterator();
- //while(blocks.hasNext()) {
- // TagMarker marker = (TagMarker)blocks.next();
- // String markerName = marker.getTagName();
- // if(tagName.length() > markerName.length() + 1 && tagName.startsWith(markerName) && tagName.charAt(markerName.length()) == ':') {
- // return marker.isGlobal() || getOffset() >= marker.getMarker().getStart();
- // }
- //}
- //return false;
- return true;
- }
- /**
- * user method
- */
- public final void removeNestablePrefix(String name) {
- if (fNestablePrefixes != null) {
- Iterator nestables = fNestablePrefixes.iterator();
- while (nestables.hasNext()) {
- if (((TagMarker) nestables.next()).getTagName().equalsIgnoreCase(name))
- nestables.remove();
- }
- }
- }
- /**
- * user method
- */
- public final void removeBlockMarker(BlockMarker marker) {
- fBlockMarkers.remove(marker);
- }
- /**
- * user method
- */
- public final void removeBlockMarker(String tagname) {
- if (fBlockMarkers != null) {
- Iterator blocks = fBlockMarkers.iterator();
- while (blocks.hasNext()) {
- if (((BlockMarker) blocks.next()).getTagName().equals(tagname))
- blocks.remove();
- }
- }
- }
- /* user method */
- private final void assembleEmbeddedTagSequence(String startType, String endTagName) {
- assembleEmbeddedContainer(startType, null, endTagName);
- }
- /* user method */
- private final void assembleEmbeddedContainer(String startType, String[] endTypes) {
- assembleEmbeddedContainer(startType, endTypes, null);
- }
- /* user method */
- private final void assembleEmbeddedContainer(String startType, String endType) {
- assembleEmbeddedContainer(startType, new String[]{endType}, null);
- }
- /**
- * user method
- *
- * Assembles an embedded container beginning with the given startType as
- * the first ContextRegion within it and of the type fEmbeddedHint. The
- * endTypes[] array contains the context types that will cause a successful
- * exit. Use of the endTagName parameter alters this behavior to force an
- * exit on an XML_TAG_CLOSE after seeing an XML_TAG_NAME whose significant
- * text matches the endTagName String. All contents in between are
- * insignificant, and yes, this means comments are allowed inside.
- **/
- private final void assembleEmbeddedContainer(String startType, String[] endTypes, String endTagName) {
- // the context of the region being added to the embedded container
- internalContext = startType;
- // keep track of where this container began; to provide relative indeces for the regions
- int containerStart = yychar;
- boolean notFinished = true;
- // keep track of where we seem to be so that the endTagName can be checked
- boolean isInEndTag = false;
- boolean isInFirstTag = true;
- // create the embedded container and setup its "type"
- if (fEmbeddedContainer == null) {
- fEmbeddedContainer = new ContextRegionContainer();
- fEmbeddedContainer.setType(fEmbeddedHint);
- fEmbeddedContainer.setStart(containerStart);
- // TODO: parent region needs to be set .... but not sure where to get it from
- // fEmbeddedContainer.setParent(parentRegion);
- }
- containerStart = fEmbeddedContainer.getStart();
- while (notFinished) {
- // add the region to the container
- if (internalContext != null && internalContext != PROXY_CONTEXT) {
- ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());
- fEmbeddedContainer.getRegions().add(newToken);
- fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());
- fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());
- // DW, 4/16/2003 token regions no longer have parents
- //newToken.setParent(fEmbeddedContainer);
- }
- try {
- // longscan determines whether to attempt a blockTagScan within the embedded container
- boolean longscan = false;
- // save the tokenizer state in case of a block tag scan
- int previousState = yystate();
- String previousCurrentTagName = fCurrentTagName;
- int previousPostState = fEmbeddedPostState;
- String previousEmbeddedHint = fEmbeddedHint;
- // determine if a block tag scan is necessary
- if (internalContext == XML_TAG_NAME) {
- internalTagName = yytext();
- if(!isNestable(internalTagName)) {
- internalTagName = null;
- // snagged a tag name we shouldn't have
- fEmbeddedPostState = ST_ABORT_EMBEDDED;
- notFinished = false;
- }
- }
- else if (internalContext == XML_TAG_OPEN || internalContext == XML_END_TAG_OPEN) {
- internalTagName = null;
- }
- // do upkeep for endTagName usage; must be here since the next token could be the close
- if (internalContext == XML_END_TAG_OPEN) {
- isInEndTag = true;
- } else if (internalContext == XML_TAG_CLOSE) {
- isInFirstTag = isInEndTag = false;
- } else {
- ITextRegionList embeddedRegions = fEmbeddedContainer.getRegions();
- if (embeddedRegions.size() > 2 && (embeddedRegions.get(embeddedRegions.size()-1)).getType() == XML_TAG_CLOSE && (embeddedRegions.get(embeddedRegions.size() - 3)).getType() == XML_TAG_OPEN && internalTagName != null) {
- if (containsTagName(internalTagName)) {
- longscan = true;
- yybegin(ST_BLOCK_TAG_SCAN);
- }
- }
- }
- if (longscan)
- fCurrentTagName = internalTagName;
- // read the next region and context
- internalContext = primGetNextToken();
- if (longscan) {
- // Returning from a block tag scan requires restoring some state variables
- // as well as handling the block region and setting up for normal scanning
- // inside the embedded container
- ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());
- fEmbeddedContainer.getRegions().add(newToken);
- fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());
- fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());
- // DW, 4/16/2003 token regions no longer have parents
- // newToken.setParent(fEmbeddedContainer);
- longscan = false;
- fEmbeddedPostState = previousPostState;
- fEmbeddedHint = previousEmbeddedHint;
- fCurrentTagName = previousCurrentTagName;
- yybegin(previousState);
- internalContext = primGetNextToken();
- }
- } catch (IOException e) {
- // primGetNextToken() calls may throw an IOException
- // catch and do nothing since the isEOF check below
- // will properly exit if the input was too short
- } catch (Exception f) {
- // some other exception happened; never should
- Logger.logException(f);
- }
- boolean isEndingType = yystate() == ST_ABORT_EMBEDDED;
- if(!isEndingType) {
- // check for ending context
- if (endTagName == null) {
- for (int i = 0; i < endTypes.length; i++) {
- isEndingType = isEndingType || (internalContext == endTypes[i]);
- }
- }
- else {
- isEndingType = ((isInEndTag && internalContext == XML_TAG_CLOSE) || (isInFirstTag && internalContext == XML_EMPTY_TAG_CLOSE)) && internalTagName != null && internalTagName.equals(endTagName);
- }
- }
- ITextRegionList embeddedList = fEmbeddedContainer.getRegions();
- notFinished = notFinished && ((!isEndingType) && !isEOF() && (endTagName != null || internalContext != UNDEFINED) && !(internalContext == PROXY_CONTEXT && (embeddedList.get(embeddedList.size()-1)).getType() == UNDEFINED));
- }
- // finish adding the last context
- if (internalContext != null && internalContext != PROXY_CONTEXT) {
- ITextRegion newToken = fRegionFactory.createToken(internalContext, yychar - containerStart, yylength(), yylength());
- fEmbeddedContainer.getRegions().add(newToken);
- // DW, 4/16/2003 token regions no longer have parents
- //newToken.setParent(fEmbeddedContainer);
- fEmbeddedContainer.setLength(yychar - containerStart + yylength());
- fEmbeddedContainer.setTextLength(yychar - containerStart + yylength());
- }
- yybegin(fEmbeddedPostState);
- }
- /* user method */
- public final boolean isCaseSensitiveBlocking() {
- return fIsCaseSensitiveBlocking;
- }
- /* user method */
- public final void setCaseSensitiveBlocking(boolean newValue) {
- fIsCaseSensitiveBlocking = newValue;
- }
- /* user method */
- public boolean getBlockMarkerAllowsJSP() {
- return getBlockMarkerAllowsJSP(fCurrentTagName);
- }
- /* user method */
- public boolean getBlockMarkerAllowsJSP(String name) {
- Iterator iterator = fBlockMarkers.iterator();
- while(iterator.hasNext()) {
- BlockMarker marker = (BlockMarker)iterator.next();
- boolean casesensitive = marker.isCaseSensitive();
- if(casesensitive && marker.getTagName().equals(name))
- return marker.allowsJSP();
- else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name))
- return marker.allowsJSP();
- }
- return true;
- }
- /* user method */
- public boolean getBlockMarkerCaseSensitivity() {
- return getBlockMarkerCaseSensitivity(fCurrentTagName);
- }
- public boolean getBlockMarkerCaseSensitivity(String name) {
- Iterator iterator = fBlockMarkers.iterator();
- while(iterator.hasNext()) {
- BlockMarker marker = (BlockMarker)iterator.next();
- boolean casesensitive = marker.isCaseSensitive();
- if(casesensitive && marker.getTagName().equals(name))
- return casesensitive;
- else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name))
- return casesensitive;
- }
- return true;
- }
- /* user method */
- public String getBlockMarkerContext() {
- return getBlockMarkerContext(fCurrentTagName);
- }
- /* user method */
- public String getBlockMarkerContext(String name) {
- Iterator iterator = fBlockMarkers.iterator();
- while(iterator.hasNext()) {
- BlockMarker marker = (BlockMarker)iterator.next();
- if(marker.getTagName().equals(name))
- return marker.getContext();
- }
- return BLOCK_TEXT;
- }
- /* user method */
- public List getBlockMarkers() {
- return fBlockMarkers;
- }
- /* user method */
- public final int getOffset() {
- return fOffset + yychar;
- }
- private final boolean isBlockMarker() {
- return isBlockMarker(fCurrentTagName);
- }
- private final boolean isBlockMarker(String tagName) {
- if (!fIsBlockingEnabled)
- return false;
- return containsTagName(tagName);
- }
- /**
- * user method
- */
- public final void beginBlockTagScan(String newTagName) {
- beginBlockMarkerScan(newTagName, BLOCK_TEXT);
- }
- /**
- * user method
- *
- * Special tokenizer setup. Allows tokenization to be initiated at the
- * start of a text block within a "newTagName" tag.
- *
- * Example:
- * Tokenizer toker = new Tokenizer();
- * toker.setCaseSensitiveBlocking(false);
- * toker.reset(new java.io.StringReader("afiuhqwkejhtasihgalkwhtq</scripter></scr></script>asgdasga"));
- * toker.beginBlockMarkerScan("script", BLOCK_TEXT);
- * toker.getRegions();
- *
- * Returns:
- * BLOCK_TEXT: 0-40
- * XML_END_TAG_OPEN: 41-42
- * XML_TAG_NAME: 43-48
- * XML_TAG_CLOSE: 49-49
- * XML_CONTENT: 50-57
- *
- */
- public final void beginBlockMarkerScan(String newTagName, String blockcontext) {
- yybegin(ST_BLOCK_TAG_SCAN);
- fCurrentTagName = newTagName;
- }
-
-/**
- * Method doScan.
- *
- * Returns a context region for all of the text from the current position upto the end of input or
- * to right *before* the first occurence of searchString
- *
- * @param searchString - target string to search for ex.: "-->", "</tagname"
- * @param requireTailSeparator - whether the target must be immediately followed by whitespace or '>'
- * @param allowJSP - check for and allow for JSP markup <%%>
- * @param context - the context of the scanned region if non-zero length
- * @param exitState - the state to go to if the region was of non-zero length
- * @param abortState - the state to go to if the searchString was found immediately
- * @return String - the context found: the desired context on a non-zero length match, the abortContext on immediate success
- * @throws IOException
- */
-private final String doScan(String searchString, boolean requireTailSeparator, boolean allowJSP, boolean allowCDATA, String searchContext, int exitState, int immediateFallbackState) throws IOException {
- boolean stillSearching = true;
- // Disable further block (probably)
- fIsBlockingEnabled = false;
- int searchStringLength = searchString.length();
- int n = 0;
- char lastCheckChar;
- int i;
- boolean same = false;
- // Check for JSP starts ("<%") if the tag is global like SCRIPT or STYLE
- boolean checkJSPs = allowJSP && !fForbidJSP;
- boolean checkedForJSPsOnce = !checkJSPs;
- boolean checkedJSPsAtStartOnce = false;
-
- while (stillSearching) {
- n = 0;
- // Ensure that enough data from the input exists to compare against the search String.
- n = yy_advance();
- while(n != YYEOF && yy_currentPos < searchStringLength)
- n = yy_advance();
-// c = (char) n;
- // If the input was too short or we've exhausted the input, stop immediately.
- if (n == YYEOF && checkedForJSPsOnce) {
- stillSearching = false;
- }
- else {
- /**
- * Look for starting JSPs "<%"
- */
- checkedForJSPsOnce = true;
- // 1) yy_currentPos - searchStringLength : There's at least searchStringLength of input available; once that's read, check for JSPs
- // ---
- // Look for a JSP beginning at current-searchStringLength; if so, backup and switch scanner states to handle it.
- // Ensure that we've not encountered a complete block (<%%>) that was *shorter* than the closeTagString and
- // thus found twice at current-targetLength [since the first scan would have come out this far anyway].
- if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart &&
- yy_buffer[yy_currentPos - searchStringLength] == '<' && yy_buffer[yy_currentPos - searchStringLength + 1] == '%') {
- fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength;
- yy_currentPos = yy_markedPos + 1;
- int resumeState = yystate();
- yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
- if(yy_markedPos == yy_startRead) {
- String jspContext = primGetNextToken();
- yybegin(resumeState);
- return jspContext;
- }
- return searchContext;
- }
- // 2) yy_currentPos - jspstarter.length : There's not searchStringLength of input available; check for a JSP 2 spots back in what we could read
- // ---
- // Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section
- // since it relies upon *having* closeTagStringLength amount of input to work as designed. Must be sure we don't
- // spill over the end of the buffer while checking.
- else if(checkJSPs && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 &&
- yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') {
- fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1;
- yy_currentPos = yy_markedPos + 1;
- int resumeState = yystate();
- yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
- if(yy_markedPos == yy_startRead) {
- String jspContext = primGetNextToken();
- yybegin(resumeState);
- return jspContext;
- }
- return searchContext;
- }
- // 3) yy_currentPos..(yy_currentPos+jspStartlength-1) : Check at the start of the block one time
- // ---
- // Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section
- // since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed.
- else if(checkJSPs && !checkedJSPsAtStartOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 &&
- yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') {
- checkedJSPsAtStartOnce = true;
- fLastInternalBlockStart = yy_markedPos = yy_startRead;
- yy_currentPos = yy_markedPos + 1;
- int resumeState = yystate();
- yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
- if(yy_markedPos == yy_startRead) {
- String jspContext = primGetNextToken();
- yybegin(resumeState);
- return jspContext;
- }
- return searchContext;
- }
-
-
- /**
- * Look for starting CDATA "<![CDATA["
- */
- // 1) yy_currentPos - searchStringLength: There's at least searchStringLength of input available; once that's read, check for CDATA
- // ---
- // Look for a CDATA beginning at current-searchStringLength; if so, backup and switch scanner states to handle it.
- // Ensure that we've not encountered a complete block (<[!CDATA[]]>) that was *shorter* than the closeTagString and
- // thus found twice at current-targetLength [since the first scan would have come out this far anyway].
-/* if(checkCDATA && yy_currentPos > searchStringLength && yy_currentPos + searchStringLength < yy_buffer.length && yy_currentPos - searchStringLength != fLastInternalBlockStart &&
- charsMatch(cdataStarter, yy_buffer, 0, yy_currentPos - searchStringLength)) {
- fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength;
- yy_currentPos = yy_markedPos + 1;
- int resumeState = yystate();
- // go to a state where CDATA can be found
- if (fEmbeddedContainer == null) {
- fEmbeddedContainer = new ContextRegionContainer();
- fEmbeddedContainer.setType(searchContext);
- fEmbeddedContainer.setStart(yychar);
- }
- ITextRegion newToken = fRegionFactory.createToken(searchContext, yychar, yylength(), yylength());
- fEmbeddedContainer.getRegions().add(newToken);
- fEmbeddedContainer.setLength(fEmbeddedContainer.getLength() + yylength());
- fEmbeddedContainer.setTextLength(fEmbeddedContainer.getTextLength() + yylength());
- yybegin(YYINITIAL);
- String context = primGetNextToken();
- if(context.equals(XMLRegionContexts.XML_CDATA_OPEN)) {
- assembleEmbeddedContainer(XMLRegionContexts.XML_CDATA_OPEN, XMLRegionContexts.XML_CDATA_CLOSE);
- }
- yybegin(resumeState);
- return searchContext;
- }
-*//*
- // 2) yy_currentPos - cdataStarter.length: There's not searchStringLength of input available; check for a CDATA right here spots back in what we could read
- // ---
- // Look for a JSP beginning at the current position; this case wouldn't be handled by the preceding section
- // since it relies upon *having* closeTagStringLength amount of input to work as designed. Must be sure we don't
- // spill over the end of the buffer while checking.
- else if(checkCDATA && yy_startRead != fLastInternalBlockStart && yy_currentPos > 0 && yy_currentPos < yy_buffer.length - 1 &&
- yy_buffer[yy_currentPos - 1] == '<' && yy_buffer[yy_currentPos] == '%') {
- fLastInternalBlockStart = yy_markedPos = yy_currentPos - 1;
- yy_currentPos = yy_markedPos + 1;
- int resumeState = yystate();
- yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
- if(yy_markedPos == yy_startRead) {
- String jspContext = primGetNextToken();
- yybegin(resumeState);
- return jspContext;
- }
- return searchContext;
- }
- // 3) yy_currentPos : Check at the start of the block one time
- // ---
- // Look for a JSP beginning immediately in the block area; this case wouldn't be handled by the preceding section
- // since it relies upon yy_currentPos equaling exactly the previous end +1 to work as designed.
- else if(checkCDATA && !checkedForCDATAOnce && yy_startRead != fLastInternalBlockStart && yy_startRead > 0 &&
- yy_startRead < yy_buffer.length - 1 && yy_buffer[yy_startRead] == '<' && yy_buffer[yy_startRead + 1] == '%') {
- checkedForCDATAOnce = true;
- fLastInternalBlockStart = yy_markedPos = yy_startRead;
- yy_currentPos = yy_markedPos + 1;
- int resumeState = yystate();
- yybegin(ST_BLOCK_TAG_INTERNAL_SCAN);
- if(yy_markedPos == yy_startRead) {
- String jspContext = primGetNextToken();
- yybegin(resumeState);
- return jspContext;
- }
- return searchContext;
- }
-*/
- // Check the characters in the target versus the last targetLength characters read from the buffer
- // and see if it matches
- if (n == YYEOF) {
- stillSearching = false;
- }
- else {
- same = true;
- // safety check for array accesses
- if(yy_currentPos >= searchStringLength && yy_currentPos <= yy_buffer.length) {
- for(i = 0; i < searchStringLength; i++) {
- if(same && fIsCaseSensitiveBlocking)
- same = yy_buffer[i + yy_currentPos - searchStringLength] == searchString.charAt(i);
- else if(same && !fIsCaseSensitiveBlocking)
- same = Character.toLowerCase(yy_buffer[i + yy_currentPos - searchStringLength]) == Character.toLowerCase(searchString.charAt(i));
- }
- }
- // safety check failed; no match is possible right now
- else {
- same = false;
- }
- }
- if (same && requireTailSeparator && yy_currentPos < yy_buffer.length) {
- // Additional check for close tags to ensure that targetString="</script" doesn't match
- // "</scriptS"
- lastCheckChar = yy_buffer[yy_currentPos];
- // Succeed on "</script>" and "</script "
- if(lastCheckChar == '>' || Character.isWhitespace(lastCheckChar))
- stillSearching = false;
- }
- else {
- stillSearching = !same || (yy_currentPos < yy_startRead + searchStringLength);
- }
- }
- }
- if (n != YYEOF || same) {
- // We've stopped short of the end or definitely found a match
- yy_markedPos = yy_currentPos - searchStringLength;
- yy_currentPos = yy_markedPos + 1;
- // If the searchString occurs at the very beginning of what would have
- // been a Block, resume scanning normally immediately
- if (yy_markedPos == yy_startRead) {
- yybegin(immediateFallbackState);
- return primGetNextToken();
- }
- }
- else {
- // We ran through the rest of the input
- yy_markedPos = yy_currentPos;
- yy_currentPos++;
- }
- yybegin(exitState);
- // If the ending occurs at the very beginning of what would have
- // been a Block, resume scanning normally immediately
- if(yy_markedPos == yy_startRead)
- return primGetNextToken();
- return searchContext;
-}
-/**
- * user method
- * does a lookahead for the current tag name
- */
-private final String doBlockTagScan() throws IOException {
- fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity();
- return doScan("</" + fCurrentTagName, true, getBlockMarkerAllowsJSP(), true, getBlockMarkerContext(fCurrentTagName), YYINITIAL, YYINITIAL);
-}
- /**
- * user method
- *
- * Converts the raw context String returned by the primGetNextToken()
- * method into a full ITextRegion by pulling in values for the
- * current offset within the scanning text.
- *
- * Returns null when EOF is encountered and attaches intermittently
- * discovered whitespace onto the end of useful regions.
- *
- * Note that this algorithm caches the token following the one being returned
- * so that whitespace can be collapsed.
- */
- public final ITextRegion getNextToken() throws IOException {
- fEmbeddedContainer = null;
- // load the starting non-whitespace token (assume that it is so)
- if (fShouldLoadBuffered) {
- if (fBufferedEmbeddedContainer != null) {
- ITextRegion container = fBufferedEmbeddedContainer;
- fBufferedEmbeddedContainer = null;
- fShouldLoadBuffered = false;
- return container;
- }
- context = fBufferedContext;
- start = fBufferedStart;
- textLength = length = fBufferedLength;
- fShouldLoadBuffered = false;
- } else {
- context = primGetNextToken();
- if (context == PROXY_CONTEXT) {
- return fEmbeddedContainer;
- } else if (context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_NAME) {
- if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead))
- fCurrentTagName = yytext();
- else
- fCurrentTagName = null;
- } else if (context == XML_TAG_OPEN) {
- fIsBlockingEnabled = true;
- } else if (context == XML_END_TAG_OPEN) {
- fIsBlockingEnabled = false;
- }
- start = yychar;
- textLength = length = yylength();
- if (yy_atEOF) {
- fTokenCount++;
- return null;
- }
- }
- // store the next token
- f_context = primGetNextToken();
- if (f_context == PROXY_CONTEXT) {
- fBufferedEmbeddedContainer = fEmbeddedContainer;
- fShouldLoadBuffered = true;
- } else if (f_context == XML_TAG_NAME || f_context == JSP_ROOT_TAG_NAME || f_context == JSP_DIRECTIVE_NAME) {
- if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead))
- fCurrentTagName = yytext();
- else
- fCurrentTagName = null;
- } else if (f_context == XML_TAG_OPEN) {
- fIsBlockingEnabled = true;
- } else if (f_context == XML_END_TAG_OPEN) {
- fIsBlockingEnabled = false;
- }
- fBufferedContext = f_context;
- fBufferedStart = yychar;
- fBufferedLength = yylength();
- fShouldLoadBuffered = true;
- if (fBufferedContext == WHITE_SPACE) {
- fShouldLoadBuffered = false;
- length += fBufferedLength;
- }
- if (context == null) {
- // EOF
- if (Debug.debugTokenizer) {
- System.out.println(getClass().getName() + " discovered " + fTokenCount + " tokens."); //$NON-NLS-2$//$NON-NLS-1$
- }
- return null;
- }
- fTokenCount++;
- return fRegionFactory.createToken(context, start, textLength, length, null, fCurrentTagName);
- }
- /* user method */
- public JSPTokenizer(){
- super();
- }
- /* user method */
- public JSPTokenizer(char[] charArray){
- this(new CharArrayReader(charArray));
- }
- /* user method */
- public void reset(char[] charArray) {
- reset(new CharArrayReader(charArray), 0);
- }
- /* user method */
- public void reset(char[] charArray, int newOffset) {
- reset(new CharArrayReader(charArray), newOffset);
- }
- /* user method */
- public void reset(java.io.InputStream in) {
- reset(new java.io.InputStreamReader(in), 0);
- }
- /* user method */
- public void reset(java.io.InputStream in, int newOffset) {
- reset(new java.io.InputStreamReader(in), newOffset);
- }
- /* user method */
- public void reset(java.io.Reader in) {
- reset(in, 0);
- }
- /**
- * user method *
- *
- * Reset internal counters and vars to "newly created" values, in the hopes
- * that resetting a pre-existing tokenizer is faster than creating a new one.
- *
- * This method contains code blocks that were essentially duplicated from the
- * <em>generated</em> output of this specification before this method was
- * added. Those code blocks were under the above copyright.
- */
- public void reset(java.io.Reader in, int newOffset) {
- if (Debug.debugTokenizer) {
- System.out.println("resetting tokenizer");//$NON-NLS-1$
- }
- fOffset = newOffset;
-
- /* 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;
-
- /* number of newlines encountered up to the start of the matched text */
- yyline = 0;
-
- /* the number of characters up to the start of the matched text */
- yychar = 0;
-
- /* 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;
-
-
- /* user vars: */
- fTokenCount = 0;
-
- fShouldLoadBuffered = false;
- fBufferedContext = null;
- fBufferedStart = 1;
- fBufferedLength = 0;
- fStateStack = new IntStack();
-
- fLastInternalBlockStart = -1;
-
- context = null;
- start = 0;
- textLength = 0;
- length = 0;
-
- fEmbeddedContainer = null;
-
- fELlevel = 0;
- }
- /**
- * user method
- *
- */
- public BlockTokenizer newInstance() {
- JSPTokenizer newInstance = new JSPTokenizer();
- // global tagmarkers can be shared; they have no state and
- // are never destroyed (e.g. 'release')
- for(int i = 0; i < fBlockMarkers.size(); i++) {
- BlockMarker blockMarker = (BlockMarker) fBlockMarkers.get(i);
- if(blockMarker.isGlobal())
- newInstance.addBlockMarker(blockMarker);
- }
- for(int i = 0; i < fNestablePrefixes.size(); i++) {
- TagMarker marker = (TagMarker) fNestablePrefixes.get(i);
- if(marker.isGlobal())
- newInstance.addNestablePrefix(marker);
- }
- return newInstance;
- }
- /* user method */
- private final String scanXMLCommentText() throws IOException {
- // Scan for '-->' and return the text up to that point as
- // XML_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which
- // case change to the ST_XML_COMMENT_END state and return the next
- // context as usual.
- return doScan("-->", false, true, true, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END);
- }
- /* user method */
- private final String scanJSPCommentText() throws IOException {
- // Scan for '--%>' and return the text up to that point as
- // JSP_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which
- // case change to the ST_JSP_COMMENT_END state and return the next
- // context as usual.
- return doScan("--%>", false, false, true, JSP_COMMENT_TEXT, ST_JSP_COMMENT_END, ST_JSP_COMMENT_END);
- }
-%}
-
-%eof{
-// do nothing, this is the downstream parser's job
-%eof}
-
-%public
-%class JSPTokenizer
-%implements BlockTokenizer, DOMJSPRegionContexts
-%function primGetNextToken
-%type String
-%char
-%line
-%unicode
-%pack
-
-%state ST_CDATA_TEXT
-%state ST_CDATA_END
-%state ST_XML_COMMENT
-%state ST_XML_COMMENT_END
-%state ST_PI
-%state ST_PI_WS
-%state ST_PI_CONTENT
-%state ST_XML_PI_ATTRIBUTE_NAME
-%state ST_XML_PI_EQUALS
-%state ST_XML_PI_ATTRIBUTE_VALUE
-%state ST_XML_PI_TAG_CLOSE
-%state ST_DHTML_ATTRIBUTE_NAME
-%state ST_DHTML_EQUALS
-%state ST_DHTML_ATTRIBUTE_VALUE
-%state ST_DHTML_TAG_CLOSE
-
-// scriptlet state(s)
-%state ST_JSP_CONTENT
-%state ST_JSP_DIRECTIVE_NAME
-%state ST_JSP_DIRECTIVE_NAME_WHITESPACE
-%state ST_JSP_DIRECTIVE_ATTRIBUTE_NAME
-%state ST_JSP_DIRECTIVE_EQUALS
-%state ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE
-
-// normal tag states
-%state ST_XML_TAG_NAME
-%state ST_XML_ATTRIBUTE_NAME
-%state ST_XML_EQUALS
-%state ST_XML_ATTRIBUTE_VALUE
-
-// declaration (DTD) states
-%state ST_XML_DECLARATION
-%state ST_XML_DECLARATION_CLOSE
-
-%state ST_XML_DOCTYPE_DECLARATION
-%state ST_XML_DOCTYPE_EXTERNAL_ID
-%state ST_XML_DOCTYPE_ID_PUBLIC
-%state ST_XML_DOCTYPE_ID_SYSTEM
-
-%state ST_XML_ELEMENT_DECLARATION
-%state ST_XML_ELEMENT_DECLARATION_CONTENT
-
-%state ST_XML_ATTLIST_DECLARATION
-%state ST_XML_ATTLIST_DECLARATION_CONTENT
-
-
-%state ST_BLOCK_TAG_SCAN
-%state ST_BLOCK_TAG_INTERNAL_SCAN
-
-%state ST_JSP_COMMENT
-%state ST_JSP_COMMENT_END
-
-%state ST_XML_ATTRIBUTE_VALUE_SQUOTED
-%state ST_XML_ATTRIBUTE_VALUE_DQUOTED
-
-%state ST_ABORT_EMBEDDED
-
-%state ST_JSP_EL
-%state ST_JSP_EL_SQUOTES
-%state ST_JSP_EL_DQUOTES
-%state ST_JSP_EL_SQUOTES_END
-%state ST_JSP_EL_DQUOTES_END
-
-%state ST_JSP_DQUOTED_EL
-%state ST_JSP_SQUOTED_EL
-
-%state ST_JSP_VBL
-%state ST_JSP_VBL_SQUOTES
-%state ST_JSP_VBL_DQUOTES
-%state ST_JSP_VBL_SQUOTES_END
-%state ST_JSP_VBL_DQUOTES_END
-
-%state ST_JSP_DQUOTED_VBL
-%state ST_JSP_SQUOTED_VBL
-
-// Letter = ([A-Za-z])
-// Digit = ([0-9])
-
-/**
- * smaller tokens
- */
-genericTagOpen = <
-genericTagClose = >
-genericEndTagOpen = <\/
-genericEmptyTagClose = \/>
-
-PIstart = <\?
-PIend = \?>
-
-
-// [1] document ::= prolog element Misc*
-document = ({prolog} {element} {Misc}*)
-
-// [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
- //Char = (.)
-Char = [\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD]
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]+
-
-// [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
-NameChar = ({Letter} | {Digit} | \. | \- | _ | : | {CombiningChar} | {Extender})
-
-// [5] Name ::= (Letter | '_' | ':') NameChar*
-//Name = ({NameChar}{NameChar}*)
-Name = ({Letter} | _ | :){NameChar}*
-
-// [6] Names ::= {Name} ({S} {Name})*
-Names = ({Name} ({S} {Name})*)
-
-// [7] Nmtoken ::= (NameChar)+
-Nmtoken = ({NameChar}+)
-
-// [8] Nmtokens ::= Nmtoken (S Nmtoken)*
-Nmtokens = ({Nmtoken} ({S} {Nmtoken})*)
-
-// [9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"' | "'" ([^%&'] | PEReference | Reference)* "'"
-EntityValue = (\" ([^%&\"] | {PEReference} | {Reference})* \" | \' ([^%&\'] | {PEReference} | {Reference})* \')
-
-// \x24 = '$', \x7b = '{', \x23 = '#'
-// [10] AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"
-AttValue = ( \"([^<"\x24\x23] | [\x24\x23][^\x7b"] | {Reference})*[\x24\x23]*\" | \'([^<'\x24\x23] | [\x24\x23][^\x7b'] | {Reference})*[\x24\x23]*\' | ([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )*)
-
-// [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")
-SystemLiteral = ((\" [^\"]* \") | (\' [^\']* \'))
-
-// [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
-PubidLiteral = (\" {PubidChar}* \" | \' ({PubidChar}\')* "'")
-
-// [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
-PubidChar = ([\040\015\012] | [a-zA-Z0-9] | [\-\'()\+,.\/:=?;!\*#@\$_%])
-
-// [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
-// implement lookahead behavior during action definition
-CharData = ([^<&(\]\]>)]*)
-
-// [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
-CommentStart = (<!\-\-)
-CommentEnd = (\-\->)
-Comment = ({CommentStart}.*{CommentEnd})
-
-// [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
-PI = (<\?{PITarget} {Char}* \?>)
-
-// [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))
-PITarget = ({Name}((X|x)(M|m)(L|l)))
-
-// [18] CDSect ::= CDStart CData CDEnd
-CDSect = ({CDStart}{CData}{CDEnd})
-
-// [19] CDStart ::= '<![CDATA['
-CDStart = <!\[CDATA\[
-
-// [20] CData ::= (Char* - (Char* ']]>' Char*))
-// implement lookahead behavior during action definition
-CData = ([^(\]\]>)]*)
-
-// [21] CDEnd ::= ']]>'
-CDEnd = (\]\]>)
-
-// [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
-prolog = ({XMLDecl}? {Misc}* ({doctypedecl} {Misc}*)?)
-
-// [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
-XMLDecl = (<\?xml {VersionInfo} {EncodingDecl}? {SDDecl}? {S}? \?>)
-
-// [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")
-VersionInfo = ({S}version{Eq}(\'{VersionNum}\' | \"{VersionNum}\"))
-
-// [25] Eq ::= S? '=' S?
-Eq = (\=)
-
-// [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
-VersionNum = (([a-zA-Z0-9_.:]|\-)+)
-
-// [27] Misc ::= Comment | PI | S
-Misc = ({Comment} | {PI} | {S})
-
-// [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
-doctypedecl = (<\!DOCTYPE{S}{Name} ({S}{ExternalID})? {S}? (\[ ({markupdecl}|{PEReference}|{S})* \]{S}?)?>)
-
-// [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment
-markupdecl = ({elementdecl} | {AttlistDecl} | {EntityDecl} | {NotationDecl} | {PI} | {Comment})
-
-// [30] extSubset ::= TextDecl? extSubsetDecl
-extSubset = ({TextDecl}? {extSubsetDecl})
-
-// [31] extSubsetDecl ::= ( markupdecl | conditionalSect | PEReference | S )*
-extSubsetDecl = (( {markupdecl} | {conditionalSect} | {PEReference} | {S} )*)
-
-// [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))
-SDDecl = ({S}standalone{Eq}{S}*((\'(yes|no)\')|(\"(yes|no)\")))
-
-// [33] LanguageID ::= Langcode ('-' Subcode)*
-LanguageID = ({Langcode}(\-{Subcode})*)
-
-// [34] Langcode ::= ISO639Code | IanaCode | UserCode
-Langcode = ({ISO639Code} | {IanaCode} | {UserCode})
-
-// [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z])
-ISO639Code = (([a-z]|[A-Z])([a-z]|[A-Z]))
-
-// [36] IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+
-IanaCode = ((i|I)\-([a-z]|[A-Z])+)
-
-// [37] UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+
-UserCode = ((x|X)\-([a-z]|[A-Z])+)
-
-// [38] Subcode ::= ([a-z] | [A-Z])+
-Subcode = (([a-z]|[A-Z])+)
-
-// [39] element ::= EmptyElemTag | STag content ETag
-element = ({EmptyElemTag} | {STag} {content} {ETag})
-
-// [40] STag ::= '<' Name (S Attribute)* S? '>'
-STag = (<{Name}({S}{Attribute})*{S}?>)
-
-// [41] Attribute ::= Name Eq AttValue
-Attribute = ({Name}{S}*{Eq}{S}*{AttValue})
-
-// [42] ETag ::= 'Name S? '>'
-ETag = (<\/{Name}{S}?>)
-
-// [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*
-content = (({element} | {CharData} | {Reference} | {CDSect} | {PI} | {Comment})*)
-
-// [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
-EmptyElemTag = (<{Name}({S}{Attribute})*{S}?\/>)
-
-// [45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'
-elementdecl = (<\!ELEMENT{S}{Name}{S}{contentspec}{S}?>)
-
-// [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children
-contentspec = (EMPTY|ANY|{Mixed}|{children})
-
-// [47] children ::= (choice | seq) ('?' | '*' | '+')?
-children = (({choice}|{seq})(\?|\*|\+)?)
-
-// CAUSES LOOP THROUGH DEFS OF CHOICE AND SEQ
-// [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
-cp = (({Name} | {choice} | {seq}) (\?|\*|\+)?)
-
-// [49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')'
-// choice = \({S}?{cp}({S}?\|{S}?{cp})*{S}?\)
-choice = \({S}?{Name}({S}?\|{S}?{Name})*{S}?\)
-
-// [50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'
-// seq = (\({S}?{cp}({S}?\,{S}?{cp})*{S}?\))
-seq = (\({S}?{Name}({S}?\,{S}?{Name})*{S}?\))
-
-// [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA' S? ')'
-Mixed = ({S}?\#PCDATA({S}?\|{S}?{Name})*{S}?)*\|({S}?\#PCDATA{S}?)
-
-// [52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'
-AttlistDecl = (<\!ATTLIST{S}{Name}{AttDef}*{S}?>)
-
-// [53] AttDef ::= S Name S AttType S DefaultDecl
-AttDef = ({S}{Name}{S}{AttType}{S}{DefaultDecl})
-
-// [54] AttType ::= StringType | TokenizedType | EnumeratedType
-AttType = ({StringType} | {TokenizedType} | {EnumeratedType})
-
-// [55] StringType ::= 'CDATA'
-StringType = (CDATA)
-
-// [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'
-TokenizedType = (ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS)
-
-// [57] EnumeratedType ::= NotationType | Enumeration
-EnumeratedType = ({NotationType} | {Enumeration})
-
-// [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'
-NotationType = (NOTATION{S}\({S}?{Name}({S}?\|{S}?{Name})*{S}?\))
-
-// [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'
-Enumeration = (\({S}?{Nmtoken}({S}?\|{S}?{Nmtoken})*{S}?\))
-
-// [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue)
-DefaultDecl = (\#REQUIRED|\#IMPLIED|((\#FIXED{S})?{AttValue}))
-
-// [61] conditionalSect ::= includeSect | ignoreSect
-conditionalSect = ({includeSect} | {ignoreSect})
-
-// [62] includeSect ::= '<![' S? 'INCLUDE' S? '[' extSubsetDecl ']]>'
-includeSect = (<\!\[{S}?INCLUDE{S}?\[{extSubsetDecl}\]\]>)
-
-// [63] ignoreSect ::= '<![' S? 'IGNORE' S? '[' ignoreSectContents* ']]>'
-ignoreSect = (<\!\[{S}?IGNORE{S}?\[{ignoreSectContents}*\]\]>)
-
-// [64] ignoreSectContents ::= Ignore ('<![' ignoreSectContents ']]>' Ignore)*
-ignoreSectContents = ({Ignore}(<\!\[{ignoreSectContents}\]\]>{Ignore})*)
-
-// [65] Ignore ::= Char* - (Char* ('<![' | ']]>') Char*)
-Ignore = ([^(\<\!\[|\]\]\>)]*)
-
-// [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
-CharRef = (&#[0-9]+;|&#x[0-9a-fA-F]+;)
-
-// [67] Reference ::= EntityRef | CharRef
-Reference = ({EntityRef} | {CharRef})
-
-// [68] EntityRef = '&' Name ';'
-EntityRef = (&{Name};)
-
-// [69] PEReference ::= '%' Name ';'
-PEReference = (%{Name};)
-
-// [70] EntityDecl ::= GEDecl | PEDecl
-EntityDecl = ({GEDecl} | {PEDecl})
-
-// [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'
-GEDecl = (<\!ENTITY{S}{Name}{S}{EntityDef}{S}?>)
-
-// [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
-PEDecl = (<\!ENTITY{S}\%{S}{Name}{S}{PEDef}{S}?>)
-
-// [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)
-EntityDef = ({EntityValue} | ({ExternalID}{NDataDecl}?))
-
-// [74] PEDef ::= EntityValue | ExternalID
-PEDef = ({EntityValue} | {ExternalID})
-
-// [75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral
-ExternalID = (SYSTEM{S}{SystemLiteral}|PUBLIC{S}{PubidLiteral}{S}{SystemLiteral} )
-
-// [76] NDataDecl ::= S 'NDATA' S Name
-NDataDecl = ({S}NDATA{S}{Name})
-
-// [77] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'
-TextDecl = (<\?xml{VersionInfo}?{EncodingDecl}{S}?\?>)
-
-// [78] extParsedEnt ::= TextDecl? content
-extParsedEnt = ({TextDecl}?{content})
-
-// [79] extPE ::= TextDecl? extSubsetDecl
-extPE = ({TextDecl}?{extSubsetDecl})
-
-// [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'" )
-EncodingDecl = ({S}encoding{S}*{Eq}{S}*(\"{EncName}\"|\'{EncName}\'))
-
-// [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
-EncName = ([A-Za-z]([A-Za-z0-9._]|\-)*)
-
-// [82] NotationDecl ::= '<!NOTATION' S Name S (ExternalID | PublicID) S? '>'
-NotationDecl = (<\!NOTATION{S}{Name}{S}({ExternalID}|{PublicID}){S}?>)
-
-// [83] PublicID ::= 'PUBLIC' S PubidLiteral
-PublicID = (PUBLIC{S}{PubidLiteral})
-
-// [84] Letter ::= BaseChar | Ideographic
-Letter = ({BaseChar} | {Ideographic})
-
-// [85] BaseChar ::= [#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6]
-// | [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131]
-// | [#x0134-#x013E] | [#x0141-#x0148] | [#x014A-#x017E]
-// | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5]
-// | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386
-// | [#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE]
-// | [#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0
-// | [#x03E2-#x03F3] | [#x0401-#x040C] | [#x040E-#x044F]
-// | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4]
-// | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB]
-// | [#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559
-// | [#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2]
-// | [#x0621-#x063A] | [#x0641-#x064A] | [#x0671-#x06B7]
-// | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3] | #x06D5
-// | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | [#x0958-#x0961]
-// | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8]
-// | [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD]
-// | [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A]
-// | [#x0A0F-#x0A10] | [#x0A13-#x0A28] | [#x0A2A-#x0A30]
-// | [#x0A32-#x0A33] | [#x0A35-#x0A36] | [#x0A38-#x0A39]
-// | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | [#x0A85-#x0A8B]
-// | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | [#x0AAA-#x0AB0]
-// | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0
-// | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28]
-// | [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D
-// | [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A]
-// | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C
-// | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA]
-// | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C]
-// | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33]
-// | [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C]
-// | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | [#x0CAA-#x0CB3]
-// | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | [#x0D05-#x0D0C]
-// | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39]
-// | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33]
-// | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88]
-// | #x0E8A | #x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F]
-// | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7 | [#x0EAA-#x0EAB]
-// | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | #x0EBD
-// | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69]
-// | [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103]
-// | [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112]
-// | #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150
-// | [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163 | #x1165
-// | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173] | #x1175
-// | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | [#x11B7-#x11B8]
-// | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9
-// | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15]
-// | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D]
-// | [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D]
-// | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4]
-// | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB]
-// | [#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126
-// | [#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094]
-// | [#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]
-BaseChar = [\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8-\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u212A-\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3]
-
-// [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
-Ideographic = [\u4E00-\u9FA5\u3007\u3021-\u3029]
-
-// [87] CombiningChar ::= [#x0300-#x0345] | [#x0360-#x0361]
-// | [#x0483-#x0486] | [#x0591-#x05A1] | [#x05A3-#x05B9]
-// | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] | #x05C4
-// | [#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] | [#x06DD-#x06DF]
-// | [#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED]
-// | [#x0901-#x0903] | #x093C | [#x093E-#x094C] | #x094D
-// | [#x0951-#x0954] | [#x0962-#x0963] | [#x0981-#x0983] | #x09BC
-// | #x09BE | #x09BF | [#x09C0-#x09C4] | [#x09C7-#x09C8]
-// | [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 | #x0A3C
-// | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48]
-// | [#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC
-// | [#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD]
-// | [#x0B01-#x0B03] | #x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48]
-// | [#x0B4B-#x0B4D] | [#x0B56-#x0B57] | [#x0B82-#x0B83]
-// | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] | [#x0BCA-#x0BCD] | #x0BD7
-// | [#x0C01-#x0C03] | [#x0C3E-#x0C44] | [#x0C46-#x0C48]
-// | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83]
-// | [#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD]
-// | [#x0CD5-#x0CD6] | [#x0D02-#x0D03] | [#x0D3E-#x0D43]
-// | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] | #x0D57 | #x0E31
-// | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] | #x0EB1 | [#x0EB4-#x0EB9]
-// | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] | [#x0F18-#x0F19] | #x0F35
-// | #x0F37 | #x0F39 | #x0F3E | #x0F3F | [#x0F71-#x0F84]
-// | [#x0F86-#x0F8B] | [#x0F90-#x0F95] | #x0F97 | [#x0F99-#x0FAD]
-// | [#x0FB1-#x0FB7] | #x0FB9 | [#x20D0-#x20DC] | #x20E1
-// | [#x302A-#x302F] | #x3099 | #x309A
-CombiningChar = [\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05A1\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1-\u05C2\u05C4\u064B-\u0652\u0670\u06D6-\u06DC\u06DD-\u06DF\u06E0-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094C\u094D\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09BC\u09BE\u09BF\u09C0-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3\u0A02\u0A3C\u0A3E\u0A3F\u0A40-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A70-\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B82-\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C82-\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A]
-
-// [88] Digit ::= [#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9]
-// | [#x0966-#x096F] | [#x09E6-#x09EF] | [#x0A66-#x0A6F]
-// | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] | [#x0BE7-#x0BEF]
-// | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F]
-// | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]
-Digit = [\u0030-\u0039\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29]
-
-// [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46
-// | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E]
-// | [#x30FC-#x30FE]
-Extender = [\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D-\u309E\u30FC-\u30FE]
-
-
-
-/**
- * JSP and scripting marker allowances
- */
-
-jspCommentStart = <%--
-jspCommentEnd = --%>
-
-jspScriptletStart = <%
-jspExpressionStart = {jspScriptletStart}=
-jspDeclarationStart = {jspScriptletStart}\!
-jspScriptletEnd = %>
-jspDirectiveStart = {jspScriptletStart}@
-
-%%
-
-/* white space within a tag */
-<ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_PI, ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_ATTLIST_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID, ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE,ST_XML_ATTRIBUTE_VALUE_DQUOTED,ST_XML_ATTRIBUTE_VALUE_SQUOTED,ST_DHTML_ATTRIBUTE_NAME,ST_DHTML_EQUALS,ST_DHTML_ATTRIBUTE_VALUE,ST_DHTML_TAG_CLOSE> {S}* {
- if(Debug.debugTokenizer)
- dump("white space");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-
-// BEGIN REGULAR XML
-/* handle opening a new tag almost anywhere */
-
-
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_DECLARATION, ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_NAME_WHITESPACE, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {genericTagOpen} {
- if(Debug.debugTokenizer)
- dump("\nstart tag open");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- yybegin(ST_XML_TAG_NAME);
- return XML_TAG_OPEN;
-}
-/* VERY special cases for tags as values */
-/* quoted JSP */
-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> ["] {
- return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;
-}
-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> ['] {
- return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;
-}
-<ST_XML_ATTRIBUTE_VALUE> ["] {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
- yybegin(ST_XML_ATTRIBUTE_VALUE_DQUOTED);
- fStateStack.push(yystate());
- if(Debug.debugTokenizer)
- dump("JSP attribute value start - complex double quoted");//$NON-NLS-1$
- assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_DQUOTE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE);
- fStateStack.pop();
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return PROXY_CONTEXT;
-}
-<ST_XML_ATTRIBUTE_VALUE> ['] {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
- yybegin(ST_XML_ATTRIBUTE_VALUE_SQUOTED);
- fStateStack.push(yystate());
- if(Debug.debugTokenizer)
- dump("JSP attribute value start - complex single quoted");//$NON-NLS-1$
- assembleEmbeddedContainer(XML_TAG_ATTRIBUTE_VALUE_SQUOTE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE);
- fStateStack.pop();
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return PROXY_CONTEXT;
-}
-
-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> ([^<"\x24\x23]|[\x24\x23][^\x7b])+ {
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> ([^<'\x24\x23]|[\x24\x23][^\x7b])+ {
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-
-<ST_XML_ATTRIBUTE_VALUE_DQUOTED,ST_XML_ATTRIBUTE_VALUE_SQUOTED> {genericTagOpen} {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- int incomingState = yystate();
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- if(Debug.debugTokenizer)
- dump("tag inside of JSP attribute value start");//$NON-NLS-1$
- yybegin(ST_XML_TAG_NAME);
- assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});
- if(yystate() != ST_ABORT_EMBEDDED)
- yybegin(incomingState);
- return PROXY_CONTEXT;
-}
-<ST_XML_ATTRIBUTE_VALUE_DQUOTED,ST_XML_ATTRIBUTE_VALUE_SQUOTED> {genericEndTagOpen} {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- int incomingState = yystate();
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- if(Debug.debugTokenizer)
- dump("JSP attribute value start - end tag");//$NON-NLS-1$
- yybegin(ST_XML_TAG_NAME);
- assembleEmbeddedContainer(XML_END_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});
- if(yystate() != ST_ABORT_EMBEDDED)
- yybegin(incomingState);
- return PROXY_CONTEXT;
-}
-
-/* unquoted */
-<ST_XML_ATTRIBUTE_VALUE> {genericTagOpen} {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- fStateStack.push(yystate());
- if(Debug.debugTokenizer)
- dump("JSP tag embedded name start - start tag");//$NON-NLS-1$
- yybegin(ST_XML_TAG_NAME);
- assembleEmbeddedContainer(XML_TAG_OPEN, new String[]{XML_TAG_CLOSE,XML_EMPTY_TAG_CLOSE});
- fStateStack.pop();
- yybegin(ST_XML_ATTRIBUTE_NAME);
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- return PROXY_CONTEXT;
-}
-
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION> {genericEndTagOpen} {
- if(Debug.debugTokenizer)
- dump("\nend tag open");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- yybegin(ST_XML_TAG_NAME);
- return XML_END_TAG_OPEN;
-}
-/* specially treated JSP tag names */
-<ST_XML_TAG_NAME> jsp:root {
- if(Debug.debugTokenizer)
- dump("jsp:root tag name");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return JSP_ROOT_TAG_NAME;
-}
-<ST_XML_TAG_NAME> jsp:directive.(page|include|tag|taglib|attribute|variable) {
- if(Debug.debugTokenizer)
- dump("jsp directive tag name");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return JSP_DIRECTIVE_NAME;
-}
-/* the tag's name was found, start scanning for attributes */
-<ST_XML_TAG_NAME> {Name} {
- if(Debug.debugTokenizer)
- dump("tag name");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return XML_TAG_NAME;
-}
-
-/* another attribute name was found, resume looking for the equals sign */
-<ST_XML_ATTRIBUTE_NAME, ST_XML_EQUALS> {Name} {
- if(Debug.debugTokenizer)
- dump("attr name");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- yybegin(ST_XML_EQUALS);
- return XML_TAG_ATTRIBUTE_NAME;
-}
-/* an equal sign was found, what's next is the value */
-<ST_XML_EQUALS> {Eq} {
- if(Debug.debugTokenizer)
- dump("equals");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- yybegin(ST_XML_ATTRIBUTE_VALUE);
- return XML_TAG_ATTRIBUTE_EQUALS;
-}
-/* the value was found, look for the next name */
-<ST_XML_ATTRIBUTE_VALUE> {AttValue} {
- if(Debug.debugTokenizer)
- dump("attr value");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-/* the tag's close was found */
-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("tag close");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- if(isBlockMarker()) {
- fEmbeddedHint = getBlockMarkerContext();
- fEmbeddedPostState = ST_BLOCK_TAG_SCAN;
- yybegin(ST_BLOCK_TAG_SCAN);
- }
- else
- yybegin(YYINITIAL);
- return XML_TAG_CLOSE;
-}
-/* the tag's close was found, but the tag doesn't need a matching end tag */
-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericEmptyTagClose} {
- yybegin(YYINITIAL);
- fEmbeddedHint = UNDEFINED;
- if(Debug.debugTokenizer)
- dump("empty tag close");//$NON-NLS-1$
- return XML_EMPTY_TAG_CLOSE;
-}
-
-<ST_XML_TAG_NAME> [^</>\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8-\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u212A-\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3\u4E00-\u9FA5\u3007\u3021-\u3029]* {
- if(Debug.debugTokenizer)
- dump("inappropriate tag name");//$NON-NLS-1$
- if(!fStateStack.empty() && (fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_SQUOTED||fStateStack.peek()==ST_XML_ATTRIBUTE_VALUE_DQUOTED)) {
- yybegin(ST_ABORT_EMBEDDED);
- yypushback(yylength()-1);
- return XML_TAG_ATTRIBUTE_VALUE;
- }
- yybegin(YYINITIAL);
- return XML_CONTENT;
-}
-
-// END REGULAR XML
-
-// BEGIN NESTED XML TAGS
-<ST_XML_ATTRIBUTE_NAME, ST_XML_EQUALS> <{Name} {
- String tagName = yytext().substring(1);
- // pushback to just after the opening bracket
- yypushback(yylength() - 1);
- /*
- * If this tag can not be nested or we're already searching for an
- * attribute name, equals, or value, return immediately.
- */
- if (!isNestable(tagName) || (!fStateStack.empty() && (fStateStack.peek() == ST_XML_ATTRIBUTE_NAME || fStateStack.peek() == ST_XML_EQUALS || fStateStack.peek() == ST_XML_ATTRIBUTE_VALUE))) {
- yybegin(ST_XML_TAG_NAME);
- return XML_TAG_OPEN;
- }
- if(Debug.debugTokenizer)
- dump("tag in place of attr name");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- fStateStack.push(yystate());
- // embedded container should be looking for the name (again) next
- yybegin(ST_XML_TAG_NAME);
- assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ?
- fStateStack.pop();
- yybegin(ST_XML_EQUALS);
- return PROXY_CONTEXT;
-}
-<ST_XML_ATTRIBUTE_VALUE> <{Name} {
- String tagName = yytext().substring(1);
- // pushback to just after the opening bracket
- yypushback(yylength() - 1);
- /*
- * If this tag can not be nested or we're already searching for an
- * attribute name, equals, or value, return immediately.
- */
- if (!isNestable(tagName) || (!fStateStack.empty() && (fStateStack.peek() == ST_XML_ATTRIBUTE_NAME || fStateStack.peek() == ST_XML_EQUALS || fStateStack.peek() == ST_XML_ATTRIBUTE_VALUE))) {
- yybegin(ST_XML_TAG_NAME);
- return XML_TAG_OPEN;
- }
- if(Debug.debugTokenizer)
- dump("tag in place of attr value");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- fStateStack.push(yystate());
- // embedded container should be looking for the name (again) next
- yybegin(ST_XML_TAG_NAME);
- assembleEmbeddedTagSequence(XML_TAG_OPEN, tagName); // ?
- fStateStack.pop();
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return PROXY_CONTEXT;
-}
-// END NESTED XML
-
-// XML & JSP Comments
-
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_NAME_WHITESPACE, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {CommentStart} {
- if(Debug.debugTokenizer)
- dump("\ncomment start");//$NON-NLS-1$
- fEmbeddedHint = XML_COMMENT_TEXT;
- fEmbeddedPostState = ST_XML_COMMENT;
- yybegin(ST_XML_COMMENT);
- return XML_COMMENT_OPEN;
-}
-<ST_XML_COMMENT> .|\r|\n {
- if(Debug.debugTokenizer)
- dump("comment content");//$NON-NLS-1$
- return scanXMLCommentText();
-}
-
-<ST_XML_COMMENT_END> {CommentEnd} {
- if(Debug.debugTokenizer)
- dump("comment end");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- yybegin(YYINITIAL);
- return XML_COMMENT_CLOSE;
-}
-
-<ST_JSP_CONTENT> {jspScriptletEnd} {
- if(Debug.debugTokenizer)
- dump("JSP end");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return JSP_CLOSE;
-}
-<ST_JSP_CONTENT> .|\n|\r {
- if(Debug.debugTokenizer)
- dump("JSP code content");//$NON-NLS-1$
- return doScan("%>", false, false, false, JSP_CONTENT, ST_JSP_CONTENT, ST_JSP_CONTENT);
-}
-{jspScriptletStart} {
- /* JSP scriptlet begun (anywhere)
- * A consequence of the start anywhere possibility is that the
- * incoming state must be checked to see if it's erroneous
- * due to the order of precedence generated
- */
- // begin sanity checks
- if(yystate() == ST_JSP_CONTENT) {
- // at the beginning?!
- yypushback(1);
- return JSP_CONTENT;
- }
- else if(yystate() == ST_BLOCK_TAG_SCAN) {
- yypushback(2);
- return doBlockTagScan();
- }
- else if(yystate() == ST_XML_COMMENT) {
- yypushback(2);
- return scanXMLCommentText();
- }
- else if(yystate() == ST_JSP_COMMENT) {
- yypushback(2);
- return scanJSPCommentText();
- }
- // finished sanity checks
- fStateStack.push(yystate());
- if(fStateStack.peek()==YYINITIAL) {
- // the simple case, just a regular scriptlet out in content
- if(Debug.debugTokenizer)
- dump("\nJSP scriptlet start");//$NON-NLS-1$
- yybegin(ST_JSP_CONTENT);
- return JSP_SCRIPTLET_OPEN;
- }
- else {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- if(Debug.debugTokenizer)
- dump("JSP scriptlet start");//$NON-NLS-1$
- if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
- else if(yystate() == ST_CDATA_TEXT) {
- fEmbeddedPostState = ST_CDATA_TEXT;
- fEmbeddedHint = XML_CDATA_TEXT;
- }
- yybegin(ST_JSP_CONTENT);
- assembleEmbeddedContainer(JSP_SCRIPTLET_OPEN, JSP_CLOSE);
- if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
- yybegin(ST_BLOCK_TAG_SCAN);
- return BLOCK_TEXT;
- }
- // required help for successive embedded regions
- if(yystate() == ST_XML_TAG_NAME) {
- fEmbeddedHint = XML_TAG_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- }
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- return PROXY_CONTEXT;
- }
-}
-{jspExpressionStart} {
- /* JSP expression begun (anywhere)
- * A consequence of the start anywhere possibility is that the
- * incoming state must be checked to see if it's erroneous
- * due to the order of precedence generated
- */
- // begin sanity checks
- if(yystate() == ST_JSP_CONTENT) {
- // at the beginning?!
- yypushback(2);
- return JSP_CONTENT;
- }
- else if(yystate() == ST_BLOCK_TAG_SCAN) {
- yypushback(3);
- return doBlockTagScan();
- }
- else if(yystate() == ST_XML_COMMENT) {
- yypushback(3);
- return scanXMLCommentText();
- }
- else if(yystate() == ST_JSP_COMMENT) {
- yypushback(3);
- return scanJSPCommentText();
- }
- // end sanity checks
- fStateStack.push(yystate());
- if(fStateStack.peek()==YYINITIAL) {
- // the simple case, just an expression out in content
- if(Debug.debugTokenizer)
- dump("\nJSP expression start");//$NON-NLS-1$
- yybegin(ST_JSP_CONTENT);
- return JSP_EXPRESSION_OPEN;
- }
- else {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- if(Debug.debugTokenizer)
- dump("JSP expression start");//$NON-NLS-1$
- if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
- else if(yystate() == ST_CDATA_TEXT) {
- fEmbeddedPostState = ST_CDATA_TEXT;
- fEmbeddedHint = XML_CDATA_TEXT;
- }
- yybegin(ST_JSP_CONTENT);
- assembleEmbeddedContainer(JSP_EXPRESSION_OPEN, JSP_CLOSE);
- if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
- yybegin(ST_BLOCK_TAG_SCAN);
- return BLOCK_TEXT;
- }
- // required help for successive embedded regions
- if(yystate() == ST_XML_TAG_NAME) {
- fEmbeddedHint = XML_TAG_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- }
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- return PROXY_CONTEXT;
- }
-}
-{jspDeclarationStart} {
- /* JSP declaration begun (anywhere)
- * A consequence of the start anywhere possibility is that the
- * incoming state must be checked to see if it's erroneous
- * due to the order of precedence generated
- */
- // begin sanity checks
- if(yystate() == ST_JSP_CONTENT) {
- // at the beginning?!
- yypushback(2);
- return JSP_CONTENT;
- }
- else if(yystate() == ST_BLOCK_TAG_SCAN) {
- yypushback(3);
- return doBlockTagScan();
- }
- else if(yystate() == ST_XML_COMMENT) {
- yypushback(3);
- return scanXMLCommentText();
- }
- else if(yystate() == ST_JSP_COMMENT) {
- yypushback(3);
- return scanJSPCommentText();
- }
- // end sanity checks
- fStateStack.push(yystate());
- if(fStateStack.peek()==YYINITIAL) {
- // the simple case, just a declaration out in content
- if(Debug.debugTokenizer)
- dump("\nJSP declaration start");//$NON-NLS-1$
- yybegin(ST_JSP_CONTENT);
- return JSP_DECLARATION_OPEN;
- }
- else {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- if(Debug.debugTokenizer)
- dump("JSP declaration start");//$NON-NLS-1$
- if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
- else if(yystate() == ST_CDATA_TEXT) {
- fEmbeddedPostState = ST_CDATA_TEXT;
- fEmbeddedHint = XML_CDATA_TEXT;
- }
- yybegin(ST_JSP_CONTENT);
- assembleEmbeddedContainer(JSP_DECLARATION_OPEN, JSP_CLOSE);
- if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
- yybegin(ST_BLOCK_TAG_SCAN);
- return BLOCK_TEXT;
- }
- // required help for successive embedded regions
- if(yystate() == ST_XML_TAG_NAME) {
- fEmbeddedHint = XML_TAG_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- }
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- return PROXY_CONTEXT;
- }
-}
-{jspCommentStart} {
- /* JSP comment begun (anywhere)
- * A consequence of the start anywhere possibility is that the
- * incoming state must be checked to see if it's erroneous
- * due to the order of precedence generated
- */
- // begin sanity checks
- if(yystate() == ST_JSP_CONTENT) {
- // at the beginning?!
- yypushback(3);
- return JSP_CONTENT;
- }
- else if(yystate() == ST_BLOCK_TAG_SCAN) {
- yypushback(4);
- return doBlockTagScan();
- }
- else if(yystate() == ST_XML_COMMENT) {
- yypushback(4);
- return scanXMLCommentText();
- }
- else if(yystate() == ST_JSP_COMMENT) {
- yypushback(4);
- return scanJSPCommentText();
- }
- else if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
- yybegin(ST_JSP_COMMENT);
- assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);
- if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN)
- yybegin(ST_BLOCK_TAG_SCAN);
- return PROXY_CONTEXT;
- }
- // finished sanity checks
- if(yystate()==YYINITIAL) {
- // the simple case, just a regular scriptlet out in content
- if(Debug.debugTokenizer)
- dump("\nJSP comment start");//$NON-NLS-1$
- yybegin(ST_JSP_COMMENT);
- return JSP_COMMENT_OPEN;
- }
- else {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- if(Debug.debugTokenizer)
- dump("JSP comment start");//$NON-NLS-1$
- if(yystate() == ST_XML_ATTRIBUTE_VALUE_DQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_DQUOTED;
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE_SQUOTED)
- fEmbeddedPostState = ST_XML_ATTRIBUTE_VALUE_SQUOTED;
- else if(yystate() == ST_CDATA_TEXT) {
- fEmbeddedPostState = ST_CDATA_TEXT;
- fEmbeddedHint = XML_CDATA_TEXT;
- }
- yybegin(ST_JSP_COMMENT);
- // the comment container itself will act as comment text
- fEmbeddedHint = JSP_COMMENT_TEXT;
- assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);
- if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
- yybegin(ST_BLOCK_TAG_SCAN);
- return BLOCK_TEXT;
- }
- /*
- * required help for successive embedded regions; mark this one as a
- * comment so it will be otherwise ignored but preserved (which is why
- * we can't use white-space)
- */
- if(yystate() == ST_XML_TAG_NAME) {
- fEmbeddedHint = XML_TAG_NAME;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else if((yystate() == ST_XML_ATTRIBUTE_NAME || yystate() == ST_XML_EQUALS)) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- }
- else if(yystate() == ST_XML_ATTRIBUTE_VALUE) {
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- return PROXY_CONTEXT;
- }
-}
-<ST_BLOCK_TAG_INTERNAL_SCAN> {jspCommentStart} {
- yybegin(ST_JSP_COMMENT);
- assembleEmbeddedContainer(JSP_COMMENT_OPEN, JSP_COMMENT_CLOSE);
- if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN)
- yybegin(ST_BLOCK_TAG_SCAN);
- return PROXY_CONTEXT;
-}
-<YYINITIAL,ST_BLOCK_TAG_INTERNAL_SCAN> {jspDirectiveStart} {
- fStateStack.push(yystate());
- if(fStateStack.peek()==YYINITIAL) {
- if(Debug.debugTokenizer)
- dump("\nJSP directive start");//$NON-NLS-1$
- yybegin(ST_JSP_DIRECTIVE_NAME);
- return JSP_DIRECTIVE_OPEN;
- }
- else {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- if(Debug.debugTokenizer)
- dump("JSP directive start");//$NON-NLS-1$
- yybegin(ST_JSP_DIRECTIVE_NAME);
- assembleEmbeddedContainer(JSP_DIRECTIVE_OPEN, new String[]{JSP_DIRECTIVE_CLOSE, JSP_CLOSE});
- if(yystate() == ST_BLOCK_TAG_INTERNAL_SCAN) {
- yybegin(ST_BLOCK_TAG_SCAN);
- return BLOCK_TEXT;
- }
- return PROXY_CONTEXT;
- }
-}
-<ST_JSP_DIRECTIVE_NAME> {Name} {
- if(Debug.debugTokenizer)
- dump("JSP directive name");//$NON-NLS-1$
- yybegin(ST_JSP_DIRECTIVE_NAME_WHITESPACE);
- return JSP_DIRECTIVE_NAME;
-}
-<ST_JSP_DIRECTIVE_NAME_WHITESPACE> {S}? {
- if(Debug.debugTokenizer)
- dump("white space");//$NON-NLS-1$
- yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
- return WHITE_SPACE;
-}
-<ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS> {Name} {
- if(Debug.debugTokenizer)
- dump("attr name");//$NON-NLS-1$
- yybegin(ST_JSP_DIRECTIVE_EQUALS);
- return XML_TAG_ATTRIBUTE_NAME;
-}
-<ST_JSP_DIRECTIVE_EQUALS> {Eq} {
- if(Debug.debugTokenizer)
- dump("equals");//$NON-NLS-1$
- yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE);
- return XML_TAG_ATTRIBUTE_EQUALS;
-}
-<ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {AttValue} {
- if(Debug.debugTokenizer)
- dump("attr value");//$NON-NLS-1$
- yybegin(ST_JSP_DIRECTIVE_ATTRIBUTE_NAME);
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-<ST_JSP_DIRECTIVE_NAME, ST_JSP_DIRECTIVE_NAME_WHITESPACE, ST_JSP_DIRECTIVE_ATTRIBUTE_NAME, ST_JSP_DIRECTIVE_EQUALS, ST_JSP_DIRECTIVE_ATTRIBUTE_VALUE> {jspScriptletEnd} {
- if(Debug.debugTokenizer)
- dump("JSP end");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return JSP_DIRECTIVE_CLOSE;
-}
-
-<YYINITIAL> {jspCommentStart} {
- if(Debug.debugTokenizer)
- dump("\nJSP comment start");//$NON-NLS-1$
- yybegin(ST_JSP_COMMENT);
- return JSP_COMMENT_OPEN;
-}
-
-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> \x24\x7b {
- int enterState = yystate();
- yybegin(ST_JSP_DQUOTED_EL);
- assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- // abort early when an unescaped double quote is found in the EL
- if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) {
- yybegin(ST_ABORT_EMBEDDED);
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else {
- yybegin(enterState);
- }
- return PROXY_CONTEXT;
-}
-<ST_XML_ATTRIBUTE_VALUE_DQUOTED> \x23\x7b {
- int enterState = yystate();
- yybegin(ST_JSP_DQUOTED_VBL);
- assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_DQUOTE});
- // abort early when an unescaped double quote is found in the VBL
- if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_DQUOTE)) {
- yybegin(ST_ABORT_EMBEDDED);
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else {
- yybegin(enterState);
- }
- return PROXY_CONTEXT;
-}
-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> \x24\x7b {
- int enterState = yystate();
- yybegin(ST_JSP_SQUOTED_EL);
- assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE});
- // abort early when an unescaped single quote is found in the EL
- if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) {
- yybegin(ST_ABORT_EMBEDDED);
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else {
- yybegin(enterState);
- }
- return PROXY_CONTEXT;
-}
-<ST_XML_ATTRIBUTE_VALUE_SQUOTED> \x23\x7b {
- int enterState = yystate();
- yybegin(ST_JSP_SQUOTED_VBL);
- assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE, XML_TAG_ATTRIBUTE_VALUE_SQUOTE});
- // abort early when an unescaped single quote is found in the VBL
- if(fEmbeddedContainer.getLastRegion().getType().equals(XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) {
- yybegin(ST_ABORT_EMBEDDED);
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- }
- else {
- yybegin(enterState);
- }
- return PROXY_CONTEXT;
-}
-
-// unescaped double quote, return as ending region
-<ST_JSP_DQUOTED_EL,ST_JSP_DQUOTED_VBL> ["] {
- return XML_TAG_ATTRIBUTE_VALUE_DQUOTE;
-}
-// unescaped single quote, return as ending region
-<ST_JSP_SQUOTED_EL,ST_JSP_SQUOTED_VBL> ['] {
- return XML_TAG_ATTRIBUTE_VALUE_SQUOTE;
-}
-
-
-// paired escaped double quotes
-<ST_JSP_DQUOTED_EL> \\\" ([^\\]|\\[^"}]+)* \\\" {
- return JSP_EL_QUOTED_CONTENT;
-}
-// everything else EL
-<ST_JSP_DQUOTED_EL> ([^\\}"]|\\[^"])+ {
- return JSP_EL_CONTENT;
-}
-<ST_JSP_DQUOTED_EL> \\\" {
- return JSP_EL_CONTENT;
-}
-// paired escaped quotes
-<ST_JSP_SQUOTED_EL> \\\' ([^\\]|\\[^'}]+)* \\\' {
- return JSP_EL_QUOTED_CONTENT;
-}
-// everything else EL
-<ST_JSP_SQUOTED_EL> ([^\\}']|\\[^'])+ {
- return JSP_EL_CONTENT;
-}
-<ST_JSP_SQUOTED_EL> \\\' {
- return JSP_EL_CONTENT;
-}
-<ST_JSP_DQUOTED_EL,ST_JSP_SQUOTED_EL> } {
- return JSP_EL_CLOSE;
-}
-
-
-// paired escaped quotes
-<ST_JSP_DQUOTED_VBL> \\\" ([^\\]|\\[^"}]+)* \\\" {
- return JSP_VBL_QUOTED_CONTENT;
-}
-// everything else VBL
-<ST_JSP_DQUOTED_VBL> ([^\\}"]|\\[^"])+ {
- return JSP_VBL_CONTENT;
-}
-<ST_JSP_DQUOTED_VBL> \\\" {
- return JSP_VBL_CONTENT;
-}
-// paired escaped quotes
-<ST_JSP_SQUOTED_VBL> \\\' ([^\\]|\\[^'}]+)* \\\' {
- return JSP_VBL_QUOTED_CONTENT;
-}
-// everything else VBL
-<ST_JSP_SQUOTED_VBL> ([^\\}']|\\[^'])+ {
- return JSP_VBL_CONTENT;
-}
-<ST_JSP_SQUOTED_VBL> \\\' {
- return JSP_VBL_CONTENT;
-}
-
-<ST_JSP_DQUOTED_VBL,ST_JSP_SQUOTED_VBL> } {
- return JSP_VBL_CLOSE;
-}
-
-
-// XML content area EL
-<YYINITIAL> \x24\x7b[^\x7d]*/\x7d {
- yybegin(ST_JSP_EL);
- if(yylength() > 2)
- yypushback(yylength() - 2);
- fELlevel++;
- fEmbeddedHint = XML_CONTENT;
- fEmbeddedPostState = YYINITIAL;
- assembleEmbeddedContainer(JSP_EL_OPEN, JSP_EL_CLOSE);
- fEmbeddedHint = XML_CONTENT;
- yybegin(YYINITIAL);
- return PROXY_CONTEXT;
-}
-<ST_JSP_EL> \x24\x7b {
- fELlevel++;
- if(fELlevel == 1) {
- return JSP_EL_OPEN;
- }
-}
-// XML content area VBL
-<YYINITIAL> \x23\x7b[^\x7d]*/\x7d {
- yybegin(ST_JSP_VBL);
- if(yylength() > 2)
- yypushback(yylength() - 2);
- fELlevel++;
- fEmbeddedHint = XML_CONTENT;
- fEmbeddedPostState = YYINITIAL;
- assembleEmbeddedContainer(JSP_VBL_OPEN, JSP_VBL_CLOSE);
- fEmbeddedHint = XML_CONTENT;
- yybegin(YYINITIAL);
- return PROXY_CONTEXT;
-}
-<ST_JSP_VBL> \x23\x7b {
- fELlevel++;
- if(fELlevel == 1) {
- return JSP_VBL_OPEN;
- }
-}
-// return anything not starting quotes or ending the VBL as content
-<ST_JSP_VBL> [^\x7d\x22\x27]* {
- return JSP_VBL_CONTENT;
-}
-// return anything not starting quotes or ending the EL as content
-<ST_JSP_EL> [^\x7d\x22\x27]* {
- return JSP_EL_CONTENT;
-}
-
-
-// quotes
-<ST_JSP_EL> \x22 {
- yybegin(ST_JSP_EL_DQUOTES);
- return JSP_EL_DQUOTE;
-}
-<ST_JSP_EL_DQUOTES> [^\x22]+/\x22 {
- yybegin(ST_JSP_EL_DQUOTES_END);
- return JSP_EL_QUOTED_CONTENT;
-}
-<ST_JSP_EL_DQUOTES_END> \x22 {
- yybegin(ST_JSP_EL);
- return JSP_EL_DQUOTE;
-}
-<ST_JSP_EL> \x27 {
- yybegin(ST_JSP_EL_SQUOTES);
- return JSP_EL_SQUOTE;
-}
-<ST_JSP_EL_SQUOTES> [^\x27]+/\x27 {
- yybegin(ST_JSP_EL_SQUOTES_END);
- return JSP_EL_QUOTED_CONTENT;
-}
-<ST_JSP_EL_SQUOTES_END> \x27 {
- yybegin(ST_JSP_EL);
- return JSP_EL_SQUOTE;
-}
-// quotes
-<ST_JSP_VBL> \x22 {
- yybegin(ST_JSP_VBL_DQUOTES);
- return JSP_VBL_DQUOTE;
-}
-<ST_JSP_VBL_DQUOTES> [^\x22]+/\x22 {
- yybegin(ST_JSP_VBL_DQUOTES_END);
- return JSP_VBL_QUOTED_CONTENT;
-}
-<ST_JSP_VBL_DQUOTES_END> \x22 {
- yybegin(ST_JSP_VBL);
- return JSP_VBL_DQUOTE;
-}
-<ST_JSP_VBL> \x27 {
- yybegin(ST_JSP_VBL_SQUOTES);
- return JSP_VBL_SQUOTE;
-}
-<ST_JSP_VBL_SQUOTES> [^\x27]+/\x27 {
- yybegin(ST_JSP_VBL_SQUOTES_END);
- return JSP_VBL_QUOTED_CONTENT;
-}
-<ST_JSP_VBL_SQUOTES_END> \x27 {
- yybegin(ST_JSP_VBL);
- return JSP_VBL_SQUOTE;
-}
-
-// unquoted content
-<ST_JSP_EL> ([^}\x27\x22\x24]|\x24[^\x7b\x27\x22])+ {
- //System.out.println(JSP_EL_CONTENT+ ":[" + yytext() + "]");
- return JSP_EL_CONTENT;
-}
-<ST_JSP_EL> } {
- fELlevel--;
- if(fELlevel == 0) {
- yybegin(YYINITIAL);
- return JSP_EL_CLOSE;
- }
- return JSP_EL_CONTENT;
-}
-<ST_JSP_VBL> } {
- fELlevel--;
- if(fELlevel == 0) {
- yybegin(YYINITIAL);
- return JSP_VBL_CLOSE;
- }
- return JSP_VBL_CONTENT;
-}
-// EL unquoted in tag (section 2.1 declares it as valid in template text (XML_CONTENT) or attribute values
-<ST_XML_ATTRIBUTE_VALUE> \x24\x7b[^\x7d]+/\x7d {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- fStateStack.push(yystate());
- if(yylength() > 2)
- yypushback(yylength() -2);
- if(Debug.debugTokenizer)
- dump("EL in attr value");//$NON-NLS-1$
- yybegin(ST_JSP_EL);
- fELlevel++;
- assembleEmbeddedContainer(JSP_EL_OPEN, new String[]{JSP_EL_CLOSE});
- fStateStack.pop();
- yybegin(ST_XML_ATTRIBUTE_NAME);
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- return PROXY_CONTEXT;
-}
-// VBL unquoted in tag or attribute values
-<ST_XML_ATTRIBUTE_VALUE> \x23\x7b[^\x7d]+/\x7d {
- if (Debug.debugTokenizer) {
- System.out.println("begin embedded region: " + fEmbeddedHint);//$NON-NLS-1$
- }
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- fStateStack.push(yystate());
- if(yylength() > 2)
- yypushback(yylength() -2);
- if(Debug.debugTokenizer)
- dump("VBL in attr value");//$NON-NLS-1$
- yybegin(ST_JSP_VBL);
- fELlevel++;
- assembleEmbeddedContainer(JSP_VBL_OPEN, new String[]{JSP_VBL_CLOSE});
- fStateStack.pop();
- yybegin(ST_XML_ATTRIBUTE_NAME);
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- return PROXY_CONTEXT;
-}
-
-<ST_JSP_COMMENT> .|\r|\n {
- if(Debug.debugTokenizer)
- dump("\nJSP comment text");//$NON-NLS-1$
- return scanJSPCommentText();
-}
-<ST_JSP_COMMENT_END> {jspCommentEnd} {
- if(Debug.debugTokenizer)
- dump("\nJSP comment close");//$NON-NLS-1$
- yybegin(YYINITIAL);
- return JSP_COMMENT_CLOSE;
-}
-
-// XML misc
-
-{CDStart} {
- if(Debug.debugTokenizer)
- dump("\nCDATA start");//$NON-NLS-1$
- fStateStack.push(yystate());
- yybegin(ST_CDATA_TEXT);
- return XML_CDATA_OPEN;
-}
-<ST_CDATA_TEXT> .|\r|\n {
- if(Debug.debugTokenizer)
- dump("CDATA text");//$NON-NLS-1$
- fEmbeddedPostState = ST_CDATA_TEXT;
- fEmbeddedHint = XML_CDATA_TEXT;
- String returnedContext = doScan("]]>", false, true, true, XML_CDATA_TEXT, ST_CDATA_END, ST_CDATA_END);//$NON-NLS-1$
- if(returnedContext == XML_CDATA_TEXT)
- yybegin(ST_CDATA_END);
- return returnedContext;
-}
-<ST_CDATA_END> {CDEnd} {
- if(Debug.debugTokenizer)
- dump("CDATA end");//$NON-NLS-1$
- yybegin(fStateStack.pop());
- return XML_CDATA_CLOSE;
-}
-
-<YYINITIAL> {PEReference} {
- if(Debug.debugTokenizer)
- dump("\nPEReference");//$NON-NLS-1$
- return XML_PE_REFERENCE;
-}
-<YYINITIAL> {CharRef} {
- if(Debug.debugTokenizer)
- dump("\nCharRef");//$NON-NLS-1$
- return XML_CHAR_REFERENCE;
-}
-<YYINITIAL> {EntityRef} {
- if(Debug.debugTokenizer)
- dump("\nEntityRef");//$NON-NLS-1$
- return XML_ENTITY_REFERENCE;
-}
-
-<YYINITIAL> {PIstart} {
- if(Debug.debugTokenizer)
- dump("\nprocessing instruction start");//$NON-NLS-1$
- yybegin(ST_PI);
- return XML_PI_OPEN;
-}
-// the next three are order dependent
-<ST_PI> ((X|x)(M|m)(L|l)) {
- if(Debug.debugTokenizer)
- dump("XML processing instruction target");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_PI_ATTRIBUTE_NAME);
- return XML_TAG_NAME;
-}
-<ST_PI> ([iI][mM][pP][oO][rR][tT]) {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction target");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_DHTML_ATTRIBUTE_NAME);
- return XML_TAG_NAME;
-}
-<ST_PI> {Name} {
- if(Debug.debugTokenizer)
- dump("processing instruction target");//$NON-NLS-1$
- fEmbeddedHint = XML_CONTENT;
- yybegin(ST_PI_WS);
- return XML_TAG_NAME;
-}
-<ST_PI_WS> {S}+ {
- yybegin(ST_PI_CONTENT);
- return WHITE_SPACE;
-}
-<ST_PI, ST_PI_WS> \?> {
- if(Debug.debugTokenizer)
- dump("processing instruction end");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-<ST_PI_CONTENT> . {
- // block scan until close is found
- return doScan("?>", false, false, false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
-}
-<ST_PI_CONTENT,ST_XML_PI_TAG_CLOSE> \?> {
- // ended with nothing inside
- fEmbeddedHint = UNDEFINED;
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-
-<ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_EQUALS> {Name} {
- if(Debug.debugTokenizer)
- dump("XML processing instruction attribute name");//$NON-NLS-1$
- yybegin(ST_XML_PI_EQUALS);
- return XML_TAG_ATTRIBUTE_NAME;
-}
-<ST_XML_PI_EQUALS> {Eq} {
- if(Debug.debugTokenizer)
- dump("XML processing instruction '='");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
- return XML_TAG_ATTRIBUTE_EQUALS;
-}
-/* the value was found, look for the next name */
-<ST_XML_PI_ATTRIBUTE_VALUE> {AttValue} {
- if(Debug.debugTokenizer)
- dump("XML processing instruction attribute value");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_XML_PI_ATTRIBUTE_NAME);
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-/* the PI's close was found */
-<ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE> {PIend} {
- if(Debug.debugTokenizer)
- dump("XML processing instruction end");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-// DHTML
-<ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_EQUALS> {Name} {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction attribute name");//$NON-NLS-1$
- yybegin(ST_DHTML_EQUALS);
- return XML_TAG_ATTRIBUTE_NAME;
-}
-<ST_DHTML_EQUALS> {Eq} {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction '='");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_VALUE;
- fEmbeddedPostState = ST_XML_ATTRIBUTE_NAME;
- yybegin(ST_DHTML_ATTRIBUTE_VALUE);
- return XML_TAG_ATTRIBUTE_EQUALS;
-}
-/* the value was found, look for the next name */
-<ST_DHTML_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction attribute value");//$NON-NLS-1$
- fEmbeddedHint = XML_TAG_ATTRIBUTE_NAME;
- fEmbeddedPostState = ST_XML_EQUALS;
- yybegin(ST_DHTML_ATTRIBUTE_NAME);
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-/* The DHTML PI's close was found */
-<ST_DHTML_EQUALS, ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_ATTRIBUTE_VALUE> [/]*> {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction end");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-
-// XML declarations
-
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagOpen}! {
- fStateStack.push(yystate());
- if(Debug.debugTokenizer)
- dump("\ndeclaration start");//$NON-NLS-1$
- yybegin(ST_XML_DECLARATION);
- return XML_DECLARATION_OPEN;
-}
-<ST_XML_DECLARATION> [Ee][Ll][Ee][Mm][Ee][Nn][Tt] {
- if(Debug.debugTokenizer)
- dump("element");//$NON-NLS-1$
- yybegin(ST_XML_ELEMENT_DECLARATION);
- return XML_ELEMENT_DECLARATION;
-}
-<ST_XML_DECLARATION> [Dd][Oo][Cc][Tt][Yy][Pp][Ee] {
- if(Debug.debugTokenizer)
- dump("doctype");//$NON-NLS-1$
- yybegin(ST_XML_DOCTYPE_DECLARATION);
- return XML_DOCTYPE_DECLARATION;
-}
-<ST_XML_DECLARATION> [Aa][Tt][Tt][Ll][Ii][Ss][Tt] {
- if(Debug.debugTokenizer)
- dump("attlist");//$NON-NLS-1$
- yybegin(ST_XML_ATTLIST_DECLARATION);
- return XML_ATTLIST_DECLARATION;
-}
-
-// begin DOCTYPE handling procedure
-<ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DECLARATION_CLOSE> \[[^\]]*\] {
- return XML_DOCTYPE_INTERNAL_SUBSET;
-}
-
-<ST_XML_DOCTYPE_DECLARATION> {Name} {
- if(Debug.debugTokenizer)
- dump("doctype type");//$NON-NLS-1$
- yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
- return XML_DOCTYPE_NAME;
-}
-<ST_XML_DOCTYPE_EXTERNAL_ID> [Pp][Uu][Bb][Ll][Ii][Cc] {
- if(Debug.debugTokenizer)
- dump("doctype external id");//$NON-NLS-1$
- fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_PUBREF;
- yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
- return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
-}
-<ST_XML_DOCTYPE_EXTERNAL_ID> [Ss][Yy][Ss][Tt][Ee][Mm] {
- if(Debug.debugTokenizer)
- dump("doctype external id");//$NON-NLS-1$
- fEmbeddedHint = XML_DOCTYPE_EXTERNAL_ID_SYSREF;
- yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
- return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
-}
-<ST_XML_DOCTYPE_ID_PUBLIC> {AttValue}|{PubidLiteral} {
- if(Debug.debugTokenizer)
- dump("doctype public reference");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- fEmbeddedPostState = YYINITIAL;
- yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
- return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
-}
-<ST_XML_DOCTYPE_ID_SYSTEM> {AttValue}|{SystemLiteral} {
- if(Debug.debugTokenizer)
- dump("doctype system reference");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- fEmbeddedPostState = YYINITIAL;
- yybegin(ST_XML_DECLARATION_CLOSE);
- return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
-}
-// end DOCTYPE handling
-
-// begin ELEMENT handling procedure
-<ST_XML_ELEMENT_DECLARATION> {AttValue}|{PubidLiteral} {
- if(Debug.debugTokenizer)
- dump("elementdecl name");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- fEmbeddedPostState = YYINITIAL;
- yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
- return XML_ELEMENT_DECL_NAME;
-}
-<ST_XML_ELEMENT_DECLARATION_CONTENT> [^>]* {
- if(Debug.debugTokenizer)
- dump("elementdecl contentspec");//$NON-NLS-1$
- return XML_ELEMENT_DECL_CONTENT;
-}
-
-<ST_XML_ELEMENT_DECLARATION_CONTENT> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("elementdecl close");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return XML_DECLARATION_CLOSE;
-}
-// end ELEMENT handling
-
-// begin ATTLIST handling procedure
-<ST_XML_ATTLIST_DECLARATION> {AttValue}|{PubidLiteral} {
- if(Debug.debugTokenizer)
- dump("attlist name");//$NON-NLS-1$
- fEmbeddedHint = UNDEFINED;
- fEmbeddedPostState = YYINITIAL;
- yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
- return XML_ATTLIST_DECL_NAME;
-}
-<ST_XML_ATTLIST_DECLARATION_CONTENT> [^>]* {
- if(Debug.debugTokenizer)
- dump("attlist contentspec");//$NON-NLS-1$
- return XML_ATTLIST_DECL_CONTENT;
-}
-
-<ST_XML_ATTLIST_DECLARATION_CONTENT> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("attlist close");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return XML_DECLARATION_CLOSE;
-}
-// end ATTLIST handling
-
-<ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_ATTLIST_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("declaration end");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return XML_DECLARATION_CLOSE;
-}
-// end DECLARATION handling
-
-<YYINITIAL> ([^<&%\x24\x23]*|\x23+|\x24+|[&%]{S}+{Name}[^&%<]*|[\x24\x23][^\x7b<&%]|[&%]{Name}([^;&%<]*|{S}+;*)) {
- if(Debug.debugTokenizer)
- dump("\nXML content");//$NON-NLS-1$
- return XML_CONTENT;
-}
-
-
-<ST_BLOCK_TAG_SCAN> .|\r|\n {
- return doBlockTagScan();
- }
-
-. {
- if (Debug.debugTokenizer)
- System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
- yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
- return UNDEFINED;
-}
-
-\040 {
- if(Debug.debugTokenizer)
- dump("SPACE");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-\011 {
- if(Debug.debugTokenizer)
- dump("0x9");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-\015
-{
- if(Debug.debugTokenizer)
- dump("CARRIAGE RETURN");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-\012 {
- if(Debug.debugTokenizer)
- dump("LINE FEED");//$NON-NLS-1$
- return WHITE_SPACE;
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java deleted file mode 100644 index d0537add8b..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java +++ /dev/null @@ -1,1881 +0,0 @@ -/* The following code was generated by JFlex 1.2.2 on 8/16/05 3:07 PM */ - -/******************************************************************************* - * Copyright (c) 2004 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 - *******************************************************************************/ -/*nlsXXX*/ -package org.eclipse.wst.xml.core.internal.parser; - -import java.io.CharArrayReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker; -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.util.Debug; -import org.eclipse.wst.sse.core.internal.util.StringUtils; -import org.eclipse.wst.xml.core.internal.Logger; -import org.eclipse.wst.xml.core.internal.parser.regions.XMLParserRegionFactory; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - - -/** - * This class is a scanner generated by - * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 - * on 8/16/05 3:07 PM from the specification file - * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt> - */ -public class XMLTokenizer implements BlockTokenizer, DOMRegionContext { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - final public static int ST_XML_DOCTYPE_EXTERNAL_ID = 23; - final public static int ST_XML_ELEMENT_DECLARATION_CONTENT = 27; - final public static int ST_DHTML_ATTRIBUTE_NAME = 12; - final public static int ST_XML_PI_TAG_CLOSE = 11; - final public static int ST_XML_DECLARATION_CLOSE = 21; - final public static int ST_XML_PI_ATTRIBUTE_VALUE = 10; - final public static int ST_DHTML_EQUALS = 13; - final public static int ST_XML_TAG_NAME = 16; - final public static int ST_XML_ATTRIBUTE_VALUE = 19; - final public static int ST_DHTML_ATTRIBUTE_VALUE = 14; - final public static int ST_XML_DOCTYPE_ID_SYSTEM = 25; - final public static int ST_XML_ATTRIBUTE_NAME = 17; - final public static int ST_XML_ELEMENT_DECLARATION = 26; - final public static int ST_XML_DOCTYPE_DECLARATION = 22; - final public static int ST_XML_ATTLIST_DECLARATION = 28; - final public static int ST_XML_COMMENT_END = 4; - final public static int ST_CDATA_TEXT = 1; - final public static int ST_DHTML_TAG_CLOSE = 15; - final public static int ST_XML_COMMENT = 3; - final public static int ST_PI_CONTENT = 7; - final public static int ST_PI_WS = 6; - final public static int ST_CDATA_END = 2; - final public static int ST_XML_ATTLIST_DECLARATION_CONTENT = 29; - final public static int ST_BLOCK_TAG_SCAN = 30; - final public static int ST_XML_PI_EQUALS = 9; - final public static int ST_XML_DECLARATION = 20; - final public static int YYINITIAL = 0; - final public static int ST_XML_DOCTYPE_ID_PUBLIC = 24; - final public static int ST_XML_EQUALS = 18; - final public static int ST_PI = 5; - final public static int ST_XML_PI_ATTRIBUTE_NAME = 8; - - /** - * Translates characters to character classes - */ - final private static String yycmap_packed = - "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\51"+ - "\1\16\1\17\1\12\1\13\1\16\1\16\1\16\1\16\1\16\1\7"+ - "\1\6\1\3\12\15\1\10\1\54\1\1\1\43\1\2\1\4\1\16"+ - "\1\32\1\55\1\30\1\31\1\35\1\52\1\34\1\34\1\40\1\34"+ - "\1\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\33"+ - "\1\53\2\34\1\23\1\44\1\34\1\27\1\0\1\20\1\0\1\10"+ - "\1\0\1\47\1\55\1\56\1\50\1\35\1\52\1\34\1\34\1\40"+ - "\2\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\46"+ - "\1\53\1\34\1\34\1\24\1\44\1\34\1\0\1\0\72\0\1\60"+ - "\10\0\27\57\1\0\37\57\1\0\72\57\2\0\13\57\2\0\10\57"+ - "\1\0\65\57\1\0\104\57\11\0\44\57\3\0\2\57\4\0\36\57"+ - "\70\0\131\57\22\0\7\57\16\0\2\60\56\0\106\60\32\0\2\60"+ - "\44\0\1\57\1\60\3\57\1\0\1\57\1\0\24\57\1\0\54\57"+ - "\1\0\7\57\3\0\1\57\1\0\1\57\1\0\1\57\1\0\1\57"+ - "\1\0\22\57\15\0\14\57\1\0\102\57\1\0\14\57\1\0\44\57"+ - "\1\0\4\60\11\0\65\57\2\0\2\57\2\0\2\57\3\0\34\57"+ - "\2\0\10\57\2\0\2\57\67\0\46\57\2\0\1\57\7\0\46\57"+ - "\12\0\21\60\1\0\27\60\1\0\3\60\1\0\1\60\1\0\2\60"+ - "\1\0\1\60\13\0\33\57\5\0\3\57\56\0\32\57\5\0\1\60"+ - "\12\57\10\60\15\0\12\60\6\0\1\60\107\57\2\0\5\57\1\0"+ - "\17\57\1\0\4\57\1\0\1\57\17\60\2\57\2\60\1\0\4\60"+ - "\2\0\12\60\u0207\0\3\60\1\0\65\57\2\0\1\60\1\57\20\60"+ - "\3\0\4\60\3\0\12\57\2\60\2\0\12\60\21\0\3\60\1\0"+ - "\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0\1\57\3\0"+ - "\4\57\2\0\1\60\1\0\7\60\2\0\2\60\2\0\3\60\11\0"+ - "\1\60\4\0\2\57\1\0\3\57\2\60\2\0\12\60\2\57\20\0"+ - "\1\60\2\0\6\57\4\0\2\57\2\0\26\57\1\0\7\57\1\0"+ - "\2\57\1\0\2\57\1\0\2\57\2\0\1\60\1\0\5\60\4\0"+ - "\2\60\2\0\3\60\13\0\4\57\1\0\1\57\7\0\12\60\2\60"+ - "\3\57\14\0\3\60\1\0\7\57\1\0\1\57\1\0\3\57\1\0"+ - "\26\57\1\0\7\57\1\0\2\57\1\0\5\57\2\0\1\60\1\57"+ - "\10\60\1\0\3\60\1\0\3\60\22\0\1\57\5\0\12\60\21\0"+ - "\3\60\1\0\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0"+ - "\2\57\2\0\4\57\2\0\1\60\1\57\6\60\3\0\2\60\2\0"+ - "\3\60\10\0\2\60\4\0\2\57\1\0\3\57\4\0\12\60\22\0"+ - "\2\60\1\0\6\57\3\0\3\57\1\0\4\57\3\0\2\57\1\0"+ - "\1\57\1\0\2\57\3\0\2\57\3\0\3\57\3\0\10\57\1\0"+ - "\3\57\4\0\5\60\3\0\3\60\1\0\4\60\11\0\1\60\17\0"+ - "\11\60\21\0\3\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+ - "\12\57\1\0\5\57\4\0\7\60\1\0\3\60\1\0\4\60\7\0"+ - "\2\60\11\0\2\57\4\0\12\60\22\0\2\60\1\0\10\57\1\0"+ - "\3\57\1\0\27\57\1\0\12\57\1\0\5\57\4\0\7\60\1\0"+ - "\3\60\1\0\4\60\7\0\2\60\7\0\1\57\1\0\2\57\4\0"+ - "\12\60\22\0\2\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+ - "\20\57\4\0\6\60\2\0\3\60\1\0\4\60\11\0\1\60\10\0"+ - "\2\57\4\0\12\60\221\0\56\57\1\0\1\57\1\60\2\57\7\60"+ - "\5\0\6\57\1\60\10\60\1\0\12\60\47\0\2\57\1\0\1\57"+ - "\2\0\2\57\1\0\1\57\2\0\1\57\6\0\4\57\1\0\7\57"+ - "\1\0\3\57\1\0\1\57\1\0\1\57\2\0\2\57\1\0\2\57"+ - "\1\0\1\57\1\60\2\57\6\60\1\0\2\60\1\57\2\0\5\57"+ - "\1\0\1\60\1\0\6\60\2\0\12\60\76\0\2\60\6\0\12\60"+ - "\13\0\1\60\1\0\1\60\1\0\1\60\4\0\2\60\10\57\1\0"+ - "\41\57\7\0\24\60\1\0\6\60\4\0\6\60\1\0\1\60\1\0"+ - "\25\60\3\0\7\60\1\0\1\60\346\0\46\57\12\0\47\57\11\0"+ - "\1\57\1\0\2\57\1\0\3\57\1\0\1\57\1\0\2\57\1\0"+ - "\5\57\51\0\1\57\1\0\1\57\1\0\1\57\13\0\1\57\1\0"+ - "\1\57\1\0\1\57\3\0\2\57\3\0\1\57\5\0\3\57\1\0"+ - "\1\57\1\0\1\57\1\0\1\57\1\0\1\57\3\0\2\57\3\0"+ - "\2\57\1\0\1\57\50\0\1\57\11\0\1\57\2\0\1\57\2\0"+ - "\2\57\7\0\2\57\1\0\1\57\1\0\7\57\50\0\1\57\4\0"+ - "\1\57\10\0\1\57\u0c06\0\234\57\4\0\132\57\6\0\26\57\2\0"+ - "\6\57\2\0\46\57\2\0\6\57\2\0\10\57\1\0\1\57\1\0"+ - "\1\57\1\0\1\57\1\0\37\57\2\0\65\57\1\0\7\57\1\0"+ - "\1\57\3\0\3\57\1\0\7\57\3\0\4\57\2\0\6\57\4\0"+ - "\15\57\5\0\3\57\1\0\7\57\323\0\15\60\4\0\1\60\104\0"+ - "\1\57\3\0\2\57\2\0\1\57\121\0\3\57\u0e82\0\1\60\1\0"+ - "\1\57\31\0\11\57\6\60\1\0\5\60\13\0\124\57\4\0\2\60"+ - "\2\0\2\60\2\0\132\57\1\0\3\60\6\0\50\57\u1cd3\0\u51a6\57"+ - "\u0c5a\0\u2ba4\57\134\0\u0800\0\u1ffe\0\2\0"; - - /** - * Translates characters to character classes - */ - final private static char [] yycmap = yy_unpack_cmap(yycmap_packed); - - /** - * Translates a state to a row index in the transition table - */ - final private static int yy_rowMap [] = { - 0, 49, 98, 147, 196, 245, 294, 343, 392, 441, - 490, 539, 588, 637, 686, 735, 784, 833, 882, 931, - 980, 1029, 1078, 1127, 1176, 1225, 1274, 1323, 1372, 1421, - 1470, 1519, 1568, 1617, 1666, 1715, 1764, 1715, 1764, 1813, - 1715, 1715, 1764, 1862, 1911, 1960, 2009, 2058, 2107, 2156, - 1715, 1764, 2205, 2254, 2303, 1715, 2352, 2352, 2401, 2450, - 2499, 2205, 1715, 2548, 2597, 1715, 2646, 2695, 2744, 2793, - 2842, 2891, 1715, 2940, 2989, 3038, 3087, 1715, 3136, 3185, - 3234, 3283, 3332, 1715, 3381, 3430, 3479, 3528, 3577, 3626, - 3675, 3724, 3724, 3773, 3822, 3871, 3920, 3920, 3969, 4018, - 4067, 4116, 4116, 4165, 4214, 4263, 4312, 1715, 4361, 4361, - 4410, 4459, 4508, 4557, 1715, 1715, 1764, 1715, 1715, 4606, - 4655, 4704, 4753, 4802, 4851, 4900, 4949, 1715, 4998, 5047, - 1715, 1715, 2352, 5096, 2450, 1715, 5145, 2499, 2548, 2646, - 2695, 5194, 2744, 1715, 5243, 2793, 1715, 3136, 5292, 3234, - 1715, 5341, 3283, 4606, 5390, 5439, 5488, 3528, 1715, 5537, - 5586, 3724, 5635, 3773, 1715, 5684, 5733, 5782, 5782, 5831, - 5880, 3871, 3724, 3920, 5929, 3969, 1715, 5978, 4018, 4067, - 3920, 4116, 6027, 4165, 1715, 6076, 6125, 6174, 6174, 6223, - 6272, 6321, 4361, 6370, 4410, 1715, 6419, 6468, 6517, 6517, - 6566, 6615, 6664, 6713, 6762, 6811, 6860, 1715, 6909, 6958, - 1715, 1715, 1715, 2009, 7007, 7056, 7105, 7154, 7203, 7252, - 5684, 7301, 7301, 6076, 7350, 7350, 7399, 6419, 7448, 7448, - 7497, 1715, 7546, 7595, 1715, 7644, 7693, 7742, 7791, 7840, - 7889, 7938, 5831, 6223, 7987, 6566, 8036, 8085, 8134, 8183, - 8232, 8281, 8330, 8379, 8428, 8477, 8526, 8575, 8624, 8673, - 8722, 1715, 1715, 8771, 8820, 8869, 8918, 1715, 1715, 1715, - 8967, 9016, 9065, 9114, 9163, 1715, 4263, 4508 - }; - - /** - * The packed transition table of the DFA - */ - final private static String yy_packed = - "\1\40\1\41\10\40\1\42\4\40\1\43\41\40\1\44"+ - "\1\45\57\44\1\46\1\47\16\46\1\50\1\46\1\51"+ - "\36\46\1\52\1\53\57\52\1\46\1\47\5\46\1\54"+ - "\12\46\1\51\37\46\1\47\2\46\1\55\1\56\2\46"+ - "\1\57\3\46\1\56\5\46\1\56\2\60\2\57\1\46"+ - "\10\57\1\61\2\57\1\46\5\57\1\46\2\57\1\46"+ - "\3\57\2\46\1\47\2\46\1\55\1\62\6\46\1\62"+ - "\5\46\1\62\36\46\1\63\1\64\2\63\1\65\15\63"+ - "\1\51\36\63\1\46\1\47\2\46\1\66\1\56\2\46"+ - "\1\67\3\46\1\56\5\46\1\56\4\67\1\46\13\67"+ - "\1\46\5\67\1\46\2\67\1\46\3\67\2\46\1\47"+ - "\2\46\1\66\1\56\2\46\1\67\3\46\1\56\5\46"+ - "\1\56\4\67\1\46\13\67\1\70\5\67\1\46\2\67"+ - "\1\46\3\67\1\46\1\71\1\47\1\46\1\72\1\73"+ - "\1\56\3\71\1\74\1\71\1\75\1\56\5\71\1\56"+ - "\36\71\1\46\1\47\2\46\1\76\15\46\1\51\37\46"+ - "\1\47\1\77\1\100\1\46\1\56\2\46\1\101\3\46"+ - "\1\56\5\46\1\56\4\101\1\46\13\101\1\46\5\101"+ - "\1\46\2\101\1\46\3\101\2\46\1\47\1\77\1\100"+ - "\1\46\1\56\2\46\1\101\3\46\1\56\5\46\1\56"+ - "\4\101\1\46\13\101\1\102\5\101\1\46\2\101\1\46"+ - "\3\101\1\46\1\103\1\47\1\77\1\104\1\103\1\56"+ - "\3\103\1\105\1\103\1\106\1\56\5\103\1\56\36\103"+ - "\1\46\1\47\3\46\1\56\6\46\1\56\5\46\1\56"+ - "\36\46\1\107\1\110\1\111\1\112\4\107\1\113\12\107"+ - "\4\114\1\107\13\114\1\107\5\114\1\107\2\114\1\107"+ - "\3\114\1\107\1\46\1\110\1\111\1\112\1\46\1\56"+ - "\2\46\1\115\3\46\1\56\5\46\1\56\4\115\1\46"+ - "\13\115\1\46\5\115\1\46\2\115\1\46\3\115\2\46"+ - "\1\110\1\111\1\112\1\46\1\56\2\46\1\115\3\46"+ - "\1\56\5\46\1\56\4\115\1\46\13\115\1\116\5\115"+ - "\1\46\2\115\1\46\3\115\1\46\1\117\1\110\1\111"+ - "\1\120\1\117\1\56\3\117\1\121\1\117\1\122\1\56"+ - "\5\117\1\56\36\117\1\46\1\123\1\124\2\46\1\56"+ - "\6\46\1\56\5\46\1\56\6\46\1\125\1\126\2\46"+ - "\1\127\11\46\1\126\1\125\11\46\1\47\1\124\2\46"+ - "\1\56\6\46\1\56\5\46\1\56\4\46\1\130\32\46"+ - "\1\47\1\124\2\46\1\56\2\46\1\131\3\46\1\56"+ - "\5\46\1\56\4\131\1\130\13\131\1\46\5\131\1\46"+ - "\2\131\1\46\3\131\2\46\1\47\1\124\2\46\1\56"+ - "\6\46\1\56\5\46\1\56\4\46\1\130\7\46\1\132"+ - "\5\46\1\133\13\46\1\134\1\47\1\124\1\135\1\134"+ - "\1\56\3\134\1\136\1\134\1\137\1\56\5\134\1\56"+ - "\4\134\1\140\31\134\1\141\1\47\1\124\1\142\1\141"+ - "\1\56\3\141\1\143\1\141\1\144\1\56\5\141\1\56"+ - "\4\141\1\145\31\141\1\146\1\47\1\124\1\147\1\146"+ - "\1\56\3\146\1\150\1\146\1\151\1\56\5\146\1\56"+ - "\36\146\1\152\1\153\1\154\56\152\1\155\1\47\1\124"+ - "\1\156\1\155\1\56\3\155\1\157\1\155\1\160\1\56"+ - "\5\155\1\56\36\155\1\161\1\162\1\163\56\161\1\164"+ - "\1\165\57\164\1\40\1\0\10\40\1\0\4\40\1\0"+ - "\41\40\3\0\1\166\1\167\14\0\1\170\44\0\1\171"+ - "\2\0\1\172\3\0\1\171\5\0\1\171\4\172\1\0"+ - "\13\172\1\0\5\172\1\173\2\172\1\0\3\172\6\0"+ - "\1\171\2\0\1\174\3\0\1\171\5\0\1\171\4\174"+ - "\1\0\13\174\1\0\5\174\1\0\2\174\1\0\3\174"+ - "\103\0\1\175\57\0\1\176\47\0\1\177\53\0\1\200"+ - "\63\0\1\56\6\0\1\56\5\0\1\56\44\0\3\57"+ - "\4\0\1\57\5\0\4\57\1\0\13\57\1\0\5\57"+ - "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+ - "\5\0\2\57\1\201\1\57\1\0\13\57\1\0\5\57"+ - "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+ - "\5\0\2\57\1\202\1\57\1\0\13\57\1\0\5\57"+ - "\1\0\2\57\1\0\4\57\5\0\1\62\6\0\1\62"+ - "\5\0\1\62\40\0\1\203\60\0\1\204\64\0\3\67"+ - "\4\0\1\67\5\0\4\67\1\0\13\67\1\0\5\67"+ - "\1\0\2\67\1\0\4\67\1\71\2\0\1\205\1\71"+ - "\1\0\3\71\1\0\1\71\2\0\5\71\1\0\37\71"+ - "\1\0\1\204\1\205\1\71\1\0\3\71\1\0\1\71"+ - "\2\0\5\71\1\0\36\71\1\74\1\0\1\206\1\207"+ - "\1\74\1\206\3\74\1\210\1\74\2\206\5\74\1\206"+ - "\36\74\1\75\1\0\1\211\1\212\1\75\1\211\3\75"+ - "\1\211\1\75\1\210\1\211\5\75\1\211\36\75\2\0"+ - "\1\77\1\213\63\0\3\101\4\0\1\101\5\0\4\101"+ - "\1\0\13\101\1\0\5\101\1\0\2\101\1\0\4\101"+ - "\1\103\2\0\1\214\1\103\1\0\3\103\1\0\1\103"+ - "\2\0\5\103\1\0\37\103\1\0\1\77\1\215\1\103"+ - "\1\0\3\103\1\0\1\103\2\0\5\103\1\0\36\103"+ - "\1\105\1\0\1\216\1\217\1\105\1\216\3\105\1\220"+ - "\1\105\2\216\5\105\1\216\36\105\1\106\1\0\1\221"+ - "\1\222\1\106\1\221\3\106\1\221\1\106\1\220\1\221"+ - "\5\106\1\221\36\106\1\107\3\0\17\107\4\0\1\107"+ - "\13\0\1\107\5\0\1\107\2\0\1\107\3\0\1\107"+ - "\3\0\1\166\15\0\1\170\41\0\1\223\56\0\1\107"+ - "\3\0\2\107\3\113\4\107\1\113\5\107\4\114\1\107"+ - "\13\114\1\107\5\114\1\107\2\114\1\107\3\114\1\113"+ - "\6\0\3\114\4\0\1\114\5\0\4\114\1\0\13\114"+ - "\1\0\5\114\1\0\2\114\1\0\4\114\6\0\3\115"+ - "\4\0\1\115\5\0\4\115\1\0\13\115\1\0\5\115"+ - "\1\0\2\115\1\0\4\115\1\117\2\0\1\224\1\117"+ - "\1\0\3\117\1\0\1\117\2\0\5\117\1\0\37\117"+ - "\1\0\1\223\1\224\1\117\1\0\3\117\1\0\1\117"+ - "\2\0\5\117\1\0\36\117\1\121\1\0\1\225\1\226"+ - "\1\121\1\225\3\121\1\227\1\121\2\225\5\121\1\225"+ - "\36\121\1\122\1\0\1\230\1\231\1\122\1\230\3\122"+ - "\1\230\1\122\1\227\1\230\5\122\1\230\36\122\3\0"+ - "\1\166\15\0\1\232\100\0\1\233\52\0\1\234\12\0"+ - "\1\234\40\0\1\235\32\0\20\236\1\237\40\236\6\0"+ - "\3\131\4\0\1\131\5\0\4\131\1\0\13\131\1\0"+ - "\5\131\1\0\2\131\1\0\4\131\44\0\1\240\67\0"+ - "\1\241\5\0\1\134\2\0\1\242\1\134\1\0\3\134"+ - "\1\0\1\134\2\0\5\134\1\0\36\134\1\136\1\0"+ - "\1\243\1\244\1\136\1\243\3\136\1\245\1\136\2\243"+ - "\5\136\1\243\36\136\1\246\1\0\1\247\1\250\1\251"+ - "\1\247\3\251\1\247\1\246\1\252\1\253\3\251\1\246"+ - "\1\251\1\253\4\251\1\246\27\251\2\246\1\140\2\236"+ - "\1\254\1\140\1\236\3\140\1\236\1\140\2\236\3\140"+ - "\1\255\1\140\1\236\36\140\1\141\2\0\1\256\1\141"+ - "\1\0\3\141\1\0\1\141\2\0\5\141\1\0\36\141"+ - "\1\143\2\257\1\260\1\143\1\257\3\143\1\261\1\143"+ - "\2\257\5\143\1\257\36\143\1\144\2\262\1\263\1\144"+ - "\1\262\3\144\1\262\1\144\1\261\1\262\5\144\1\262"+ - "\36\144\1\145\2\236\1\264\1\145\1\236\3\145\1\236"+ - "\1\145\2\236\3\145\1\265\1\145\1\236\36\145\1\146"+ - "\2\0\1\266\1\146\1\0\3\146\1\0\1\146\2\0"+ - "\5\146\1\0\36\146\1\150\1\0\1\267\1\270\1\150"+ - "\1\267\3\150\1\271\1\150\2\267\5\150\1\267\36\150"+ - "\1\272\1\0\1\273\1\274\1\275\1\273\3\275\1\273"+ - "\1\272\1\276\1\277\3\275\1\272\1\275\1\277\4\275"+ - "\1\272\27\275\2\272\2\152\1\0\60\152\1\0\16\152"+ - "\1\300\37\152\1\155\2\0\1\301\1\155\1\0\3\155"+ - "\1\0\1\155\2\0\5\155\1\0\36\155\1\157\1\0"+ - "\1\302\1\303\1\157\1\302\3\157\1\304\1\157\2\302"+ - "\5\157\1\302\36\157\1\305\1\0\1\306\1\307\1\310"+ - "\1\306\3\310\1\306\1\305\1\311\1\312\3\310\1\305"+ - "\1\310\1\312\4\310\1\305\27\310\2\305\2\161\1\0"+ - "\60\161\1\0\16\161\1\313\37\161\7\0\1\314\17\0"+ - "\1\315\36\0\1\171\2\0\1\40\3\0\1\171\5\0"+ - "\1\171\4\40\1\0\13\40\1\0\5\40\1\0\2\40"+ - "\1\0\3\40\1\0\1\316\1\0\3\316\1\317\3\172"+ - "\1\316\1\0\1\316\1\317\1\172\1\316\1\0\2\316"+ - "\1\317\4\172\1\316\13\172\1\316\5\172\1\316\2\172"+ - "\1\320\4\172\15\0\1\321\6\0\1\322\34\0\1\316"+ - "\1\0\3\316\1\317\3\174\1\316\1\0\1\316\1\317"+ - "\1\174\1\316\1\0\2\316\1\317\4\174\1\316\13\174"+ - "\1\316\5\174\1\316\2\174\1\323\4\174\27\0\1\315"+ - "\33\0\1\324\60\0\1\325\64\0\3\57\4\0\1\57"+ - "\5\0\3\57\1\326\1\0\13\57\1\0\5\57\1\0"+ - "\2\57\1\0\4\57\6\0\3\57\4\0\1\57\5\0"+ - "\4\57\1\0\13\57\1\0\1\57\1\327\3\57\1\0"+ - "\2\57\1\0\4\57\1\206\1\0\7\206\1\210\47\206"+ - "\1\211\1\0\11\211\1\210\45\211\1\216\1\0\7\216"+ - "\1\220\47\216\1\221\1\0\11\221\1\220\45\221\1\225"+ - "\1\0\7\225\1\227\47\225\1\230\1\0\11\230\1\227"+ - "\45\230\30\0\1\330\25\0\1\330\35\0\1\331\12\0"+ - "\1\331\47\0\1\332\62\0\1\333\76\0\1\334\3\0"+ - "\1\243\1\0\7\243\1\245\47\243\1\246\1\0\1\247"+ - "\1\335\1\246\1\247\3\246\1\247\1\246\1\245\1\247"+ - "\5\246\1\247\36\246\1\247\1\0\11\247\1\245\45\247"+ - "\1\246\1\0\1\247\1\335\1\246\1\247\3\246\1\247"+ - "\1\246\1\336\1\247\5\246\1\247\36\246\13\0\1\337"+ - "\45\0\1\247\1\0\11\247\1\336\45\247\11\257\1\261"+ - "\47\257\13\262\1\261\45\262\1\267\1\0\7\267\1\271"+ - "\47\267\1\272\1\0\1\273\1\340\1\272\1\273\3\272"+ - "\1\273\1\272\1\271\1\273\5\272\1\273\36\272\1\273"+ - "\1\0\11\273\1\271\45\273\1\272\1\0\1\273\1\340"+ - "\1\272\1\273\3\272\1\273\1\272\1\341\1\273\5\272"+ - "\1\273\36\272\13\0\1\342\45\0\1\273\1\0\11\273"+ - "\1\341\45\273\2\152\1\0\24\152\1\343\31\152\1\302"+ - "\1\0\7\302\1\304\47\302\1\305\1\0\1\306\1\344"+ - "\1\305\1\306\3\305\1\306\1\305\1\304\1\306\5\305"+ - "\1\306\36\305\1\306\1\0\11\306\1\304\45\306\1\305"+ - "\1\0\1\306\1\344\1\305\1\306\3\305\1\306\1\305"+ - "\1\345\1\306\5\305\1\306\36\305\13\0\1\346\45\0"+ - "\1\306\1\0\11\306\1\345\45\306\2\161\1\0\24\161"+ - "\1\347\31\161\7\0\1\350\101\0\1\351\30\0\1\316"+ - "\1\0\10\316\1\0\4\316\1\0\34\316\1\0\5\316"+ - "\1\0\3\316\1\317\4\316\1\0\1\316\1\317\2\316"+ - "\1\0\2\316\1\317\31\316\1\352\4\316\15\0\1\321"+ - "\36\0\1\353\21\0\1\354\12\0\3\354\2\0\1\354"+ - "\11\0\2\354\1\0\1\354\2\0\2\354\10\0\3\57"+ - "\4\0\1\57\5\0\4\57\1\0\11\57\1\355\1\57"+ - "\1\0\5\57\1\0\2\57\1\0\4\57\33\0\1\356"+ - "\12\0\1\356\40\0\1\357\57\0\1\360\66\0\1\361"+ - "\12\0\1\361\40\0\1\362\35\0\2\363\1\0\3\363"+ - "\2\0\1\252\4\363\1\0\6\363\1\0\27\363\5\0"+ - "\2\364\1\0\3\364\2\0\1\276\4\364\1\0\6\364"+ - "\1\0\27\364\2\0\2\152\1\0\25\152\1\365\30\152"+ - "\3\0\2\366\1\0\3\366\2\0\1\311\4\366\1\0"+ - "\6\366\1\0\27\366\2\0\2\161\1\0\25\161\1\367"+ - "\30\161\31\0\1\370\103\0\1\352\21\0\1\354\12\0"+ - "\3\354\2\0\1\354\11\0\2\354\1\0\1\354\1\0"+ - "\1\353\2\354\10\0\3\57\4\0\1\57\5\0\4\57"+ - "\1\0\6\57\1\371\4\57\1\0\5\57\1\0\2\57"+ - "\1\0\4\57\44\0\1\372\54\0\1\373\55\0\1\374"+ - "\60\0\1\375\63\0\1\376\20\0\2\152\1\0\26\152"+ - "\1\377\27\152\2\161\1\0\26\161\1\u0100\27\161\32\0"+ - "\1\u0101\34\0\3\57\4\0\1\57\5\0\4\57\1\0"+ - "\3\57\1\u0102\7\57\1\0\2\57\1\u0102\2\57\1\0"+ - "\2\57\1\0\4\57\45\0\1\u0103\52\0\1\u0104\63\0"+ - "\1\u0105\43\0\1\u0106\63\0\1\u0107\25\0\1\u0107\2\0"+ - "\2\152\1\0\27\152\1\u0108\26\152\2\161\1\0\27\161"+ - "\1\u0109\26\161\33\0\1\u010a\32\0\1\u010b\3\57\3\0"+ - "\1\u010b\1\57\4\0\1\u010b\4\57\1\0\13\57\1\0"+ - "\5\57\1\0\2\57\1\0\4\57\35\0\1\u010c\56\0"+ - "\1\u010d\12\0\1\u010d\45\0\1\u010e\12\0\1\u010e\12\0"+ - "\2\152\1\0\30\152\1\u010f\25\152\2\161\1\0\30\161"+ - "\1\u0110\25\161\32\0\1\u0111\33\0\1\u010b\6\0\1\u010b"+ - "\5\0\1\u010b\36\0\2\152\1\0\27\152\1\u0112\26\152"+ - "\2\161\1\0\27\161\1\u0113\26\161\27\0\1\u0114\31\0"+ - "\2\152\1\0\24\152\1\u0115\31\152\2\161\1\0\24\161"+ - "\1\u0116\31\161"; - - /** - * The transition table of the DFA - */ - final private static int yytrans [] = yy_unpack(yy_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", //$NON-NLS-1$ - "Internal error: unknown state", //$NON-NLS-1$ - "Error: could not match input", //$NON-NLS-1$ - "Error: pushback value was too large" //$NON-NLS-1$ - }; - - /** - * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code> - */ - private final static byte YY_ATTRIBUTE[] = { - 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 1, 9, 1, 9, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, - 1, 1, 9, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, - 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 9, 1, 1, - 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, - 1, 1, 9, 9, 1, 9, 9, 1, 0, 1, 0, 1, 0, 0, 0, 9, - 1, 1, 9, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, - 0, 0, 0, 0, 9, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, - 9, 0, 0, 0, 1, 0, 0, 0, 9, 1, 0, 0, 1, 1, 0, 1, - 0, 0, 0, 9, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 9, - 0, 0, 9, 9, 9, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 9, 0, 1, 9, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, - 0, 1, 0, 0, 0, 9, 9, 1, 1, 0, 1, 9, 9, 9, 1, 1, - 0, 1, 1, 9, 1, 1 - }; - - /** 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; - - /** 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; - - /** - * 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 int fTokenCount = 0; - - // required holders for white-space compacting - private boolean fShouldLoadBuffered = false; - private String fBufferedContext = null; - private int fBufferedStart = 1; - private int fBufferedLength = 0; - private String f_context = null; - - // state stack for handling embedded regions - private IntStack fStateStack = new IntStack(); - - private String context = null; - private int start = 0; - private int textLength = 0; - private int length = 0; - - // offset for tracking position specific block tags - private int fOffset = 0; - - // the name of the current tag being opened - private String fCurrentTagName = null; - - // the list of tag name BlockMarkers - private List fBlockMarkers = new ArrayList(); - - // required to not seek text blocks on an end tag - private boolean fIsBlockingEnabled = false; - private boolean fIsCaseSensitiveBlocking = true; - - private XMLParserRegionFactory fRegionFactory = new XMLParserRegionFactory(); -/** - * user method - */ -public final void addBlockMarker(BlockMarker marker) { - if(containsTagName(marker.getTagName())) - return; - fBlockMarkers.add(marker); -} -/** - * user method - */ -public final void removeBlockMarker(BlockMarker marker) { - fBlockMarkers.remove(marker); -} -/** - * user method - */ -public final void removeBlockMarker(String tagname) { - if (fBlockMarkers != null) { - Iterator blocks = fBlockMarkers.iterator(); - while (blocks.hasNext()) { - if (((BlockMarker) blocks.next()).getTagName().equals(tagname)) - blocks.remove(); - } - } -} -/* user method */ -public final boolean isCaseSensitiveBlocking() { - return fIsCaseSensitiveBlocking; -} -/* user method */ -public final void setCaseSensitiveBlocking(boolean newValue) { - fIsCaseSensitiveBlocking = newValue; -} -/* user method */ -public boolean getBlockMarkerCaseSensitivity() { - return getBlockMarkerCaseSensitivity(fCurrentTagName); -} -/* user method */ -public boolean getBlockMarkerCaseSensitivity(String name) { - Iterator iterator = fBlockMarkers.iterator(); - while(iterator.hasNext()) { - BlockMarker marker = (BlockMarker)iterator.next(); - boolean casesensitive = marker.isCaseSensitive(); - if(casesensitive && marker.getTagName().equals(name)) - return casesensitive; - else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name)) - return casesensitive; - } - return true; -} -/* user method */ -public String getBlockMarkerContext() { - return getBlockMarkerContext(fCurrentTagName); -} -/* user method */ -public String getBlockMarkerContext(String name) { - Iterator iterator = fBlockMarkers.iterator(); - while(iterator.hasNext()) { - BlockMarker marker = (BlockMarker)iterator.next(); - if(marker.getTagName().equals(name)) - return marker.getContext(); - } - return BLOCK_TEXT; -} -/* user method */ -public List getBlockMarkers() { - return fBlockMarkers; -} -/* user method */ -public final int getOffset() { - return fOffset + yychar; -} -private final boolean isBlockMarker() { - return isBlockMarker(fCurrentTagName); -} -private final boolean isBlockMarker(String tagName) { - if (!fIsBlockingEnabled) - return false; - return containsTagName(tagName); -} -/** - * user method - */ -public final void beginBlockTagScan(String newTagName) { - beginBlockMarkerScan(newTagName, BLOCK_TEXT); -} -/** - * user method - * - * Special tokenizer setup. Allows tokenization to be initiated at the - * start of a text block within a "newTagName" tag. - * - * Example: - * Tokenizer toker = new Tokenizer(); - * toker.setCaseSensitiveBlocking(false); - * toker.reset(new java.io.StringReader("afiuhqwkejhtasihgalkwhtq</scripter></scr></script>asgdasga")); - * toker.beginBlockMarkerScan("script", BLOCK_TEXT); - * toker.getRegions(); - * - * Returns: - * BLOCK_TEXT: 0-40 - * XML_END_TAG_OPEN: 41-42 - * XML_TAG_NAME: 43-48 - * XML_TAG_CLOSE: 49-49 - * XML_CONTENT: 50-57 - * - */ -public final void beginBlockMarkerScan(String newTagName, String blockcontext) { - yybegin(ST_BLOCK_TAG_SCAN); - fCurrentTagName = newTagName; -} -/** - * Method doScan. - * - * Returns a context region for all of the text from the current position upto the end of input or - * to right *before* the first occurence of searchString - * - * @param searchString - target string to search for ex.: "-->", "</tagname" - * @param requireTailSeparator - whether the target must be immediately followed by whitespace or '>' - * @param context - the context of the scanned region if non-zero length - * @param exitState - the state to go to if the region was of non-zero length - * @param abortState - the state to go to if the searchString was found immediately - * @return String - the context found: the desired context on a non-zero length match, the abortContext on immediate success - * @throws IOException - */ -private final String doScan(String searchString, boolean requireTailSeparator, String searchContext, int exitState, int immediateFallbackState) throws IOException { - boolean stillSearching = true; - // Disable further block (probably) - fIsBlockingEnabled = false; - int searchStringLength = searchString.length(); - int n = 0; - char lastCheckChar; - int i; - boolean same = false; - while (stillSearching) { - n = 0; - // Ensure that enough data from the input exists to compare against the search String. - n = yy_advance(); - while(n != YYEOF && yy_currentPos < searchStringLength) - n = yy_advance(); - // If the input was too short or we've exhausted the input, stop immediately. - if (n == YYEOF) { - stillSearching = false; - } - else { - same = true; - // Ensure that we've not encountered a complete block (<%%>) that was *shorter* than the closeTagString and - // thus found twice at current-targetLength [since the first scan would have come out this far anyway]. - // Check the characters in the target versus the last targetLength characters read from the buffer - // and see if it matches - - // safety check for array accesses (yy_currentPos is the *last* character we can check against) - if(yy_currentPos >= searchStringLength && yy_currentPos <= yy_buffer.length) { - for(i = 0; i < searchStringLength; i++) { - if(same && fIsCaseSensitiveBlocking) - same = yy_buffer[i + yy_currentPos - searchStringLength] == searchString.charAt(i); - else if(same && !fIsCaseSensitiveBlocking) - same = Character.toLowerCase(yy_buffer[i + yy_currentPos - searchStringLength]) == Character.toLowerCase(searchString.charAt(i)); - } - } - // safety check failed; no match is possible right now - else { - same = false; - } - if (same && requireTailSeparator && yy_currentPos < yy_buffer.length) { - // Additional check for close tags to ensure that targetString="</script" doesn't match - // "</scriptS" - lastCheckChar = yy_buffer[yy_currentPos]; - // Succeed on "</script>" and "</script " - if(lastCheckChar == '>' || Character.isWhitespace(lastCheckChar)) - stillSearching = false; - } - else { - stillSearching = !same || (yy_currentPos < yy_startRead + searchStringLength); - } - } - } - if (n != YYEOF || same) { - // We've stopped short of the end or definitely found a match - yy_markedPos = yy_currentPos - searchStringLength; - yy_currentPos = yy_markedPos + 1; - // If the searchString occurs at the very beginning of what would have - // been a Block, resume scanning normally immediately - if (yy_markedPos == yy_startRead) { - yybegin(immediateFallbackState); - return primGetNextToken(); - } - } - else { - // We ran through the rest of the input - yy_markedPos = yy_currentPos; - yy_currentPos++; - } - yybegin(exitState); - // If the ending occurs at the very beginning of what would have - // been a Block, resume scanning normally immediately - if(yy_markedPos == yy_startRead) - return primGetNextToken(); - return searchContext; -} -/** - * user method - * - * A generic lookahead-like operation - */ -private final String doBlockScan(String target, String targetContext, int immediateFallbackState) throws IOException { - return doScan(target, false, targetContext, immediateFallbackState, immediateFallbackState); -} -/** - * user method - * does a lookahead for the current tag name - */ -private final String doBlockTagScan() throws IOException { - fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity(); - return doScan("</" + fCurrentTagName, true, getBlockMarkerContext(fCurrentTagName), YYINITIAL, YYINITIAL); -} -/** - * user method - * - * Converts the raw context String returned by the primGetNextToken() - * method into a full ITextRegion by pulling in values for the - * current offset within the scanning text. - * - * Returns null when EOF is encountered and attaches intermittently - * discovered whitespace onto the end of useful regions. - * - * Note that this algorithm caches the token following the one being returned - * so that whitespace can be collapsed. - */ -public final ITextRegion getNextToken() throws IOException { - // load the starting non-whitespace token (assume that it is so) - if (fShouldLoadBuffered) { - context = fBufferedContext; - start = fBufferedStart; - textLength = length = fBufferedLength; - fShouldLoadBuffered = false; - } - else { - context = primGetNextToken(); - if (context == XML_TAG_NAME) { - if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead)) - fCurrentTagName = yytext(); - else - fCurrentTagName = null; - } - else if (context == XML_TAG_OPEN) { - fIsBlockingEnabled = true; - } - else if (context == XML_END_TAG_OPEN) { - fIsBlockingEnabled = false; - } - start = yychar; - textLength = length = yylength(); - if (yy_atEOF) { - fTokenCount++; - return null; - } - } - // store the next token - f_context = primGetNextToken(); - if (f_context == XML_TAG_NAME) { - if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead)) - fCurrentTagName = yytext(); - else - fCurrentTagName = null; - } - else if (f_context == XML_TAG_OPEN) { - fIsBlockingEnabled = true; - } - else if (f_context == XML_END_TAG_OPEN) { - fIsBlockingEnabled = false; - } - fBufferedContext = f_context; - fBufferedStart = yychar; - fBufferedLength = yylength(); - fShouldLoadBuffered = true; - if (fBufferedContext == WHITE_SPACE) { - fShouldLoadBuffered = false; - length += fBufferedLength; - } - if (context == null) { - // EOF - if (Debug.debugTokenizer) { - System.out.println(getClass().getName() + " discovered " + fTokenCount + " tokens."); //$NON-NLS-2$//$NON-NLS-1$ - } - return null; - } - fTokenCount++; - return fRegionFactory.createToken(context, start, textLength, length, null, fCurrentTagName); -} -/* user method */ -public XMLTokenizer(){ - super(); -} -/* user method */ -public XMLTokenizer(char[] charArray){ - this(new CharArrayReader(charArray)); -} -/* user method */ -public void reset(char[] charArray) { - reset(new CharArrayReader(charArray), 0); -} -/* user method */ -public void reset(char[] charArray, int newOffset) { - reset(new CharArrayReader(charArray), newOffset); -} -/* user method */ -public void reset(java.io.InputStream in) { - reset(new java.io.InputStreamReader(in), 0); -} -/* user method */ -public void reset(java.io.InputStream in, int newOffset) { - reset(new java.io.InputStreamReader(in), newOffset); -} -/* user method */ -public void reset(java.io.Reader in) { - reset(in, 0); -} -/** - * user method * - * - * Reset internal counters and vars to "newly created" values, in the hopes - * that resetting a pre-existing tokenizer is faster than creating a new one. - * - * This method contains code blocks that were essentially duplicated from the - * <em>generated</em> output of this specification before this method was - * added. Those code blocks were under the above copyright. - */ -public void reset(java.io.Reader in, int newOffset) { - if (Debug.debugTokenizer) { - System.out.println("resetting tokenizer");//$NON-NLS-1$ - } - fOffset = newOffset; - - /* 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; - - /* number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - /* 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; - - - /* user vars: */ - fTokenCount = 0; - - fShouldLoadBuffered = false; - fBufferedContext = null; - fBufferedStart = 1; - fBufferedLength = 0; - fStateStack = new IntStack(); - - context = null; - start = 0; - textLength = 0; - length = 0; -} - - /** - * user method - * - */ - public BlockTokenizer newInstance() { - XMLTokenizer newInstance = new XMLTokenizer(); - // global tagmarkers can be shared; they have no state and - // are never destroyed (e.g. 'release') - for(int i = 0; i < fBlockMarkers.size(); i++) { - BlockMarker blockMarker = (BlockMarker) fBlockMarkers.get(i); - if(blockMarker.isGlobal()) - newInstance.addBlockMarker(blockMarker); - } - return newInstance; - } -/* user method */ -private final String scanXMLCommentText() throws IOException { - // Scan for '-->' and return the text up to that point as - // XML_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which - // case change to the ST_XML_COMMENT_END state and return the next - // context as usual. - return doScan("-->", false, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END); -} - - - /** - * 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 XMLTokenizer(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 XMLTokenizer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed DFA transition table. - * - * @param packed the packed transition table - * @return the unpacked transition table - */ - private static int [] yy_unpack(String packed) { - int [] trans = new int[9212]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 3220) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - value--; - do trans[j++] = value; while (--count > 0); - } - return trans; - } - - /** - * 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 < 1372) { - 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 - from the SED JFlex skeleton - * - * @param errorCode the code of the errormessage to display - */ - private void yy_ScanError(int errorCode) { - try { - Logger.log(Logger.ERROR, YY_ERROR_MSG[errorCode]); - } - catch (ArrayIndexOutOfBoundsException e) { - Logger.log(Logger.ERROR, YY_ERROR_MSG[YY_UNKNOWN_ERROR]); - } - // DO NOT EXIT the VM on an 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()! - */ - void yypushback(int number) { - if ( number > yylength() ) - yy_ScanError(YY_PUSHBACK_2BIG); - - yy_markedPos -= number; - } - - /** - * user method - skeleton.sed - */ - protected final boolean containsTagName(char[] markerTagName, int offset, int tagnameLength) { - for(int j = 0; j < fBlockMarkers.size(); j++) { - BlockMarker marker = (BlockMarker)fBlockMarkers.get(j); - if(marker.getTagName().length() == tagnameLength) { - boolean matchesSoFar = true; - for(int i = 0; i < tagnameLength && matchesSoFar; i++) { - if(marker.isCaseSensitive()) { - if(marker.getTagName().charAt(i) != markerTagName[i + offset]) - matchesSoFar = false; - } - else { - if(Character.toLowerCase(marker.getTagName().charAt(i)) != Character.toLowerCase(markerTagName[i + offset])) - matchesSoFar = false; - } - } - if(matchesSoFar) - return true; - } - } - return false; - } - - /** - * user method - skeleton.sed - * - * Return ALL of the regions scannable within the remaining text - * Note: for verification use - */ - public final List getRegions() { - List tokens = new ArrayList(); - ITextRegion region = null; - try { - region = getNextToken(); - while(region != null) { - if (region != null) { - tokens.add(region); - } - region = getNextToken(); - } - } - catch (StackOverflowError e) { - Logger.logException(getClass().getName()+": input could not be tokenized correctly at position " + getOffset(), e);//$NON-NLS-1$ - throw e; - } - catch (Exception e) { - // Since this is convenience method and NOT the recommended - // way of getting tokens, many errors are simply hidden - Logger.logException("Exception not handled retrieving regions: " + e.getLocalizedMessage(), e);//$NON-NLS-1$ - } - return tokens; - } - /** - * user method - skeleton.sed - */ - private final void dump(String s) { - if (Debug.debugTokenizer) { - System.out.println(s + " (" + yychar + "-" + //$NON-NLS-2$//$NON-NLS-1$ - (yylength() + yychar) + "):\'" +//$NON-NLS-1$ - StringUtils.escape(yytext()) + "\'");//$NON-NLS-1$ - } - } - /* user method - skeleton.sed */ - public final boolean isEOF() { - return yy_atEOF; - } -/* user method - skeleton.sed */ -protected final boolean containsTagName(String markerTagName) { - Iterator blocks = fBlockMarkers.iterator(); - while(blocks.hasNext()) { - BlockMarker marker = (BlockMarker)blocks.next(); - if(marker.isCaseSensitive()) { - if(marker.getTagName().equals(markerTagName)) - return true; - } - else { - if(marker.getTagName().equalsIgnoreCase(markerTagName)) - return true; - } - } - return false; -} - - /** - * 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; - // do nothing, this is the downstream parser's job - - } - } - - - /** - * 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(); - - boolean yy_counted = false; - for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos; - yy_currentPos++) { - switch (yy_buffer[yy_currentPos]) { - case '\r': - yyline++; - yy_counted = true; - break; - case '\n': - if (yy_counted) - yy_counted = false; - else { - yyline++; - } - break; - default: - yy_counted = false; - } - } - - if (yy_counted) { - if ( yy_advance() == '\n' ) yyline--; - if ( !yy_atEOF ) yy_currentPos--; - } - - yy_action = -1; - - yy_currentPos = yy_startRead = yy_markedPos; - - yy_state = yy_lexical_state; - - - yy_forAction: { - while (true) { - - yy_input = yy_advance(); - - if ( yy_input == YYEOF ) break yy_forAction; - - int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ]; - if (yy_next == -1) break yy_forAction; - yy_state = yy_next; - - int yy_attributes = YY_ATTRIBUTE[yy_state]; - if ( (yy_attributes & 1) > 0 ) { - yy_action = yy_state; - yy_markedPos = yy_currentPos; - if ( (yy_attributes & 8) > 0 ) break yy_forAction; - } - - } - } - - - switch (yy_action) { - - case 275: - case 276: - case 277: - { - if(Debug.debugTokenizer) - dump("\nCDATA start");//$NON-NLS-1$ - fStateStack.push(yystate()); - yybegin(ST_CDATA_TEXT); - return XML_CDATA_OPEN; - } - case 279: break; - case 269: - { - if(Debug.debugTokenizer) - dump("element");//$NON-NLS-1$ - yybegin(ST_XML_ELEMENT_DECLARATION); - return XML_ELEMENT_DECLARATION; - } - case 280: break; - case 268: - { - if(Debug.debugTokenizer) - dump("attlist");//$NON-NLS-1$ - yybegin(ST_XML_ATTLIST_DECLARATION); - return XML_ATTLIST_DECLARATION; - } - case 281: break; - case 267: - { - if(Debug.debugTokenizer) - dump("doctype");//$NON-NLS-1$ - yybegin(ST_XML_DOCTYPE_DECLARATION); - return XML_DOCTYPE_DECLARATION; - } - case 282: break; - case 262: - { - if(Debug.debugTokenizer) - dump("doctype external id");//$NON-NLS-1$ - yybegin(ST_XML_DOCTYPE_ID_PUBLIC); - return XML_DOCTYPE_EXTERNAL_ID_PUBLIC; - } - case 283: break; - case 261: - { - if(Debug.debugTokenizer) - dump("doctype external id");//$NON-NLS-1$ - yybegin(ST_XML_DOCTYPE_ID_SYSTEM); - return XML_DOCTYPE_EXTERNAL_ID_SYSTEM; - } - case 284: break; - case 257: - case 266: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction target");//$NON-NLS-1$ - yybegin(ST_DHTML_ATTRIBUTE_NAME); - return XML_TAG_NAME; - } - case 285: break; - case 234: - { - if(Debug.debugTokenizer) - dump("\nCharRef");//$NON-NLS-1$ - return XML_CHAR_REFERENCE; - } - case 286: break; - case 231: - { - if(Debug.debugTokenizer) - dump("\ncomment start");//$NON-NLS-1$ - yybegin(ST_XML_COMMENT); - return XML_COMMENT_OPEN; - } - case 287: break; - case 213: - { - if(Debug.debugTokenizer) - dump("XML processing instruction target");//$NON-NLS-1$ - yybegin(ST_XML_PI_ATTRIBUTE_NAME); - return XML_TAG_NAME; - } - case 288: break; - case 212: - { - if(Debug.debugTokenizer) - dump("comment end");//$NON-NLS-1$ - yybegin(YYINITIAL); - return XML_COMMENT_CLOSE; - } - case 289: break; - case 211: - { - if(Debug.debugTokenizer) - dump("CDATA end");//$NON-NLS-1$ - yybegin(fStateStack.pop()); - return XML_CDATA_CLOSE; - } - case 290: break; - case 210: - { - if(Debug.debugTokenizer) - dump("\nPEReference");//$NON-NLS-1$ - return XML_PE_REFERENCE; - } - case 291: break; - case 207: - { - if(Debug.debugTokenizer) - dump("\nEntityRef");//$NON-NLS-1$ - return XML_ENTITY_REFERENCE; - } - case 292: break; - case 158: - case 172: - case 180: - { - return XML_DOCTYPE_INTERNAL_SUBSET; - } - case 293: break; - case 146: - { - yybegin(YYINITIAL); - if(Debug.debugTokenizer) - dump("empty tag close");//$NON-NLS-1$ - return XML_EMPTY_TAG_CLOSE; - } - case 294: break; - case 131: - { - if(Debug.debugTokenizer) - dump("XML processing instruction end");//$NON-NLS-1$ - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 295: break; - case 130: - { - // ended with nothing inside - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 296: break; - case 127: - { - if(Debug.debugTokenizer) - dump("processing instruction end");//$NON-NLS-1$ - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 297: break; - case 119: - { - fStateStack.push(yystate()); - if(Debug.debugTokenizer) - dump("\ndeclaration start");//$NON-NLS-1$ - yybegin(ST_XML_DECLARATION); - return XML_DECLARATION_OPEN; - } - case 298: break; - case 118: - { - if(Debug.debugTokenizer) - dump("\nprocessing instruction start");//$NON-NLS-1$ - yybegin(ST_PI); - return XML_PI_OPEN; - } - case 299: break; - case 62: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction end");//$NON-NLS-1$ - yybegin(YYINITIAL); - return XML_PI_CLOSE; - } - case 300: break; - case 56: - case 58: - case 59: - case 60: - case 135: - { - if(Debug.debugTokenizer) - dump("XML processing instruction attribute value");//$NON-NLS-1$ - yybegin(ST_XML_PI_ATTRIBUTE_NAME); - return XML_TAG_ATTRIBUTE_VALUE; - } - case 301: break; - case 55: - { - if(Debug.debugTokenizer) - dump("XML processing instruction '='");//$NON-NLS-1$ - yybegin(ST_XML_PI_ATTRIBUTE_VALUE); - return XML_TAG_ATTRIBUTE_EQUALS; - } - case 302: break; - case 54: - { - if(Debug.debugTokenizer) - dump("XML processing instruction attribute name");//$NON-NLS-1$ - yybegin(ST_XML_PI_EQUALS); - return XML_TAG_ATTRIBUTE_NAME; - } - case 303: break; - case 50: - case 51: - case 52: - { - // block scan until close is found - return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE); - } - case 304: break; - case 49: - { - yybegin(ST_PI_CONTENT); - return WHITE_SPACE; - } - case 305: break; - case 46: - case 47: - case 48: - case 128: - case 129: - case 214: - case 236: - case 248: - { - if(Debug.debugTokenizer) - dump("processing instruction target");//$NON-NLS-1$ - yybegin(ST_PI_WS); - return XML_TAG_NAME; - } - case 306: break; - case 41: - case 42: - { - if(Debug.debugTokenizer) - dump("comment content");//$NON-NLS-1$ - return scanXMLCommentText(); - } - case 307: break; - case 40: - { - if(Debug.debugTokenizer) - dump("LINE FEED");//$NON-NLS-1$ - return WHITE_SPACE; - } - case 308: break; - case 0: - case 31: - case 121: - case 123: - case 205: - case 206: - case 233: - { - if(Debug.debugTokenizer) - dump("\nXML content");//$NON-NLS-1$ - return XML_CONTENT; - } - case 309: break; - case 5: - case 8: - case 9: - case 10: - case 12: - case 13: - case 14: - case 15: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 28: - case 45: - { - if(Debug.debugTokenizer) - dump("white space");//$NON-NLS-1$ - return WHITE_SPACE; - } - case 310: break; - case 16: - case 70: - { - if(Debug.debugTokenizer) - dump("inappropriate tag name");//$NON-NLS-1$ - yybegin(YYINITIAL); - return XML_CONTENT; - } - case 311: break; - case 27: - case 105: - case 106: - case 191: - case 226: - case 244: - case 254: - case 263: - case 270: - case 273: - { - if(Debug.debugTokenizer) - dump("elementdecl contentspec");//$NON-NLS-1$ - return XML_ELEMENT_DECL_CONTENT; - } - case 312: break; - case 29: - case 112: - case 113: - case 202: - case 230: - case 246: - case 255: - case 264: - case 271: - case 274: - { - if(Debug.debugTokenizer) - dump("attlist contentspec");//$NON-NLS-1$ - return XML_ATTLIST_DECL_CONTENT; - } - case 313: break; - case 32: - case 71: - case 82: - { - if(Debug.debugTokenizer) - dump("\nstart tag open");//$NON-NLS-1$ - yybegin(ST_XML_TAG_NAME); - return XML_TAG_OPEN; - } - case 314: break; - case 33: - case 34: - case 37: - case 38: - case 39: - case 43: - case 44: - case 53: - case 57: - case 61: - case 63: - case 67: - case 73: - case 79: - case 84: - case 85: - case 86: - case 87: - case 89: - case 90: - case 92: - case 97: - case 102: - case 109: - { - if (Debug.debugTokenizer) - System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$ - yychar + "-" + (yychar + yylength()));//$NON-NLS-1$ - return UNDEFINED; - } - case 315: break; - case 35: - case 36: - { - if(Debug.debugTokenizer) - dump("CDATA text");//$NON-NLS-1$ - String blockContext = doBlockScan("]]>", XML_CDATA_TEXT, ST_CDATA_END);//$NON-NLS-1$ - if(blockContext == XML_CDATA_TEXT) - yybegin(ST_CDATA_END); - return blockContext; - } - case 316: break; - case 64: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction attribute name");//$NON-NLS-1$ - yybegin(ST_DHTML_EQUALS); - return XML_TAG_ATTRIBUTE_NAME; - } - case 317: break; - case 65: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction '='");//$NON-NLS-1$ - yybegin(ST_DHTML_ATTRIBUTE_VALUE); - return XML_TAG_ATTRIBUTE_EQUALS; - } - case 318: break; - case 66: - case 68: - case 69: - case 143: - { - if(Debug.debugTokenizer) - dump("DHTML processing instruction attribute value");//$NON-NLS-1$ - yybegin(ST_DHTML_ATTRIBUTE_NAME); - return XML_TAG_ATTRIBUTE_VALUE; - } - case 319: break; - case 72: - { - if(Debug.debugTokenizer) - dump("tag close");//$NON-NLS-1$ - if(isBlockMarker()) { - yybegin(ST_BLOCK_TAG_SCAN); - } - else - yybegin(YYINITIAL); - return XML_TAG_CLOSE; - } - case 320: break; - case 74: - case 75: - { - if(Debug.debugTokenizer) - dump("tag name");//$NON-NLS-1$ - yybegin(ST_XML_ATTRIBUTE_NAME); - return XML_TAG_NAME; - } - case 321: break; - case 76: - { - if(Debug.debugTokenizer) - dump("attr name");//$NON-NLS-1$ - yybegin(ST_XML_EQUALS); - return XML_TAG_ATTRIBUTE_NAME; - } - case 322: break; - case 77: - { - if(Debug.debugTokenizer) - dump("equals");//$NON-NLS-1$ - yybegin(ST_XML_ATTRIBUTE_VALUE); - return XML_TAG_ATTRIBUTE_EQUALS; - } - case 323: break; - case 78: - case 80: - case 81: - case 150: - { - if(Debug.debugTokenizer) - dump("attr value");//$NON-NLS-1$ - yybegin(ST_XML_ATTRIBUTE_NAME); - return XML_TAG_ATTRIBUTE_VALUE; - } - case 324: break; - case 83: - { - if(Debug.debugTokenizer) - dump("declaration end");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return XML_DECLARATION_CLOSE; - } - case 325: break; - case 88: - { - if(Debug.debugTokenizer) - dump("doctype type");//$NON-NLS-1$ - yybegin(ST_XML_DOCTYPE_EXTERNAL_ID); - return XML_DOCTYPE_NAME; - } - case 326: break; - case 91: - case 93: - case 94: - case 95: - case 164: - case 165: - case 168: - case 169: - case 221: - { - if(Debug.debugTokenizer) - dump("doctype public reference");//$NON-NLS-1$ - yybegin(ST_XML_DOCTYPE_ID_SYSTEM); - return XML_DOCTYPE_EXTERNAL_ID_PUBREF; - } - case 327: break; - case 96: - case 98: - case 99: - case 100: - case 176: - { - if(Debug.debugTokenizer) - dump("doctype system reference");//$NON-NLS-1$ - yybegin(ST_XML_DECLARATION_CLOSE); - return XML_DOCTYPE_EXTERNAL_ID_SYSREF; - } - case 328: break; - case 101: - case 103: - case 104: - case 184: - case 185: - case 188: - case 189: - case 224: - { - if(Debug.debugTokenizer) - dump("elementdecl name");//$NON-NLS-1$ - yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT); - return XML_ELEMENT_DECL_NAME; - } - case 329: break; - case 107: - { - if(Debug.debugTokenizer) - dump("elementdecl close");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return XML_DECLARATION_CLOSE; - } - case 330: break; - case 108: - case 110: - case 111: - case 195: - case 196: - case 199: - case 200: - case 228: - { - if(Debug.debugTokenizer) - dump("attlist name");//$NON-NLS-1$ - yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT); - return XML_ATTLIST_DECL_NAME; - } - case 331: break; - case 114: - { - if(Debug.debugTokenizer) - dump("attlist close");//$NON-NLS-1$ - if (Debug.debugTokenizer) { - if(fStateStack.peek()!=YYINITIAL) - System.out.println("end embedded region");//$NON-NLS-1$ - } - yybegin(fStateStack.pop()); - return XML_DECLARATION_CLOSE; - } - case 332: break; - case 117: - { - if(Debug.debugTokenizer) - dump("\nend tag open");//$NON-NLS-1$ - yybegin(ST_XML_TAG_NAME); - return XML_END_TAG_OPEN; - } - case 333: break; - case 115: - case 116: - { - return doBlockTagScan(); - } - case 334: break; - default: - if (yy_input == YYEOF && yy_startRead == yy_currentPos) { - yy_atEOF = true; - yy_do_eof(); - return null; - } - else { - yy_ScanError(YY_NO_MATCH); - } - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex deleted file mode 100644 index 213dade95f..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex +++ /dev/null @@ -1,1322 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2004 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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.xml.core.internal.parser;
-
-import java.io.CharArrayReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
-import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.parser.regions.XMLParserRegionFactory;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-%%
-
-%{
- private int fTokenCount = 0;
-
- // required holders for white-space compacting
- private boolean fShouldLoadBuffered = false;
- private String fBufferedContext = null;
- private int fBufferedStart = 1;
- private int fBufferedLength = 0;
- private String f_context = null;
-
- // state stack for handling embedded regions
- private IntStack fStateStack = new IntStack();
-
- private String context = null;
- private int start = 0;
- private int textLength = 0;
- private int length = 0;
-
- // offset for tracking position specific block tags
- private int fOffset = 0;
-
- // the name of the current tag being opened
- private String fCurrentTagName = null;
-
- // the list of tag name BlockMarkers
- private List fBlockMarkers = new ArrayList();
-
- // required to not seek text blocks on an end tag
- private boolean fIsBlockingEnabled = false;
- private boolean fIsCaseSensitiveBlocking = true;
-
- private XMLParserRegionFactory fRegionFactory = new XMLParserRegionFactory();
-/**
- * user method
- */
-public final void addBlockMarker(BlockMarker marker) {
- if(containsTagName(marker.getTagName()))
- return;
- fBlockMarkers.add(marker);
-}
-/**
- * user method
- */
-public final void removeBlockMarker(BlockMarker marker) {
- fBlockMarkers.remove(marker);
-}
-/**
- * user method
- */
-public final void removeBlockMarker(String tagname) {
- if (fBlockMarkers != null) {
- Iterator blocks = fBlockMarkers.iterator();
- while (blocks.hasNext()) {
- if (((BlockMarker) blocks.next()).getTagName().equals(tagname))
- blocks.remove();
- }
- }
-}
-/* user method */
-public final boolean isCaseSensitiveBlocking() {
- return fIsCaseSensitiveBlocking;
-}
-/* user method */
-public final void setCaseSensitiveBlocking(boolean newValue) {
- fIsCaseSensitiveBlocking = newValue;
-}
-/* user method */
-public boolean getBlockMarkerCaseSensitivity() {
- return getBlockMarkerCaseSensitivity(fCurrentTagName);
-}
-/* user method */
-public boolean getBlockMarkerCaseSensitivity(String name) {
- Iterator iterator = fBlockMarkers.iterator();
- while(iterator.hasNext()) {
- BlockMarker marker = (BlockMarker)iterator.next();
- boolean casesensitive = marker.isCaseSensitive();
- if(casesensitive && marker.getTagName().equals(name))
- return casesensitive;
- else if(!casesensitive && marker.getTagName().equalsIgnoreCase(name))
- return casesensitive;
- }
- return true;
-}
-/* user method */
-public String getBlockMarkerContext() {
- return getBlockMarkerContext(fCurrentTagName);
-}
-/* user method */
-public String getBlockMarkerContext(String name) {
- Iterator iterator = fBlockMarkers.iterator();
- while(iterator.hasNext()) {
- BlockMarker marker = (BlockMarker)iterator.next();
- if(marker.getTagName().equals(name))
- return marker.getContext();
- }
- return BLOCK_TEXT;
-}
-/* user method */
-public List getBlockMarkers() {
- return fBlockMarkers;
-}
-/* user method */
-public final int getOffset() {
- return fOffset + yychar;
-}
-private final boolean isBlockMarker() {
- return isBlockMarker(fCurrentTagName);
-}
-private final boolean isBlockMarker(String tagName) {
- if (!fIsBlockingEnabled)
- return false;
- return containsTagName(tagName);
-}
-/**
- * user method
- */
-public final void beginBlockTagScan(String newTagName) {
- beginBlockMarkerScan(newTagName, BLOCK_TEXT);
-}
-/**
- * user method
- *
- * Special tokenizer setup. Allows tokenization to be initiated at the
- * start of a text block within a "newTagName" tag.
- *
- * Example:
- * Tokenizer toker = new Tokenizer();
- * toker.setCaseSensitiveBlocking(false);
- * toker.reset(new java.io.StringReader("afiuhqwkejhtasihgalkwhtq</scripter></scr></script>asgdasga"));
- * toker.beginBlockMarkerScan("script", BLOCK_TEXT);
- * toker.getRegions();
- *
- * Returns:
- * BLOCK_TEXT: 0-40
- * XML_END_TAG_OPEN: 41-42
- * XML_TAG_NAME: 43-48
- * XML_TAG_CLOSE: 49-49
- * XML_CONTENT: 50-57
- *
- */
-public final void beginBlockMarkerScan(String newTagName, String blockcontext) {
- yybegin(ST_BLOCK_TAG_SCAN);
- fCurrentTagName = newTagName;
-}
-/**
- * Method doScan.
- *
- * Returns a context region for all of the text from the current position upto the end of input or
- * to right *before* the first occurence of searchString
- *
- * @param searchString - target string to search for ex.: "-->", "</tagname"
- * @param requireTailSeparator - whether the target must be immediately followed by whitespace or '>'
- * @param context - the context of the scanned region if non-zero length
- * @param exitState - the state to go to if the region was of non-zero length
- * @param abortState - the state to go to if the searchString was found immediately
- * @return String - the context found: the desired context on a non-zero length match, the abortContext on immediate success
- * @throws IOException
- */
-private final String doScan(String searchString, boolean requireTailSeparator, String searchContext, int exitState, int immediateFallbackState) throws IOException {
- boolean stillSearching = true;
- // Disable further block (probably)
- fIsBlockingEnabled = false;
- int searchStringLength = searchString.length();
- int n = 0;
- char lastCheckChar;
- int i;
- boolean same = false;
- while (stillSearching) {
- n = 0;
- // Ensure that enough data from the input exists to compare against the search String.
- n = yy_advance();
- while(n != YYEOF && yy_currentPos < searchStringLength)
- n = yy_advance();
- // If the input was too short or we've exhausted the input, stop immediately.
- if (n == YYEOF) {
- stillSearching = false;
- }
- else {
- same = true;
- // Ensure that we've not encountered a complete block (<%%>) that was *shorter* than the closeTagString and
- // thus found twice at current-targetLength [since the first scan would have come out this far anyway].
- // Check the characters in the target versus the last targetLength characters read from the buffer
- // and see if it matches
-
- // safety check for array accesses (yy_currentPos is the *last* character we can check against)
- if(yy_currentPos >= searchStringLength && yy_currentPos <= yy_buffer.length) {
- for(i = 0; i < searchStringLength; i++) {
- if(same && fIsCaseSensitiveBlocking)
- same = yy_buffer[i + yy_currentPos - searchStringLength] == searchString.charAt(i);
- else if(same && !fIsCaseSensitiveBlocking)
- same = Character.toLowerCase(yy_buffer[i + yy_currentPos - searchStringLength]) == Character.toLowerCase(searchString.charAt(i));
- }
- }
- // safety check failed; no match is possible right now
- else {
- same = false;
- }
- if (same && requireTailSeparator && yy_currentPos < yy_buffer.length) {
- // Additional check for close tags to ensure that targetString="</script" doesn't match
- // "</scriptS"
- lastCheckChar = yy_buffer[yy_currentPos];
- // Succeed on "</script>" and "</script "
- if(lastCheckChar == '>' || Character.isWhitespace(lastCheckChar))
- stillSearching = false;
- }
- else {
- stillSearching = !same || (yy_currentPos < yy_startRead + searchStringLength);
- }
- }
- }
- if (n != YYEOF || same) {
- // We've stopped short of the end or definitely found a match
- yy_markedPos = yy_currentPos - searchStringLength;
- yy_currentPos = yy_markedPos + 1;
- // If the searchString occurs at the very beginning of what would have
- // been a Block, resume scanning normally immediately
- if (yy_markedPos == yy_startRead) {
- yybegin(immediateFallbackState);
- return primGetNextToken();
- }
- }
- else {
- // We ran through the rest of the input
- yy_markedPos = yy_currentPos;
- yy_currentPos++;
- }
- yybegin(exitState);
- // If the ending occurs at the very beginning of what would have
- // been a Block, resume scanning normally immediately
- if(yy_markedPos == yy_startRead)
- return primGetNextToken();
- return searchContext;
-}
-/**
- * user method
- *
- * A generic lookahead-like operation
- */
-private final String doBlockScan(String target, String targetContext, int immediateFallbackState) throws IOException {
- return doScan(target, false, targetContext, immediateFallbackState, immediateFallbackState);
-}
-/**
- * user method
- * does a lookahead for the current tag name
- */
-private final String doBlockTagScan() throws IOException {
- fIsCaseSensitiveBlocking = getBlockMarkerCaseSensitivity();
- return doScan("</" + fCurrentTagName, true, getBlockMarkerContext(fCurrentTagName), YYINITIAL, YYINITIAL);
-}
-/**
- * user method
- *
- * Converts the raw context String returned by the primGetNextToken()
- * method into a full ITextRegion by pulling in values for the
- * current offset within the scanning text.
- *
- * Returns null when EOF is encountered and attaches intermittently
- * discovered whitespace onto the end of useful regions.
- *
- * Note that this algorithm caches the token following the one being returned
- * so that whitespace can be collapsed.
- */
-public final ITextRegion getNextToken() throws IOException {
- // load the starting non-whitespace token (assume that it is so)
- if (fShouldLoadBuffered) {
- context = fBufferedContext;
- start = fBufferedStart;
- textLength = length = fBufferedLength;
- fShouldLoadBuffered = false;
- }
- else {
- context = primGetNextToken();
- if (context == XML_TAG_NAME) {
- if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead))
- fCurrentTagName = yytext();
- else
- fCurrentTagName = null;
- }
- else if (context == XML_TAG_OPEN) {
- fIsBlockingEnabled = true;
- }
- else if (context == XML_END_TAG_OPEN) {
- fIsBlockingEnabled = false;
- }
- start = yychar;
- textLength = length = yylength();
- if (yy_atEOF) {
- fTokenCount++;
- return null;
- }
- }
- // store the next token
- f_context = primGetNextToken();
- if (f_context == XML_TAG_NAME) {
- if(containsTagName(yy_buffer, yy_startRead, yy_markedPos-yy_startRead))
- fCurrentTagName = yytext();
- else
- fCurrentTagName = null;
- }
- else if (f_context == XML_TAG_OPEN) {
- fIsBlockingEnabled = true;
- }
- else if (f_context == XML_END_TAG_OPEN) {
- fIsBlockingEnabled = false;
- }
- fBufferedContext = f_context;
- fBufferedStart = yychar;
- fBufferedLength = yylength();
- fShouldLoadBuffered = true;
- if (fBufferedContext == WHITE_SPACE) {
- fShouldLoadBuffered = false;
- length += fBufferedLength;
- }
- if (context == null) {
- // EOF
- if (Debug.debugTokenizer) {
- System.out.println(getClass().getName() + " discovered " + fTokenCount + " tokens."); //$NON-NLS-2$//$NON-NLS-1$
- }
- return null;
- }
- fTokenCount++;
- return fRegionFactory.createToken(context, start, textLength, length, null, fCurrentTagName);
-}
-/* user method */
-public XMLTokenizer(){
- super();
-}
-/* user method */
-public XMLTokenizer(char[] charArray){
- this(new CharArrayReader(charArray));
-}
-/* user method */
-public void reset(char[] charArray) {
- reset(new CharArrayReader(charArray), 0);
-}
-/* user method */
-public void reset(char[] charArray, int newOffset) {
- reset(new CharArrayReader(charArray), newOffset);
-}
-/* user method */
-public void reset(java.io.InputStream in) {
- reset(new java.io.InputStreamReader(in), 0);
-}
-/* user method */
-public void reset(java.io.InputStream in, int newOffset) {
- reset(new java.io.InputStreamReader(in), newOffset);
-}
-/* user method */
-public void reset(java.io.Reader in) {
- reset(in, 0);
-}
-/**
- * user method *
- *
- * Reset internal counters and vars to "newly created" values, in the hopes
- * that resetting a pre-existing tokenizer is faster than creating a new one.
- *
- * This method contains code blocks that were essentially duplicated from the
- * <em>generated</em> output of this specification before this method was
- * added. Those code blocks were under the above copyright.
- */
-public void reset(java.io.Reader in, int newOffset) {
- if (Debug.debugTokenizer) {
- System.out.println("resetting tokenizer");//$NON-NLS-1$
- }
- fOffset = newOffset;
-
- /* 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;
-
- /* number of newlines encountered up to the start of the matched text */
- yyline = 0;
-
- /* the number of characters up to the start of the matched text */
- yychar = 0;
-
- /* 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;
-
-
- /* user vars: */
- fTokenCount = 0;
-
- fShouldLoadBuffered = false;
- fBufferedContext = null;
- fBufferedStart = 1;
- fBufferedLength = 0;
- fStateStack = new IntStack();
-
- context = null;
- start = 0;
- textLength = 0;
- length = 0;
-}
-
- /**
- * user method
- *
- */
- public BlockTokenizer newInstance() {
- XMLTokenizer newInstance = new XMLTokenizer();
- // global tagmarkers can be shared; they have no state and
- // are never destroyed (e.g. 'release')
- for(int i = 0; i < fBlockMarkers.size(); i++) {
- BlockMarker blockMarker = (BlockMarker) fBlockMarkers.get(i);
- if(blockMarker.isGlobal())
- newInstance.addBlockMarker(blockMarker);
- }
- return newInstance;
- }
-/* user method */
-private final String scanXMLCommentText() throws IOException {
- // Scan for '-->' and return the text up to that point as
- // XML_COMMENT_TEXT unless the string occurs IMMEDIATELY, in which
- // case change to the ST_XML_COMMENT_END state and return the next
- // context as usual.
- return doScan("-->", false, XML_COMMENT_TEXT, ST_XML_COMMENT_END, ST_XML_COMMENT_END);
-}
-%}
-
-%eof{
-// do nothing, this is the downstream parser's job
-%eof}
-
-%public
-%class XMLTokenizer
-%implements BlockTokenizer, DOMRegionContext
-%function primGetNextToken
-%type String
-%char
-%line
-%unicode
-%pack
-
-%state ST_CDATA_TEXT
-%state ST_CDATA_END
-%state ST_XML_COMMENT
-%state ST_XML_COMMENT_END
-%state ST_PI
-%state ST_PI_WS
-%state ST_PI_CONTENT
-%state ST_XML_PI_ATTRIBUTE_NAME
-%state ST_XML_PI_EQUALS
-%state ST_XML_PI_ATTRIBUTE_VALUE
-%state ST_XML_PI_TAG_CLOSE
-%state ST_DHTML_ATTRIBUTE_NAME
-%state ST_DHTML_EQUALS
-%state ST_DHTML_ATTRIBUTE_VALUE
-%state ST_DHTML_TAG_CLOSE
-
-// normal tag states
-%state ST_XML_TAG_NAME
-%state ST_XML_ATTRIBUTE_NAME
-%state ST_XML_EQUALS
-%state ST_XML_ATTRIBUTE_VALUE
-
-// declaration (DTD) states
-%state ST_XML_DECLARATION
-%state ST_XML_DECLARATION_CLOSE
-
-%state ST_XML_DOCTYPE_DECLARATION
-%state ST_XML_DOCTYPE_EXTERNAL_ID
-%state ST_XML_DOCTYPE_ID_PUBLIC
-%state ST_XML_DOCTYPE_ID_SYSTEM
-
-%state ST_XML_ELEMENT_DECLARATION
-%state ST_XML_ELEMENT_DECLARATION_CONTENT
-
-%state ST_XML_ATTLIST_DECLARATION
-%state ST_XML_ATTLIST_DECLARATION_CONTENT
-
-%state ST_BLOCK_TAG_SCAN
-
-// Letter = ([A-Za-z])
-// Digit = ([0-9])
-
-/**
- * smaller tokens
- */
-genericTagOpen = <
-genericTagClose = >
-genericEndTagOpen = <\/
-genericEmptyTagClose = \/>
-
-PIstart = <\?
-PIend = \?>
-
-
-// [1] document ::= prolog element Misc*
-document = ({prolog} {element} {Misc}*)
-
-// [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
- //Char = (.)
-Char = [\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD]
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]+
-
-// [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
-NameChar = ({Letter} | {Digit} | \. | \- | _ | : | {CombiningChar} | {Extender})
-
-// [5] Name ::= (Letter | '_' | ':') NameChar*
-//Name = ({NameChar}{NameChar}*)
-Name = ({Letter} | _ | :){NameChar}*
-
-// [6] Names ::= {Name} ({S} {Name})*
-Names = ({Name} ({S} {Name})*)
-
-// [7] Nmtoken ::= (NameChar)+
-Nmtoken = ({NameChar}+)
-
-// [8] Nmtokens ::= Nmtoken (S Nmtoken)*
-Nmtokens = ({Nmtoken} ({S} {Nmtoken})*)
-
-// [9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"' | "'" ([^%&'] | PEReference | Reference)* "'"
-EntityValue = (\" ([^%&\"] | {PEReference} | {Reference})* \" | \' ([^%&\'] | {PEReference} | {Reference})* \')
-
-// [10] AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"
-AttValue = ( \" ([^<\"] | {Reference})* \" | \' ([^<\'] | {Reference})* \' | ([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* )
-
-// [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")
-SystemLiteral = ((\" [^\"]* \") | (\' [^\']* \'))
-
-// [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
-PubidLiteral = (\" {PubidChar}* \" | \' ({PubidChar}\')* "'")
-
-// [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
-PubidChar = ([\040\015\012] | [a-zA-Z0-9] | [\-\'()\+,.\/:=?;!\*#@\$_%])
-
-// [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
-// implement lookahead behavior during action definition
-CharData = ([^<&(\]\]>)]*)
-
-// [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
-CommentStart = (<!\-\-)
-CommentEnd = (\-\->)
-Comment = ({CommentStart}.*{CommentEnd})
-
-// [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
-PI = (<\?{PITarget} {Char}* \?>)
-
-// [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))
-PITarget = ({Name}((X|x)(M|m)(L|l)))
-
-// [18] CDSect ::= CDStart CData CDEnd
-CDSect = ({CDStart}{CData}{CDEnd})
-
-// [19] CDStart ::= '<![CDATA['
-CDStart = <!\[CDATA\[
-
-// [20] CData ::= (Char* - (Char* ']]>' Char*))
-// implement lookahead behavior during action definition
-CData = ([^(\]\]>)]*)
-
-// [21] CDEnd ::= ']]>'
-CDEnd = (\]\]>)
-
-// [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
-prolog = ({XMLDecl}? {Misc}* ({doctypedecl} {Misc}*)?)
-
-// [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
-XMLDecl = (<\?xml {VersionInfo} {EncodingDecl}? {SDDecl}? {S}? \?>)
-
-// [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")
-VersionInfo = ({S}version{Eq}(\'{VersionNum}\' | \"{VersionNum}\"))
-
-// [25] Eq ::= S? '=' S?
-Eq = (\=)
-
-// [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
-VersionNum = (([a-zA-Z0-9_.:]|\-)+)
-
-// [27] Misc ::= Comment | PI | S
-Misc = ({Comment} | {PI} | {S})
-
-// [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
-doctypedecl = (<\!DOCTYPE{S}{Name} ({S}{ExternalID})? {S}? (\[ ({markupdecl}|{PEReference}|{S})* \]{S}?)?>)
-
-// [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment
-markupdecl = ({elementdecl} | {AttlistDecl} | {EntityDecl} | {NotationDecl} | {PI} | {Comment})
-
-// [30] extSubset ::= TextDecl? extSubsetDecl
-extSubset = ({TextDecl}? {extSubsetDecl})
-
-// [31] extSubsetDecl ::= ( markupdecl | conditionalSect | PEReference | S )*
-extSubsetDecl = (( {markupdecl} | {conditionalSect} | {PEReference} | {S} )*)
-
-// [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))
-SDDecl = ({S}standalone{Eq}{S}*((\'(yes|no)\')|(\"(yes|no)\")))
-
-// [33] LanguageID ::= Langcode ('-' Subcode)*
-LanguageID = ({Langcode}(\-{Subcode})*)
-
-// [34] Langcode ::= ISO639Code | IanaCode | UserCode
-Langcode = ({ISO639Code} | {IanaCode} | {UserCode})
-
-// [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z])
-ISO639Code = (([a-z]|[A-Z])([a-z]|[A-Z]))
-
-// [36] IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+
-IanaCode = ((i|I)\-([a-z]|[A-Z])+)
-
-// [37] UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+
-UserCode = ((x|X)\-([a-z]|[A-Z])+)
-
-// [38] Subcode ::= ([a-z] | [A-Z])+
-Subcode = (([a-z]|[A-Z])+)
-
-// [39] element ::= EmptyElemTag | STag content ETag
-element = ({EmptyElemTag} | {STag} {content} {ETag})
-
-// [40] STag ::= '<' Name (S Attribute)* S? '>'
-STag = (<{Name}({S}{Attribute})*{S}?>)
-
-// [41] Attribute ::= Name Eq AttValue
-Attribute = ({Name}{S}*{Eq}{S}*{AttValue})
-
-// [42] ETag ::= 'Name S? '>'
-ETag = (<\/{Name}{S}?>)
-
-// [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*
-content = (({element} | {CharData} | {Reference} | {CDSect} | {PI} | {Comment})*)
-
-// [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
-EmptyElemTag = (<{Name}({S}{Attribute})*{S}?\/>)
-
-// [45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'
-elementdecl = (<\!ELEMENT{S}{Name}{S}{contentspec}{S}?>)
-
-// [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children
-contentspec = (EMPTY|ANY|{Mixed}|{children})
-
-// [47] children ::= (choice | seq) ('?' | '*' | '+')?
-children = (({choice}|{seq})(\?|\*|\+)?)
-
-// CAUSES LOOP THROUGH DEFS OF CHOICE AND SEQ
-// [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
-cp = (({Name} | {choice} | {seq}) (\?|\*|\+)?)
-
-// [49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')'
-// choice = \({S}?{cp}({S}?\|{S}?{cp})*{S}?\)
-choice = \({S}?{Name}({S}?\|{S}?{Name})*{S}?\)
-
-// [50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'
-// seq = (\({S}?{cp}({S}?\,{S}?{cp})*{S}?\))
-seq = (\({S}?{Name}({S}?\,{S}?{Name})*{S}?\))
-
-// [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA' S? ')'
-Mixed = ({S}?\#PCDATA({S}?\|{S}?{Name})*{S}?)*\|({S}?\#PCDATA{S}?)
-
-// [52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'
-AttlistDecl = (<\!ATTLIST{S}{Name}{AttDef}*{S}?>)
-
-// [53] AttDef ::= S Name S AttType S DefaultDecl
-AttDef = ({S}{Name}{S}{AttType}{S}{DefaultDecl})
-
-// [54] AttType ::= StringType | TokenizedType | EnumeratedType
-AttType = ({StringType} | {TokenizedType} | {EnumeratedType})
-
-// [55] StringType ::= 'CDATA'
-StringType = (CDATA)
-
-// [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'
-TokenizedType = (ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS)
-
-// [57] EnumeratedType ::= NotationType | Enumeration
-EnumeratedType = ({NotationType} | {Enumeration})
-
-// [58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'
-NotationType = (NOTATION{S}\({S}?{Name}({S}?\|{S}?{Name})*{S}?\))
-
-// [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'
-Enumeration = (\({S}?{Nmtoken}({S}?\|{S}?{Nmtoken})*{S}?\))
-
-// [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue)
-DefaultDecl = (\#REQUIRED|\#IMPLIED|((\#FIXED{S})?{AttValue}))
-
-// [61] conditionalSect ::= includeSect | ignoreSect
-conditionalSect = ({includeSect} | {ignoreSect})
-
-// [62] includeSect ::= '<![' S? 'INCLUDE' S? '[' extSubsetDecl ']]>'
-includeSect = (<\!\[{S}?INCLUDE{S}?\[{extSubsetDecl}\]\]>)
-
-// [63] ignoreSect ::= '<![' S? 'IGNORE' S? '[' ignoreSectContents* ']]>'
-ignoreSect = (<\!\[{S}?IGNORE{S}?\[{ignoreSectContents}*\]\]>)
-
-// [64] ignoreSectContents ::= Ignore ('<![' ignoreSectContents ']]>' Ignore)*
-ignoreSectContents = ({Ignore}(<\!\[{ignoreSectContents}\]\]>{Ignore})*)
-
-// [65] Ignore ::= Char* - (Char* ('<![' | ']]>') Char*)
-Ignore = ([^(\<\!\[|\]\]\>)]*)
-
-// [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
-CharRef = (&#[0-9]+;|&#x[0-9a-fA-F]+;)
-
-// [67] Reference ::= EntityRef | CharRef
-Reference = ({EntityRef} | {CharRef})
-
-// [68] EntityRef = '&' Name ';'
-EntityRef = (&{Name};)
-
-// [69] PEReference ::= '%' Name ';'
-PEReference = (%{Name};)
-
-// [70] EntityDecl ::= GEDecl | PEDecl
-EntityDecl = ({GEDecl} | {PEDecl})
-
-// [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'
-GEDecl = (<\!ENTITY{S}{Name}{S}{EntityDef}{S}?>)
-
-// [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
-PEDecl = (<\!ENTITY{S}\%{S}{Name}{S}{PEDef}{S}?>)
-
-// [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)
-EntityDef = ({EntityValue} | ({ExternalID}{NDataDecl}?))
-
-// [74] PEDef ::= EntityValue | ExternalID
-PEDef = ({EntityValue} | {ExternalID})
-
-// [75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral
-ExternalID = (SYSTEM{S}{SystemLiteral}|PUBLIC{S}{PubidLiteral}{S}{SystemLiteral} )
-
-// [76] NDataDecl ::= S 'NDATA' S Name
-NDataDecl = ({S}NDATA{S}{Name})
-
-// [77] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'
-TextDecl = (<\?xml{VersionInfo}?{EncodingDecl}{S}?\?>)
-
-// [78] extParsedEnt ::= TextDecl? content
-extParsedEnt = ({TextDecl}?{content})
-
-// [79] extPE ::= TextDecl? extSubsetDecl
-extPE = ({TextDecl}?{extSubsetDecl})
-
-// [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'" )
-EncodingDecl = ({S}encoding{S}*{Eq}{S}*(\"{EncName}\"|\'{EncName}\'))
-
-// [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
-EncName = ([A-Za-z]([A-Za-z0-9._]|\-)*)
-
-// [82] NotationDecl ::= '<!NOTATION' S Name S (ExternalID | PublicID) S? '>'
-NotationDecl = (<\!NOTATION{S}{Name}{S}({ExternalID}|{PublicID}){S}?>)
-
-// [83] PublicID ::= 'PUBLIC' S PubidLiteral
-PublicID = (PUBLIC{S}{PubidLiteral})
-
-// [84] Letter ::= BaseChar | Ideographic
-Letter = ({BaseChar} | {Ideographic})
-
-// [85] BaseChar ::= [#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6]
-// | [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131]
-// | [#x0134-#x013E] | [#x0141-#x0148] | [#x014A-#x017E]
-// | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5]
-// | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386
-// | [#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE]
-// | [#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0
-// | [#x03E2-#x03F3] | [#x0401-#x040C] | [#x040E-#x044F]
-// | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4]
-// | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB]
-// | [#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559
-// | [#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2]
-// | [#x0621-#x063A] | [#x0641-#x064A] | [#x0671-#x06B7]
-// | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3] | #x06D5
-// | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | [#x0958-#x0961]
-// | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8]
-// | [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD]
-// | [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A]
-// | [#x0A0F-#x0A10] | [#x0A13-#x0A28] | [#x0A2A-#x0A30]
-// | [#x0A32-#x0A33] | [#x0A35-#x0A36] | [#x0A38-#x0A39]
-// | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | [#x0A85-#x0A8B]
-// | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | [#x0AAA-#x0AB0]
-// | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0
-// | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28]
-// | [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D
-// | [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A]
-// | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C
-// | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA]
-// | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C]
-// | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33]
-// | [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C]
-// | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | [#x0CAA-#x0CB3]
-// | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | [#x0D05-#x0D0C]
-// | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39]
-// | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33]
-// | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88]
-// | #x0E8A | #x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F]
-// | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7 | [#x0EAA-#x0EAB]
-// | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | #x0EBD
-// | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69]
-// | [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103]
-// | [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112]
-// | #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150
-// | [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163 | #x1165
-// | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173] | #x1175
-// | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | [#x11B7-#x11B8]
-// | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9
-// | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15]
-// | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D]
-// | [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D]
-// | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4]
-// | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB]
-// | [#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126
-// | [#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094]
-// | [#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]
-BaseChar = [\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8-\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u212A-\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3]
-
-// [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
-Ideographic = [\u4E00-\u9FA5\u3007\u3021-\u3029]
-
-// [87] CombiningChar ::= [#x0300-#x0345] | [#x0360-#x0361]
-// | [#x0483-#x0486] | [#x0591-#x05A1] | [#x05A3-#x05B9]
-// | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] | #x05C4
-// | [#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] | [#x06DD-#x06DF]
-// | [#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED]
-// | [#x0901-#x0903] | #x093C | [#x093E-#x094C] | #x094D
-// | [#x0951-#x0954] | [#x0962-#x0963] | [#x0981-#x0983] | #x09BC
-// | #x09BE | #x09BF | [#x09C0-#x09C4] | [#x09C7-#x09C8]
-// | [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 | #x0A3C
-// | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48]
-// | [#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC
-// | [#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD]
-// | [#x0B01-#x0B03] | #x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48]
-// | [#x0B4B-#x0B4D] | [#x0B56-#x0B57] | [#x0B82-#x0B83]
-// | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] | [#x0BCA-#x0BCD] | #x0BD7
-// | [#x0C01-#x0C03] | [#x0C3E-#x0C44] | [#x0C46-#x0C48]
-// | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83]
-// | [#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD]
-// | [#x0CD5-#x0CD6] | [#x0D02-#x0D03] | [#x0D3E-#x0D43]
-// | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] | #x0D57 | #x0E31
-// | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] | #x0EB1 | [#x0EB4-#x0EB9]
-// | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] | [#x0F18-#x0F19] | #x0F35
-// | #x0F37 | #x0F39 | #x0F3E | #x0F3F | [#x0F71-#x0F84]
-// | [#x0F86-#x0F8B] | [#x0F90-#x0F95] | #x0F97 | [#x0F99-#x0FAD]
-// | [#x0FB1-#x0FB7] | #x0FB9 | [#x20D0-#x20DC] | #x20E1
-// | [#x302A-#x302F] | #x3099 | #x309A
-CombiningChar = [\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05A1\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1-\u05C2\u05C4\u064B-\u0652\u0670\u06D6-\u06DC\u06DD-\u06DF\u06E0-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094C\u094D\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09BC\u09BE\u09BF\u09C0-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3\u0A02\u0A3C\u0A3E\u0A3F\u0A40-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A70-\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B82-\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C82-\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A]
-
-// [88] Digit ::= [#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9]
-// | [#x0966-#x096F] | [#x09E6-#x09EF] | [#x0A66-#x0A6F]
-// | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] | [#x0BE7-#x0BEF]
-// | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F]
-// | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]
-Digit = [\u0030-\u0039\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29]
-
-// [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46
-// | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E]
-// | [#x30FC-#x30FE]
-Extender = [\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D-\u309E\u30FC-\u30FE]
-
-%%
-
-
-/* white space within a tag */
-<ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_PI, ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE, ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_ATTLIST_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID,ST_DHTML_ATTRIBUTE_NAME,ST_DHTML_EQUALS,ST_DHTML_ATTRIBUTE_VALUE,ST_DHTML_TAG_CLOSE> {S}* {
- if(Debug.debugTokenizer)
- dump("white space");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-
-// BEGIN REGULAR XML
-/* handle opening a new tag almost anywhere */
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_DECLARATION, ST_XML_ATTRIBUTE_VALUE> {genericTagOpen} {
- if(Debug.debugTokenizer)
- dump("\nstart tag open");//$NON-NLS-1$
- yybegin(ST_XML_TAG_NAME);
- return XML_TAG_OPEN;
-}
-
-/* unquoted */
-
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION> {genericEndTagOpen} {
- if(Debug.debugTokenizer)
- dump("\nend tag open");//$NON-NLS-1$
- yybegin(ST_XML_TAG_NAME);
- return XML_END_TAG_OPEN;
-}
-/* the tag's name was found, start scanning for attributes */
-<ST_XML_TAG_NAME> {Name} {
- if(Debug.debugTokenizer)
- dump("tag name");//$NON-NLS-1$
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return XML_TAG_NAME;
-}
-/* another attribute name was found, resume looking for the equals sign */
-<ST_XML_ATTRIBUTE_NAME, ST_XML_EQUALS> {Name} {
- if(Debug.debugTokenizer)
- dump("attr name");//$NON-NLS-1$
- yybegin(ST_XML_EQUALS);
- return XML_TAG_ATTRIBUTE_NAME;
-}
-/* an equal sign was found, what's next is the value */
-<ST_XML_EQUALS> {Eq} {
- if(Debug.debugTokenizer)
- dump("equals");//$NON-NLS-1$
- yybegin(ST_XML_ATTRIBUTE_VALUE);
- return XML_TAG_ATTRIBUTE_EQUALS;
-}
-/* the value was found, look for the next name */
-/* allow for unbalanced quotes, mostly a duplicate of the AttValue rule */
-<ST_XML_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("attr value");//$NON-NLS-1$
- yybegin(ST_XML_ATTRIBUTE_NAME);
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-
-
-/* the tag's close was found */
-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("tag close");//$NON-NLS-1$
- if(isBlockMarker()) {
- yybegin(ST_BLOCK_TAG_SCAN);
- }
- else
- yybegin(YYINITIAL);
- return XML_TAG_CLOSE;
-}
-/* the tag's close was found, but the tag doesn't need a matching end tag */
-<ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericEmptyTagClose} {
- yybegin(YYINITIAL);
- if(Debug.debugTokenizer)
- dump("empty tag close");//$NON-NLS-1$
- return XML_EMPTY_TAG_CLOSE;
-}
-
-<ST_XML_TAG_NAME> [^</>\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8-\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u212A-\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3\u4E00-\u9FA5\u3007\u3021-\u3029]* {
- if(Debug.debugTokenizer)
- dump("inappropriate tag name");//$NON-NLS-1$
- yybegin(YYINITIAL);
- return XML_CONTENT;
-}
-
-// END REGULAR XML
-
-
-// XML Comments
-
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE, ST_XML_DECLARATION> {CommentStart} {
- if(Debug.debugTokenizer)
- dump("\ncomment start");//$NON-NLS-1$
- yybegin(ST_XML_COMMENT);
- return XML_COMMENT_OPEN;
-}
-<ST_XML_COMMENT> .|\r|\n {
- if(Debug.debugTokenizer)
- dump("comment content");//$NON-NLS-1$
- return scanXMLCommentText();
-}
-
-<ST_XML_COMMENT_END> {CommentEnd} {
- if(Debug.debugTokenizer)
- dump("comment end");//$NON-NLS-1$
- yybegin(YYINITIAL);
- return XML_COMMENT_CLOSE;
-}
-
-// XML misc
-
-{CDStart} {
- if(Debug.debugTokenizer)
- dump("\nCDATA start");//$NON-NLS-1$
- fStateStack.push(yystate());
- yybegin(ST_CDATA_TEXT);
- return XML_CDATA_OPEN;
-}
-<ST_CDATA_TEXT> .|\r|\n {
- if(Debug.debugTokenizer)
- dump("CDATA text");//$NON-NLS-1$
- String blockContext = doBlockScan("]]>", XML_CDATA_TEXT, ST_CDATA_END);//$NON-NLS-1$
- if(blockContext == XML_CDATA_TEXT)
- yybegin(ST_CDATA_END);
- return blockContext;
-}
-<ST_CDATA_END> {CDEnd} {
- if(Debug.debugTokenizer)
- dump("CDATA end");//$NON-NLS-1$
- yybegin(fStateStack.pop());
- return XML_CDATA_CLOSE;
-}
-
-<YYINITIAL> {PEReference} {
- if(Debug.debugTokenizer)
- dump("\nPEReference");//$NON-NLS-1$
- return XML_PE_REFERENCE;
-}
-<YYINITIAL> {CharRef} {
- if(Debug.debugTokenizer)
- dump("\nCharRef");//$NON-NLS-1$
- return XML_CHAR_REFERENCE;
-}
-<YYINITIAL> {EntityRef} {
- if(Debug.debugTokenizer)
- dump("\nEntityRef");//$NON-NLS-1$
- return XML_ENTITY_REFERENCE;
-}
-
-<YYINITIAL> {PIstart} {
- if(Debug.debugTokenizer)
- dump("\nprocessing instruction start");//$NON-NLS-1$
- yybegin(ST_PI);
- return XML_PI_OPEN;
-}
-// the next three are order dependent
-<ST_PI> ((X|x)(M|m)(L|l)) {
- if(Debug.debugTokenizer)
- dump("XML processing instruction target");//$NON-NLS-1$
- yybegin(ST_XML_PI_ATTRIBUTE_NAME);
- return XML_TAG_NAME;
-}
-<ST_PI> ([iI][mM][pP][oO][rR][tT]{S}*) {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction target");//$NON-NLS-1$
- yybegin(ST_DHTML_ATTRIBUTE_NAME);
- return XML_TAG_NAME;
-}
-<ST_PI> {Name} {
- if(Debug.debugTokenizer)
- dump("processing instruction target");//$NON-NLS-1$
- yybegin(ST_PI_WS);
- return XML_TAG_NAME;
-}
-<ST_PI_WS> {S}+ {
- yybegin(ST_PI_CONTENT);
- return WHITE_SPACE;
-}
-<ST_PI, ST_PI_WS> \?> {
- if(Debug.debugTokenizer)
- dump("processing instruction end");//$NON-NLS-1$
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-<ST_PI_CONTENT> . {
- // block scan until close is found
- return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
-}
-<ST_PI_CONTENT,ST_XML_PI_TAG_CLOSE> \?> {
- // ended with nothing inside
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-<ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_EQUALS> {Name} {
- if(Debug.debugTokenizer)
- dump("XML processing instruction attribute name");//$NON-NLS-1$
- yybegin(ST_XML_PI_EQUALS);
- return XML_TAG_ATTRIBUTE_NAME;
-}
-<ST_XML_PI_EQUALS> {Eq} {
- if(Debug.debugTokenizer)
- dump("XML processing instruction '='");//$NON-NLS-1$
- yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
- return XML_TAG_ATTRIBUTE_EQUALS;
-}
-/* the value was found, look for the next name */
-<ST_XML_PI_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("XML processing instruction attribute value");//$NON-NLS-1$
- yybegin(ST_XML_PI_ATTRIBUTE_NAME);
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-/* the PI's close was found */
-<ST_XML_PI_EQUALS, ST_XML_PI_ATTRIBUTE_NAME, ST_XML_PI_ATTRIBUTE_VALUE> {PIend} {
- if(Debug.debugTokenizer)
- dump("XML processing instruction end");//$NON-NLS-1$
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-// DHTML
-<ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_EQUALS> {Name} {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction attribute name");//$NON-NLS-1$
- yybegin(ST_DHTML_EQUALS);
- return XML_TAG_ATTRIBUTE_NAME;
-}
-<ST_DHTML_EQUALS> {Eq} {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction '='");//$NON-NLS-1$
- yybegin(ST_DHTML_ATTRIBUTE_VALUE);
- return XML_TAG_ATTRIBUTE_EQUALS;
-}
-/* the value was found, look for the next name */
-<ST_DHTML_ATTRIBUTE_VALUE> {AttValue} | ([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction attribute value");//$NON-NLS-1$
- yybegin(ST_DHTML_ATTRIBUTE_NAME);
- return XML_TAG_ATTRIBUTE_VALUE;
-}
-/* The DHTML PI's close was found */
-<ST_DHTML_EQUALS, ST_DHTML_ATTRIBUTE_NAME, ST_DHTML_ATTRIBUTE_VALUE> [/]*> {
- if(Debug.debugTokenizer)
- dump("DHTML processing instruction end");//$NON-NLS-1$
- yybegin(YYINITIAL);
- return XML_PI_CLOSE;
-}
-
-// XML declarations
-
-<YYINITIAL, ST_XML_TAG_NAME, ST_XML_EQUALS, ST_XML_ATTRIBUTE_NAME, ST_XML_ATTRIBUTE_VALUE> {genericTagOpen}! {
- fStateStack.push(yystate());
- if(Debug.debugTokenizer)
- dump("\ndeclaration start");//$NON-NLS-1$
- yybegin(ST_XML_DECLARATION);
- return XML_DECLARATION_OPEN;
-}
-<ST_XML_DECLARATION> [Ee][Ll][Ee][Mm][Ee][Nn][Tt] {
- if(Debug.debugTokenizer)
- dump("element");//$NON-NLS-1$
- yybegin(ST_XML_ELEMENT_DECLARATION);
- return XML_ELEMENT_DECLARATION;
-}
-<ST_XML_DECLARATION> [Dd][Oo][Cc][Tt][Yy][Pp][Ee] {
- if(Debug.debugTokenizer)
- dump("doctype");//$NON-NLS-1$
- yybegin(ST_XML_DOCTYPE_DECLARATION);
- return XML_DOCTYPE_DECLARATION;
-}
-<ST_XML_DECLARATION> [Aa][Tt][Tt][Ll][Ii][Ss][Tt] {
- if(Debug.debugTokenizer)
- dump("attlist");//$NON-NLS-1$
- yybegin(ST_XML_ATTLIST_DECLARATION);
- return XML_ATTLIST_DECLARATION;
-}
-
-// begin DOCTYPE handling procedure
-<ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DECLARATION_CLOSE> \[[^\]]*\] {
- return XML_DOCTYPE_INTERNAL_SUBSET;
-}
-
-<ST_XML_DOCTYPE_DECLARATION> {Name} {
- if(Debug.debugTokenizer)
- dump("doctype type");//$NON-NLS-1$
- yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
- return XML_DOCTYPE_NAME;
-}
-<ST_XML_DOCTYPE_EXTERNAL_ID> [Pp][Uu][Bb][Ll][Ii][Cc] {
- if(Debug.debugTokenizer)
- dump("doctype external id");//$NON-NLS-1$
- yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
- return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
-}
-<ST_XML_DOCTYPE_EXTERNAL_ID> [Ss][Yy][Ss][Tt][Ee][Mm] {
- if(Debug.debugTokenizer)
- dump("doctype external id");//$NON-NLS-1$
- yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
- return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
-}
-<ST_XML_DOCTYPE_ID_PUBLIC> {AttValue}|{PubidLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("doctype public reference");//$NON-NLS-1$
- yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
- return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
-}
-<ST_XML_DOCTYPE_ID_SYSTEM> {AttValue}|{SystemLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("doctype system reference");//$NON-NLS-1$
- yybegin(ST_XML_DECLARATION_CLOSE);
- return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
-}
-// end DOCTYPE handling
-
-// begin ELEMENT handling procedure
-<ST_XML_ELEMENT_DECLARATION> {AttValue}|{PubidLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("elementdecl name");//$NON-NLS-1$
- yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
- return XML_ELEMENT_DECL_NAME;
-}
-<ST_XML_ELEMENT_DECLARATION_CONTENT> [^>]* {
- if(Debug.debugTokenizer)
- dump("elementdecl contentspec");//$NON-NLS-1$
- return XML_ELEMENT_DECL_CONTENT;
-}
-
-<ST_XML_ELEMENT_DECLARATION_CONTENT> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("elementdecl close");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return XML_DECLARATION_CLOSE;
-}
-// end ELEMENT handling
-
-// begin ATTLIST handling procedure
-<ST_XML_ATTLIST_DECLARATION> {AttValue}|{PubidLiteral}|([\'\"]([^\'\"\040\011\012\015<>/]|\/+[^\'\"\040\011\012\015<>/] )* ) {
- if(Debug.debugTokenizer)
- dump("attlist name");//$NON-NLS-1$
- yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
- return XML_ATTLIST_DECL_NAME;
-}
-<ST_XML_ATTLIST_DECLARATION_CONTENT> [^>]* {
- if(Debug.debugTokenizer)
- dump("attlist contentspec");//$NON-NLS-1$
- return XML_ATTLIST_DECL_CONTENT;
-}
-
-<ST_XML_ATTLIST_DECLARATION_CONTENT> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("attlist close");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return XML_DECLARATION_CLOSE;
-}
-// end ATTLIST handling
-
-<ST_XML_DECLARATION, ST_XML_DOCTYPE_DECLARATION, ST_XML_DOCTYPE_EXTERNAL_ID, ST_XML_ATTLIST_DECLARATION, ST_XML_ELEMENT_DECLARATION, ST_XML_DECLARATION_CLOSE, ST_XML_DOCTYPE_ID_PUBLIC, ST_XML_DOCTYPE_ID_SYSTEM, ST_XML_DOCTYPE_EXTERNAL_ID> {genericTagClose} {
- if(Debug.debugTokenizer)
- dump("declaration end");//$NON-NLS-1$
- if (Debug.debugTokenizer) {
- if(fStateStack.peek()!=YYINITIAL)
- System.out.println("end embedded region");//$NON-NLS-1$
- }
- yybegin(fStateStack.pop());
- return XML_DECLARATION_CLOSE;
-}
-// end DECLARATION handling
-
-<YYINITIAL> [^<&%]*|[&%]{S}+{Name}[^&%<]*|[&%]{Name}([^;&%<]*|{S}+;*) {
- if(Debug.debugTokenizer)
- dump("\nXML content");//$NON-NLS-1$
- return XML_CONTENT;
-}
-
-
-<ST_BLOCK_TAG_SCAN> .|\r|\n {
- return doBlockTagScan();
- }
-
-. {
- if (Debug.debugTokenizer)
- System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
- yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
- return UNDEFINED;
-}
-
-\040 {
- if(Debug.debugTokenizer)
- dump("SPACE");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-\011 {
- if(Debug.debugTokenizer)
- dump("0x9");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-\015
-{
- if(Debug.debugTokenizer)
- dump("CARRIAGE RETURN");//$NON-NLS-1$
- return WHITE_SPACE;
-}
-\012 {
- if(Debug.debugTokenizer)
- dump("LINE FEED");//$NON-NLS-1$
- return WHITE_SPACE;
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.cmd deleted file mode 100644 index 59e811c813..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.cmd +++ /dev/null @@ -1,3 +0,0 @@ -@echo off
-cmd /c flexx.cmd
-cmd /c flexj.cmd
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.sh b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.sh deleted file mode 100644 index 5cb6e3bbe6..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flex.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh
-export PATH=$PATH:/opt/IBMJava2-131/bin/:/opt/IBMJava2-13/bin/:/opt/jdk1.4
-java -Xmx470000000 -cp JFlex/lib/sed-jflex.jar;. JFlex.Main JSPTokenizer.jflex -skel skeleton.sse
-java -Xmx470000000 -cp JFlex/lib/sed-jflex.jar;. JFlex.Main XMLTokenizer.jflex -skel skeleton.sse
-rm -f JSPTokenizer.java~ JSPTokenizer~ XMLTokenizer.java~ XMLTokenizer~
-cp -v XMLTokenizer.java ../../../../sedmodel/com/ibm/sed/parser/internal
-cp -v JSPTokenizer.java ../../../../sedmodel/com/ibm/sed/parser/internal
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd deleted file mode 100644 index df212a6cf2..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd +++ /dev/null @@ -1,3 +0,0 @@ -@echo off
-PATH=%PATH%;c:\jdk1.4.2_09\bin
-java -Xmx470000000 -cp d:\JFlex\1.2.2\lib\JFlex.jar;. JFlex.Main JSPTokenizer.jflex -skel skeleton.sse && rm -f JSPTokenizer.java~ JSPTokenizer~ && copy JSPTokenizer.java ..\..\..\..\..\org.eclipse.jst.jsp.core\src\org\eclipse\jst\jsp\core\internal\parser\\internal\JSPTokenizer.java
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexx.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexx.cmd deleted file mode 100644 index fcb1f810cf..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexx.cmd +++ /dev/null @@ -1,3 +0,0 @@ -@echo off
-PATH=%PATH%;c:\jdk1.4.2_08\bin
-java -Xmx470000000 -cp d:\JFlex\1.2.2\lib\JFlex.jar;. JFlex.Main XMLTokenizer.jflex -skel skeleton.sse && rm -f XMLTokenizer.java~ XMLTokenizer~ && copy XMLTokenizer.java ..\..\..\..\..\org.eclipse.wst.xml.core\src\org\eclipse\wst\xml\core\internal\parser\XMLTokenizer.java
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse deleted file mode 100644 index 92b7634dc4..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse +++ /dev/null @@ -1,351 +0,0 @@ -
- /** this character denotes the end of file */
- final public static int YYEOF = -1;
-
- /** lexical states */
---- lexical states, charmap
-
- /* 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", //$NON-NLS-1$
- "Internal error: unknown state", //$NON-NLS-1$
- "Error: could not match input", //$NON-NLS-1$
- "Error: pushback value was too large" //$NON-NLS-1$
- };
-
---- isFinal list
- /** 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;
-
- /** 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;
-
- /**
- * 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;
-
---- 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
-
-
- /**
- * 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 - from the SED JFlex skeleton
- *
- * @param errorCode the code of the errormessage to display
- */
- private void yy_ScanError(int errorCode) {
- try {
- Logger.log(Logger.ERROR, YY_ERROR_MSG[errorCode]);
- }
- catch (ArrayIndexOutOfBoundsException e) {
- Logger.log(Logger.ERROR, YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
- }
- // DO NOT EXIT the VM on an 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()!
- */
- void yypushback(int number) {
- if ( number > yylength() )
- yy_ScanError(YY_PUSHBACK_2BIG);
-
- yy_markedPos -= number;
- }
-
- /**
- * user method - skeleton.sed
- */
- protected final boolean containsTagName(char[] markerTagName, int offset, int tagnameLength) {
- for(int j = 0; j < fBlockMarkers.size(); j++) {
- BlockMarker marker = (BlockMarker)fBlockMarkers.get(j);
- if(marker.getTagName().length() == tagnameLength) {
- boolean matchesSoFar = true;
- for(int i = 0; i < tagnameLength && matchesSoFar; i++) {
- if(marker.isCaseSensitive()) {
- if(marker.getTagName().charAt(i) != markerTagName[i + offset])
- matchesSoFar = false;
- }
- else {
- if(Character.toLowerCase(marker.getTagName().charAt(i)) != Character.toLowerCase(markerTagName[i + offset]))
- matchesSoFar = false;
- }
- }
- if(matchesSoFar)
- return true;
- }
- }
- return false;
- }
-
- /**
- * user method - skeleton.sed
- *
- * Return ALL of the regions scannable within the remaining text
- * Note: for verification use
- */
- public final List getRegions() {
- List tokens = new ArrayList();
- ITextRegion region = null;
- try {
- region = getNextToken();
- while(region != null) {
- if (region != null) {
- tokens.add(region);
- }
- region = getNextToken();
- }
- }
- catch (StackOverflowError e) {
- Logger.logException(getClass().getName()+": input could not be tokenized correctly at position " + getOffset(), e);//$NON-NLS-1$
- throw e;
- }
- catch (Exception e) {
- // Since this is convenience method and NOT the recommended
- // way of getting tokens, many errors are simply hidden
- Logger.logException("Exception not handled retrieving regions: " + e.getLocalizedMessage(), e);//$NON-NLS-1$
- }
- return tokens;
- }
- /**
- * user method - skeleton.sed
- */
- private final void dump(String s) {
- if (Debug.debugTokenizer) {
- System.out.println(s + " (" + yychar + "-" + //$NON-NLS-2$//$NON-NLS-1$
- (yylength() + yychar) + "):\'" +//$NON-NLS-1$
- StringUtils.escape(yytext()) + "\'");//$NON-NLS-1$
- }
- }
- /* user method - skeleton.sed */
- public final boolean isEOF() {
- return yy_atEOF;
- }
-/* user method - skeleton.sed */
-protected final boolean containsTagName(String markerTagName) {
- Iterator blocks = fBlockMarkers.iterator();
- while(blocks.hasNext()) {
- BlockMarker marker = (BlockMarker)blocks.next();
- if(marker.isCaseSensitive()) {
- if(marker.getTagName().equals(markerTagName))
- return true;
- }
- else {
- if(marker.getTagName().equalsIgnoreCase(markerTagName))
- return true;
- }
- }
- return false;
-}
-
---- yy_doEof
- /**
- * 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
- */
---- yylex declaration
- int yy_input;
- int yy_action;
-
---- local declarations
-
- while (true) {
-
---- start admin (line, char, col count)
- yy_action = -1;
-
- yy_currentPos = yy_startRead = yy_markedPos;
-
---- start admin (lexstate etc)
-
- yy_forAction: {
- while (true) {
-
- yy_input = yy_advance();
-
- if ( yy_input == YYEOF ) break yy_forAction;
-
---- line, col, char count, next transition, isFinal action
- yy_action = yy_state;
- yy_markedPos = yy_currentPos;
---- line count update
- }
-
- }
- }
-
---- char count update
-
- switch (yy_action) {
-
---- actions
- default:
- if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
- yy_atEOF = true;
---- eofvalue
- }
- else {
---- no match
- }
- }
- }
- }
-
---- main
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse.readme b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse.readme deleted file mode 100644 index eb89700a6d..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/skeleton.sse.readme +++ /dev/null @@ -1,6 +0,0 @@ -The skeleton.sed file contains the modified JFlex 1.2.2 skeleton file with
-changes for use with the tokenizers within the org.eclipse.wst.sse.core.xml and
-org.eclipse.wst.sse.core.jsp plugins.
-
-The skeleton file's method definitions are copied into the generated output
-directly.
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/build.xml b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/build.xml deleted file mode 100644 index bfd83de19f..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/build.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project name="tokenizer" default="CSSTokenizer"> - <target name="init" depends="properties"> - <property name="workspace.dir" value="../.."/> - <property name="jflex.jar" value="/DevTimeSupport/JFlex/lib/sed-jflex.jar"/> - <property name="jflex.maxmemory" value="470000000"/> - <property name="jflex.opt" value="-skel SedModel/HTMLTokenizer/devel/skeleton.sse"/> - </target> - - <target name="properties" if="eclipse.running"> - <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> - </target> - - <target name="CSSTokenizer" depends="init"> - <property name="src.dir" value="SedModel/CSSTokenizer/devel"/> - <property name="src.file" value="CSSTokenizer.jflex"/> - <property name="dest.dir" value="org.eclipse.wst.sse.core.css/src/com/ibm/sse/model/css/internal/parser"/> - <property name="finaldest.dir" value="org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser"/> - <antcall target="build-tokenizer"> - <param name="jflex.opt" value=""/> - </antcall> - </target> - - <target name="XMLTokenizer" depends="init"> - <property name="src.dir" value="SedModel/HTMLTokenizer/devel"/> - <property name="src.file" value="XMLTokenizer"/> - <property name="dest.dir" value="org.eclipse.wst.sse.core.xml/src/com/ibm/sse/model/xml/internal/parser"/> - <antcall target="build-tokenizer"/> - </target> - - <target name="JSPTokenizer" depends="init"> - <property name="src.dir" value="SedModel/HTMLTokenizer/devel"/> - <property name="src.file" value="JSPTokenizer.jflex"/> - <property name="dest.dir" value="org.eclipse.wst.sse.core.jsp/src/com/ibm/sse/model/jsp/parser/internal"/> - <antcall target="build-tokenizer"/> - </target> - - <target name="build-tokenizer" depends="init"> - <antcall target="run-jflex"/> - <antcall target="copy"/> - <antcall target="clean"/> - </target> - - <target name="run-jflex" depends="init"> - <java classname="JFlex.Main" maxmemory="${jflex.maxmemory}" fork="yes" > - <arg line="${src.dir}/${src.file} ${jflex.opt}"/> - <classpath> - <pathelement location="${jflex.jar}"/> - </classpath> - </java> - </target> - - <target name="copy" depends="init"> - <copy todir="${workspace.dir}/${dest.dir}" overwrite="true" verbose="true"> - <fileset dir="${src.dir}"> - <include name="*.java"/> - </fileset> - </copy> - <copy todir="${workspace.dir}/${finaldest.dir}" overwrite="true" verbose="true"> - <fileset dir="${src.dir}"> - <include name="*.java"/> - </fileset> - </copy> - </target> - - <target name="clean" depends="init"> - <delete verbose="true"> - <fileset dir="${src.dir}" defaultexcludes="no"> - <include name="*~"/> - </fileset> - </delete> - </target> - - -</project>
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/devTimeSupportInfo.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/devTimeSupportInfo.txt deleted file mode 100644 index a6d7aebe6c..0000000000 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/devTimeSupportInfo.txt +++ /dev/null @@ -1,16 +0,0 @@ - - -This directory, DevTimeSupport, normally contains -the source for some of our parser generators. - -See wst/components/sse/plugins/ -org.eclipse.wst.sse.core\DevTimeSupport - -This particular text file you are reading -is the only one shipped -with an SDK build, since the other files -are seldom needed during development or debugging, -and some of those files cause problems with long -filename or paths that end up being too long for -some platforms, and some unzip programs. - |