/** * Finds index of the first character in given array the differs from the * given set of characters. * * @return index of matched character or -1 */ public static int findFirstDiff(char[] source, int index, char[] match) { for (int i = index; i < source.length; i++) { if (!equalsOne(source[i], match)) { return i; } } return -1; }
/** * Finds index of the first character in given array the matches any from the * given set of characters. * * @return index of matched character or -1 */ public static int findFirstEqual(char[] source, int index, char[] match) { for (int i = index; i < source.length; i++) { if (equalsOne(source[i], match)) { return i; } } return -1; }
/** * Finds index of the first character in given array the differs from the * given set of characters. * * @return index of matched character or -1 */ public static int findFirstDiff(final char[] source, final int index, final char[] match) { for (int i = index; i < source.length; i++) { if (!equalsOne(source[i], match)) { return i; } } return -1; }
/** * Finds index of the first character in given array the matches any from the * given set of characters. * * @return index of matched character or -1 */ public static int findFirstEqual(final char[] source, final int index, final char[] match) { for (int i = index; i < source.length; i++) { if (equalsOne(source[i], match)) { return i; } } return -1; }
/** * Parses un-quoted string content. */ protected String parseUnquotedStringContent() { final int startNdx = ndx; while (true) { final char c = input[ndx]; if (c <= ' ' || CharUtil.equalsOne(c, UNQOUTED_DELIMETERS)) { final int currentNdx = ndx; // done skipWhiteSpaces(); return new String(input, startNdx, currentNdx - startNdx); } ndx++; } }
if (CharUtil.equalsOne(srcc[0], delimiters)) { // string starts with delimiter end[0] = 0; count++;
@Override public void parse() { while (true) { ndx++; if (isEOF()) { state = SCRIPT_DATA_ESCAPED; return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES_OR_END)) { if (isAppropriateTagName(T_SCRIPT, doubleEscapedNdx, ndx)) { state = SCRIPT_DATA_DOUBLE_ESCAPED; } else { state = SCRIPT_DATA_ESCAPED; } return; } if (isAlpha(c)) { continue; } state = SCRIPT_DATA_ESCAPED; return; } } };
@Override public void parse() { doubleEscapedEndTag = ndx + 1; while (true) { ndx++; if (isEOF()) { state = SCRIPT_DATA_DOUBLE_ESCAPED; return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES_OR_END)) { if (isAppropriateTagName(T_SCRIPT, doubleEscapedEndTag, ndx)) { state = SCRIPT_DATA_ESCAPED; } else { state = SCRIPT_DATA_DOUBLE_ESCAPED; } return; } if (isAlpha(c)) { continue; } state = SCRIPT_DATA_DOUBLE_ESCAPED; return; } } };
@Override public void parse() { while (true) { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { continue; } if (c == '/') { state = SELF_CLOSING_START_TAG; return; } if (c == '>') { state = DATA_STATE; emitTag(); return; } if (equalsOne(c, ATTR_INVALID_1)) { errorInvalidToken(); } state = ATTRIBUTE_NAME; return; } } };
@Override public void parse() { while(true) { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { continue; } if (c == '=') { state = BEFORE_XML_ATTRIBUTE_VALUE; return; } errorInvalidToken(); state = DATA_STATE; return; } } };
@Override public void parse() { while(true) { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { continue; } if (c == '\"' || c == '\'') { state = XML_ATTRIBUTE_VALUE; attrQuote = c; return; } errorInvalidToken(); state = DATA_STATE; return; } } };
@Override public void parse() { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { state = BEFORE_ATTRIBUTE_NAME; return; } if (c == '/') { state = SELF_CLOSING_START_TAG; return; } if (c == '>') { state = DATA_STATE; emitTag(); return; } errorInvalidToken(); state = BEFORE_ATTRIBUTE_NAME; ndx--; } };
@Override public void parse() { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; doctype.setQuirksMode(true); emitDoctype(); return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { state = BEFORE_DOCTYPE_NAME; return; } errorInvalidToken(); state = BEFORE_DOCTYPE_NAME; ndx--; } };
@Override public void parse() { while(true) { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; doctype.setQuirksMode(true); emitDoctype(); return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { continue; } if (c == '>') { state = DATA_STATE; emitDoctype(); return; } errorInvalidToken(); state = BOGUS_DOCTYPE; // does NOT set the quirks mode! } } };
if (equalsOne(c, CONTINUE_CHARS)) { ndx = unconsumeNdx; textEmitChar('&');
if (equalsOne(c, CONTINUE_CHARS)) { ndx = unconsumeNdx; textEmitChar('&');
if (equalsOne(c, TAG_WHITESPACES)) { continue;
@Override public void parse() { while (true) { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; doctype.setQuirksMode(true); emitDoctype(); return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { continue; } if (c == '>') { errorInvalidToken(); state = DATA_STATE; doctype.setQuirksMode(true); emitDoctype(); return; } state = DOCTYPE_NAME; return; } } };
@Override public void parse() { int nameNdx = ndx; while (true) { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { state = BEFORE_ATTRIBUTE_NAME; tag.setName(charSequence(nameNdx, ndx)); break; } if (c == '/') { state = SELF_CLOSING_START_TAG; tag.setName(charSequence(nameNdx, ndx)); break; } if (c == '>') { state = DATA_STATE; tag.setName(charSequence(nameNdx, ndx)); emitTag(); break; } } } };
@Override public void parse() { int nameStartNdx = ndx; while (true) { ndx++; if (isEOF()) { errorEOF(); state = DATA_STATE; doctype.setName(charSequence(nameStartNdx, ndx)); doctype.setQuirksMode(true); emitDoctype(); return; } char c = input[ndx]; if (equalsOne(c, TAG_WHITESPACES)) { state = AFTER_DOCUMENT_NAME; doctype.setName(charSequence(nameStartNdx, ndx)); return; } if (c == '>') { state = DATA_STATE; doctype.setName(charSequence(nameStartNdx, ndx)); emitDoctype(); return; } } } };