iterator.next(); } else if (c == '\'') {  kind = NORMAL_TEXT; char c2 = iterator.current(); if (c2 == '\\') c2 = iterator.next(); c2 = iterator.next(); if (c2 != '\n' && c2 != '\r') iterator.next();
	public int next() {		startPosition = iterator.getIndex();		char c = iterator.next();		if (c == CharacterIterator.DONE) {			kind = EOF;		}		else if (Character.isJavaIdentifierStart(c)) {			boolean couldBeKeyword = false;			if (Character.isLowerCase(c)) {				buf.append(c);				couldBeKeyword = true;			}			while (true) {				c = iterator.current();				if (!Character.isJavaIdentifierPart(c))					break;				c = iterator.next();				if (couldBeKeyword) {					if (!Character.isLowerCase(c)							|| buf.length() >= MAX_KEYWORD_LENGTH)						couldBeKeyword = false;					else						buf.append(c);				}			}			kind = NORMAL_TEXT;			if (couldBeKeyword) {				if (KEYWORDS.contains(buf.toString()))					kind = KEYWORD;				buf.setLength(0);			}		} else if (c == '/') {			char c2 = iterator.current();			if (c2 == '/') {				while (true) {					c2 = iterator.next();					if (c2 == '\n' || c2 == '\r')						break;				}				kind = COMMENT;				return kind;			} else if (c2 == '*') {				scanComment: while (true) {					c2 = iterator.next();					if (c2 == '*') {						do {						c2 = iterator.next();						if (c2 == '/')							break scanComment;						} while(c2 == '*');					}				}				kind = JAVADOC;				return kind;			}		} else if (c == '"') {			kind = QUOTE;			while (true) {				char c2 = iterator.next();				if (c2 == '"' || c2 == '\n' || c2 == '\r')					break;				if (c2 == '\\') {					c2 = iterator.next();					if (c2 == '\n' || c2 == '\r')						break;				}			}		} else			kind = NORMAL_TEXT;		// System.out.println(kind + " " + startPosition + "-" + iterator.getIndex());		return kind;	}