in workbench/mps-workbench/source/jetbrains/mps/ide/java/_JavaLexer.java [970:1600]
public IElementType advance() throws java.io.IOException {
int zzInput;
int zzAction;
// cached fields:
int zzCurrentPosL;
int zzMarkedPosL;
int zzEndReadL = zzEndRead;
CharSequence zzBufferL = zzBuffer;
char[] zzBufferArrayL = zzBufferArray;
char[] zzCMapL = ZZ_CMAP;
int[] zzTransL = ZZ_TRANS;
int[] zzRowMapL = ZZ_ROWMAP;
int[] zzAttrL = ZZ_ATTRIBUTE;
while (true) {
zzMarkedPosL = zzMarkedPos;
zzAction = -1;
zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
zzState = zzLexicalState;
zzForAction:
{
while (true) {
if (zzCurrentPosL < zzEndReadL)
zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++);
else if (zzAtEOF) {
zzInput = YYEOF;
break zzForAction;
} else {
// store back cached positions
zzCurrentPos = zzCurrentPosL;
zzMarkedPos = zzMarkedPosL;
boolean eof = zzRefill();
// get translated positions and possibly new buffer
zzCurrentPosL = zzCurrentPos;
zzMarkedPosL = zzMarkedPos;
zzBufferL = zzBuffer;
zzEndReadL = zzEndRead;
if (eof) {
zzInput = YYEOF;
break zzForAction;
} else {
zzInput = zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++);
}
}
int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
if (zzNext == -1) break zzForAction;
zzState = zzNext;
int zzAttributes = zzAttrL[zzState];
if ((zzAttributes & 1) == 1) {
zzAction = zzState;
zzMarkedPosL = zzCurrentPosL;
if ((zzAttributes & 8) == 8) break zzForAction;
}
}
}
// store back cached position
zzMarkedPos = zzMarkedPosL;
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
case 67: {
return JavaTokenType.LONG_KEYWORD;
}
case 111:
break;
case 99: {
return JavaTokenType.PRIVATE_KEYWORD;
}
case 112:
break;
case 27: {
return JavaTokenType.COMMA;
}
case 113:
break;
case 23: {
return JavaTokenType.RBRACE;
}
case 114:
break;
case 22: {
return JavaTokenType.LBRACE;
}
case 115:
break;
case 66: {
return myJdk15Enabled ? JavaTokenType.ENUM_KEYWORD : JavaTokenType.IDENTIFIER;
}
case 116:
break;
case 55: {
return JavaTokenType.DOC_COMMENT;
}
case 117:
break;
case 64: {
return JavaTokenType.THIS_KEYWORD;
}
case 118:
break;
case 83: {
return JavaTokenType.CLASS_KEYWORD;
}
case 119:
break;
case 14: {
return JavaTokenType.PLUS;
}
case 120:
break;
case 53: {
return JavaTokenType.XOREQ;
}
case 121:
break;
case 60: {
return JavaTokenType.INT_KEYWORD;
}
case 122:
break;
case 80: {
return JavaTokenType.SHORT_KEYWORD;
}
case 123:
break;
case 74: {
if (myJdk15Enabled) return JavaTokenType.FLOAT_LITERAL;
}
case 124:
break;
case 43: {
return JavaTokenType.EQEQ;
}
case 125:
break;
case 101: {
return JavaTokenType.ABSTRACT_KEYWORD;
}
case 126:
break;
case 68: {
return JavaTokenType.NULL_KEYWORD;
}
case 127:
break;
case 95: {
return JavaTokenType.EXTENDS_KEYWORD;
}
case 128:
break;
case 50: {
return JavaTokenType.LTLT;
}
case 129:
break;
case 20: {
return JavaTokenType.LPARENTH;
}
case 130:
break;
case 12: {
return JavaTokenType.EXCL;
}
case 131:
break;
case 102: {
return JavaTokenType.STRICTFP_KEYWORD;
}
case 132:
break;
case 37: {
return JavaTokenType.DIVEQ;
}
case 133:
break;
case 89: {
return JavaTokenType.STATIC_KEYWORD;
}
case 134:
break;
case 39: {
return JavaTokenType.MINUSMINUS;
}
case 135:
break;
case 76: {
return JavaTokenType.FALSE_KEYWORD;
}
case 136:
break;
case 1: {
return JavaTokenType.BAD_CHARACTER;
}
case 137:
break;
case 90: {
return JavaTokenType.SWITCH_KEYWORD;
}
case 138:
break;
case 26: {
return JavaTokenType.SEMICOLON;
}
case 139:
break;
case 18: {
return JavaTokenType.XOR;
}
case 140:
break;
case 34: {
return JavaTokenType.DOUBLE_LITERAL;
}
case 141:
break;
case 45: {
return JavaTokenType.OREQ;
}
case 142:
break;
case 11: {
return JavaTokenType.EQ;
}
case 143:
break;
case 5: {
return JavaTokenType.DIV;
}
case 144:
break;
case 65: {
return JavaTokenType.ELSE_KEYWORD;
}
case 145:
break;
case 59: {
return JavaTokenType.NEW_KEYWORD;
}
case 146:
break;
case 56: {
return JavaTokenType.ELLIPSIS;
}
case 147:
break;
case 52: {
return JavaTokenType.ANDAND;
}
case 148:
break;
case 81: {
return JavaTokenType.BREAK_KEYWORD;
}
case 149:
break;
case 9: {
return JavaTokenType.CHARACTER_LITERAL;
}
case 150:
break;
case 51: {
return JavaTokenType.ANDEQ;
}
case 151:
break;
case 2: {
return JavaTokenType.INTEGER_LITERAL;
}
case 152:
break;
case 77: {
return JavaTokenType.FLOAT_KEYWORD;
}
case 153:
break;
case 10: {
return JavaTokenType.STRING_LITERAL;
}
case 154:
break;
case 71: {
return JavaTokenType.CHAR_KEYWORD;
}
case 155:
break;
case 91: {
return JavaTokenType.NATIVE_KEYWORD;
}
case 156:
break;
case 42: {
return JavaTokenType.DO_KEYWORD;
}
case 157:
break;
case 7: {
return JavaTokenType.DOT;
}
case 158:
break;
case 28: {
return JavaTokenType.TILDE;
}
case 159:
break;
case 110: {
return JavaTokenType.SYNCHRONIZED_KEYWORD;
}
case 160:
break;
case 35: {
return JavaTokenType.END_OF_LINE_COMMENT;
}
case 161:
break;
case 38: {
return JavaTokenType.ASTERISKEQ;
}
case 162:
break;
case 79: {
return JavaTokenType.SUPER_KEYWORD;
}
case 163:
break;
case 40: {
return JavaTokenType.MINUSEQ;
}
case 164:
break;
case 61: {
return JavaTokenType.LTLTEQ;
}
case 165:
break;
case 72: {
return JavaTokenType.GOTO_KEYWORD;
}
case 166:
break;
case 25: {
return JavaTokenType.RBRACKET;
}
case 167:
break;
case 88: {
return myAssertKeywordEnabled ? JavaTokenType.ASSERT_KEYWORD : JavaTokenType.IDENTIFIER;
}
case 168:
break;
case 36: {
return JavaTokenType.C_STYLE_COMMENT;
}
case 169:
break;
case 15: {
return JavaTokenType.LT;
}
case 170:
break;
case 41: {
return JavaTokenType.IF_KEYWORD;
}
case 171:
break;
case 8: {
return JavaTokenType.MINUS;
}
case 172:
break;
case 85: {
return JavaTokenType.WHILE_KEYWORD;
}
case 173:
break;
case 69: {
return JavaTokenType.BYTE_KEYWORD;
}
case 174:
break;
case 96: {
return JavaTokenType.FINALLY_KEYWORD;
}
case 175:
break;
case 73: {
return JavaTokenType.VOID_KEYWORD;
}
case 176:
break;
case 29: {
return JavaTokenType.QUEST;
}
case 177:
break;
case 19: {
return JavaTokenType.PERC;
}
case 178:
break;
case 109: {
return JavaTokenType.IMPLEMENTS_KEYWORD;
}
case 179:
break;
case 86: {
return JavaTokenType.THROWS_KEYWORD;
}
case 180:
break;
case 78: {
return JavaTokenType.FINAL_KEYWORD;
}
case 181:
break;
case 93: {
return JavaTokenType.DOUBLE_KEYWORD;
}
case 182:
break;
case 107: {
return JavaTokenType.PROTECTED_KEYWORD;
}
case 183:
break;
case 103: {
return JavaTokenType.CONTINUE_KEYWORD;
}
case 184:
break;
case 100: {
return JavaTokenType.PACKAGE_KEYWORD;
}
case 185:
break;
case 62: {
if (myJdk15Enabled) return JavaTokenType.DOUBLE_LITERAL;
}
case 186:
break;
case 16: {
return JavaTokenType.GT;
}
case 187:
break;
case 24: {
return JavaTokenType.LBRACKET;
}
case 188:
break;
case 32: {
return JavaTokenType.LONG_LITERAL;
}
case 189:
break;
case 58: {
return JavaTokenType.FOR_KEYWORD;
}
case 190:
break;
case 98: {
return JavaTokenType.DEFAULT_KEYWORD;
}
case 191:
break;
case 47: {
return JavaTokenType.PLUSEQ;
}
case 192:
break;
case 87: {
return JavaTokenType.RETURN_KEYWORD;
}
case 193:
break;
case 63: {
return JavaTokenType.TRUE_KEYWORD;
}
case 194:
break;
case 48: {
return JavaTokenType.PLUSPLUS;
}
case 195:
break;
case 46: {
return JavaTokenType.OROR;
}
case 196:
break;
case 13: {
return JavaTokenType.OR;
}
case 197:
break;
case 3: {
return JavaTokenType.IDENTIFIER;
}
case 198:
break;
case 54: {
return JavaTokenType.PERCEQ;
}
case 199:
break;
case 30: {
return JavaTokenType.COLON;
}
case 200:
break;
case 104: {
return JavaTokenType.VOLATILE_KEYWORD;
}
case 201:
break;
case 106: {
return JavaTokenType.INTERFACE_KEYWORD;
}
case 202:
break;
case 108: {
return JavaTokenType.INSTANCEOF_KEYWORD;
}
case 203:
break;
case 105: {
return JavaTokenType.TRANSIENT_KEYWORD;
}
case 204:
break;
case 97: {
return JavaTokenType.BOOLEAN_KEYWORD;
}
case 205:
break;
case 70: {
return JavaTokenType.CASE_KEYWORD;
}
case 206:
break;
case 6: {
return JavaTokenType.ASTERISK;
}
case 207:
break;
case 92: {
return JavaTokenType.IMPORT_KEYWORD;
}
case 208:
break;
case 31: {
return JavaTokenType.AT;
}
case 209:
break;
case 44: {
return JavaTokenType.NE;
}
case 210:
break;
case 57: {
return JavaTokenType.TRY_KEYWORD;
}
case 211:
break;
case 82: {
return JavaTokenType.CATCH_KEYWORD;
}
case 212:
break;
case 33: {
return JavaTokenType.FLOAT_LITERAL;
}
case 213:
break;
case 17: {
return JavaTokenType.AND;
}
case 214:
break;
case 75: {
return JavaTokenType.THROW_KEYWORD;
}
case 215:
break;
case 21: {
return JavaTokenType.RPARENTH;
}
case 216:
break;
case 4: {
return JavaTokenType.WHITE_SPACE;
}
case 217:
break;
case 94: {
return JavaTokenType.PUBLIC_KEYWORD;
}
case 218:
break;
case 49: {
return JavaTokenType.LE;
}
case 219:
break;
case 84: {
return JavaTokenType.CONST_KEYWORD;
}
case 220:
break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
zzDoEOF();
return null;
} else {
zzScanError(ZZ_NO_MATCH);
}
}
}
}