void () { if (myTokenEndOffset == myBufferEndOffset) { myTokenType = null; myBufferIndex = myBufferEndOffset; return; } myBufferIndex = myTokenEndOffset; if (myAfterLineBreak) { myAfterLineBreak = false; while (myTokenEndOffset < myBufferEndOffset && myBuffer.charAt(myTokenEndOffset) == '*' && (myTokenEndOffset + 1 >= myBufferEndOffset || myBuffer.charAt(myTokenEndOffset + 1) != '/')) { myTokenEndOffset++; } myInLeadingSpace = true; if (myBufferIndex < myTokenEndOffset) { myTokenType = myTokenTypes.commentLeadingAsterisks(); return; } } if (myInLeadingSpace) { myInLeadingSpace = false; boolean lf = false; while (myTokenEndOffset < myBufferEndOffset && Character.isWhitespace(myBuffer.charAt(myTokenEndOffset))) { if (myBuffer.charAt(myTokenEndOffset) == '\n') lf = true; myTokenEndOffset++; } final int state = myFlex.yystate(); if (state == _JavaDocLexer.COMMENT_DATA || state != _JavaDocLexer.SNIPPET_TAG_BODY_DATA && myTokenEndOffset < myBufferEndOffset && (myBuffer.charAt(myTokenEndOffset) == '@' || myBuffer.charAt(myTokenEndOffset) == '{' || myBuffer.charAt(myTokenEndOffset) == '\"' || myBuffer.charAt(myTokenEndOffset) == '<')) { myFlex.yybegin(_JavaDocLexer.COMMENT_DATA_START); } if (myBufferIndex < myTokenEndOffset) { myTokenType = lf || state == _JavaDocLexer.PARAM_TAG_SPACE || state == _JavaDocLexer.TAG_DOC_SPACE || state == _JavaDocLexer.INLINE_TAG_NAME || state == _JavaDocLexer.DOC_TAG_VALUE_IN_PAREN || state == _JavaDocLexer.SNIPPET_TAG_COMMENT_DATA_UNTIL_COLON ? myTokenTypes.space() : myTokenTypes.commentData(); return; } } flexLocateToken(); } private void flexLocateToken() { try { myState = myFlex.yystate(); myFlex.goTo(myBufferIndex); myTokenType = myFlex.advance(); myTokenEndOffset = myFlex.getTokenEnd(); } catch (IOException e) { // Can't be } } }