code: private static int scanIdentifier(String string, int start) {
  		// need a minimum 1 char
  		if (start >= string.length()) {
  			throw new IllegalArgumentException();
  		}
  		int p = start;
  		while (true) {
  			char c = string.charAt(p);
  			if (c == '<' || c == '>' || c == ':' || c == ';' || c == '.' || c == '/') {
  				return p - 1;
  			}
  			p++;
  			if (p == string.length()) {
  				return p - 1;
  			}
  		}
  	}
docs: Scans the given string for an identifier starting at the given
  index and returns the index of the last character.
  Stop characters are: ";", ":", "&lt;", "&gt;", "/", ".".
  
  @param string the signature string
  @param start the 0-based character index of the first character
  @return the 0-based character index of the last character
  @exception IllegalArgumentException if this is not an identifier