IElementType () { if (myEnd >= myBufferEnd) return null; myStart = myEnd; if (checkForSimpleValidEscape(myStart)) { myEnd = myStart + 2; return StringEscapesTokenTypes.VALID_STRING_ESCAPE_TOKEN; } else if (checkForHexCodeStart(myStart)) { for (myEnd = myStart + 2; myEnd < myStart + 6; myEnd++) { if (myEnd >= myBufferEnd || !StringUtil.isHexDigit(myBuffer.charAt(myEnd))) { return StringEscapesTokenTypes.INVALID_UNICODE_ESCAPE_TOKEN; } } return StringEscapesTokenTypes.VALID_STRING_ESCAPE_TOKEN; } else if (checkForInvalidSimpleEscape(myStart)) { myEnd = myStart + 2; return StringEscapesTokenTypes.INVALID_CHARACTER_ESCAPE_TOKEN; } while (myEnd < myBufferEnd && !checkForSimpleValidEscape(myEnd) && !checkForHexCodeStart(myEnd)) myEnd++; return myContentElementType; }