attribute |= COMMENT_HTML;
	protected void tokenizeLine(int line) {		int offset= 0;		int index= offset;		final CommentRegion parent= getParent();		final CommentRange range= getFirst();		final int begin= range.getOffset();		final String content= parent.getText(begin, range.getLength());		final int length= content.length();		while (offset < length && Character.isWhitespace(content.charAt(offset)))			offset++;		CommentRange result= null;		if (offset >= length && !parent.isClearLines() && (line > 0 && line < parent.getSize() - 1)) {			result= new CommentRange(begin, 0);			result.setAttribute(COMMENT_BLANKLINE);			result.setAttribute(COMMENT_FIRST_TOKEN);			parent.append(result);		}		int attribute= COMMENT_FIRST_TOKEN;		while (offset < length) {			while (offset < length && Character.isWhitespace(content.charAt(offset)))				offset++;			index= offset;			if (index < length) {				if (content.charAt(index) == HTML_TAG_PREFIX) {					while (index < length && content.charAt(index) != HTML_TAG_POSTFIX)						index++;					if (index < length && content.charAt(index) == HTML_TAG_POSTFIX)						index++;					attribute |= COMMENT_HTML;				} else if (content.startsWith(LINK_TAG_PREFIX, index)) {					while (index < length && content.charAt(index) != LINK_TAG_POSTFIX)						index++;					if (index < length && content.charAt(index) == LINK_TAG_POSTFIX)						index++;					attribute |= COMMENT_OPEN | COMMENT_CLOSE;				} else {					while (index < length && !Character.isWhitespace(content.charAt(index)) && content.charAt(index) != HTML_TAG_PREFIX && !content.startsWith(LINK_TAG_PREFIX, index))						index++;				}			}			if (index - offset > 0) {				result= new CommentRange(begin + offset, index - offset);				result.setAttribute(attribute);				parent.append(result);				offset= index;			}						attribute= 0;		}	}