/** * Check that the next character is {@code expected} and skip it */ protected void expect (char expected) { if (pos >= source.length () || source.charAt (pos) != expected) { throw new XMLParseException ("Expected '"+expected+"'"+lookAheadForErrorMessage ("but found", pos, 20), source, pos); } pos ++; }
/** * Fetch the next token and make sure it's {@code expected}. If not, create an * {@link XMLParseException} using the {@code errorMessage} */ protected Token expect (XMLTokenizer tokenizer, Token startToken, Type expected, String errorMessage) { Token token = tokenizer.next (); //System.out.println (token); if (token == null || token.getType () != expected) { if (token == null) token = startToken; throw new XMLParseException (errorMessage + tokenizer.lookAheadForErrorMessage ("but found", token.getStartOffset (), 20) + " (" + token + ")", token); } return token; }
/** Read an XML name */ protected void parseName (String objectName) { int startPos = pos; if (pos < source.length () && charValidator.isNameStartChar (source.charAt (pos))) { pos ++; while (pos < source.length () && charValidator.isNameChar (source.charAt (pos))) pos ++; } if (pos == startPos) { throw new XMLParseException ("Expected valid XML name for "+objectName+lookAheadForErrorMessage ("but found", startPos, 20), source, startPos); } }
protected Token parseAttListTypeGroup (XMLTokenizer tokenizer, Token token, DocTypeAttributeList attList) { attList.addNode (toNode (token)); Token startGroup = token; int subLevel = 0; while ((token = tokenizer.next ()) != null) { attList.addNode (toNode (token)); if (token.getType () == Type.DOCTYPE_END_GROUP) { if (subLevel == 0) break; subLevel --; } else if (token.getType () == Type.DOCTYPE_BEGIN_GROUP) { subLevel ++; } } if (token == null) throw new XMLParseException ("Expected end of group"+tokenizer.lookAheadForErrorMessage ("but found", startGroup.getStartOffset (), 20), startGroup); return token; }
+lookAheadForErrorMessage (null, token.getStartOffset (), i), token); throw new XMLParseException ("Missing ';' after '&': "+lookAheadForErrorMessage (null, errorPos, 20), source, errorPos);
pos ++; if (pos+1 >= source.length ()) throw new XMLParseException ("Expected ']]>'"+lookAheadForErrorMessage ("but found", errorPos, 20), source, errorPos);
throw new XMLParseException ("Missing ';' after '&': "+lookAheadForErrorMessage (null, errorPos, 20), source, errorPos);
throw new XMLParseException ("Expected '>' after entity declaration"+tokenizer.lookAheadForErrorMessage ("but found", token.getStartOffset (), 20), tokenizer.getSource (), tokenizer.getOffset ());
throw new XMLParseException ("Unexpected EOF while parsing notation declaration", tokenizer.getSource (), tokenizer.getOffset ()); if (token.getType () != Type.DOCTYPE_END) throw new XMLParseException ("Expected '>' after notation declaration"+tokenizer.lookAheadForErrorMessage ("but found", token.getStartOffset (), 20), tokenizer.getSource (), tokenizer.getOffset ());