protected boolean parseTag() throws IOException {
  if (peekTag) {
    peekTag=false;
    return true;
  }
  int ch=skipWhitespace();
  boolean isStartTag=true;
  if (ch != '<')   throw expectedChar("'<'",ch);
  ch=read();
  if (ch == '/') {
    isStartTag=false;
    ch=is.read();
  }
  if (!isTagChar(ch))   throw expectedChar("tag",ch);
  sbuf.setLength(0);
  for (; isTagChar(ch); ch=read())   sbuf.append((char)ch);
  if (ch != '>')   throw expectedChar("'>'",ch);
  return isStartTag;
}

protected boolean parseTag ( ) throws IOException { if ( peekTag ) { peekTag = false ; return true ; } int ch = skipWhitespace ( ) ; boolean isStartTag = true ; if ( ch != '<' ) throw expectedChar ( "'<'" , ch ) ; ch = read ( ) ; if ( ch == '/' ) { isStartTag = false ; ch = is . read ( ) ; } if ( ! isTagChar ( ch ) ) throw expectedChar ( "tag" , ch ) ; sbuf . setLength ( 0 ) ; for ( ; isTagChar ( ch ) ; ch = read ( ) ) sbuf . append ( ( char ) ch ) ; if ( ch != '>' ) throw expectedChar ( "'>'" , ch ) ; return isStartTag ; }
parses a tag . returns true if it ' s a start tag .
