public int getEndOffset () { return startToken == null ? -1 : startToken.getEndOffset (); }
public int getEndOffset () { return token == null ? -1 : token.getEndOffset (); }
@Override public String toString () { return "Token (" + getType () + ", " + getStartOffset () + ":" + getEndOffset () + ", " + getEscapedText () + ")"; }
public String getPrefixWhiteSpace () { int pos = getStartOffset (); int N = getEndOffset (); while (pos < N) { char c = source.charAt (pos); if (!Character.isWhitespace (c)) break; pos ++; } return pos == 0 ? "" : source.substring (getStartOffset (), pos); } }
/** Return the string of text which this token represents in the XMLSource * * @return the text or <code>null</code> if there is no source */ public String getText () { return getSource() == null ? null : getSource().substring (getStartOffset(), getEndOffset()); }
parent.setEndName (endName); parent.getStartToken ().setEndOffset (token.getEndOffset ());
protected void parseDocTypeSubElement (XMLTokenizer tokenizer, Token startToken, DocType docType) { Token token = startToken; token = expect (tokenizer, token, Type.DTD_WHITESPACE, "Expected whitespace after '<!ELEMENT'"); token = expect (tokenizer, token, Type.TEXT, "Expected element name"); String name = token.getText (); token = expect (tokenizer, token, Type.DTD_WHITESPACE, "Expected whitespace after element name"); Token beforeContent = token; while ((token = tokenizer.next ()) != null) { //System.out.println ("parseDocTypeSubElement "+token); if (token.getType() == Type.DOCTYPE_END) break; // TODO Check EMPTY, ANY, #PCDATA, (|), ?, *, + } if (token == null) throw new XMLParseException ("Unexpected EOF while parsing element content", tokenizer.getSource (), tokenizer.getOffset ()); String content = tokenizer.getSource ().substring (beforeContent.getEndOffset (), token.getStartOffset ()); startToken.setEndOffset (token.getEndOffset ()); DocTypeElement element = new DocTypeElement (startToken, name, content); docType.add (element); }