in tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Yylex.java [451:661]
public Yytoken yylex() throws java.io.IOException, DeserializationException {
int zzInput;
int zzAction;
// cached fields:
int zzCurrentPosL;
int zzMarkedPosL;
int zzEndReadL = zzEndRead;
char[] zzBufferL = zzBuffer;
char[] zzCMapL = ZZ_CMAP;
int[] zzTransL = ZZ_TRANS;
int[] zzRowMapL = ZZ_ROWMAP;
int[] zzAttrL = ZZ_ATTRIBUTE;
while (true) {
zzMarkedPosL = zzMarkedPos;
yychar += zzMarkedPosL - zzStartRead;
zzAction = -1;
zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
zzState = ZZ_LEXSTATE[zzLexicalState];
zzForAction: {
while (true) {
if (zzCurrentPosL < zzEndReadL) {
zzInput = zzBufferL[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 = zzBufferL[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 4: {
sb = null;
sb = new StringBuilder();
yybegin(STRING_BEGIN);
}
case 24:
break;
case 11: {
sb.append(yytext());
}
case 25:
break;
case 5: {
return new Yytoken(Yytoken.Types.LEFT_BRACE, null);
}
case 26:
break;
case 16: {
sb.append('\b');
}
case 27:
break;
case 23: {
try {
int ch = Integer.parseInt(yytext().substring(2), 16);
sb.append((char) ch);
} catch (Exception e) {
/*
* The lexer is broken if it can build a 4 byte character
* code and fail to append the character.
*/
throw new DeserializationException(yychar, DeserializationException.Problems.UNEXPECTED_EXCEPTION, e);
}
}
case 28:
break;
case 22: {
Boolean val = Boolean.valueOf(yytext());
return new Yytoken(Yytoken.Types.DATUM, val);
}
case 29:
break;
case 12: {
sb.append('\\');
}
case 30:
break;
case 10: {
return new Yytoken(Yytoken.Types.COLON, null);
}
case 31:
break;
case 9: {
return new Yytoken(Yytoken.Types.COMMA, null);
}
case 32:
break;
case 21: {
return new Yytoken(Yytoken.Types.DATUM, null);
}
case 33:
break;
case 19: {
sb.append('\r');
}
case 34:
break;
case 15: {
sb.append('/');
}
case 35:
break;
case 2: {
java.math.BigDecimal val = new java.math.BigDecimal(yytext());
return new Yytoken(Yytoken.Types.DATUM, val);
}
case 36:
break;
case 14: {
sb.append('"');
}
case 37:
break;
case 8: {
return new Yytoken(Yytoken.Types.RIGHT_SQUARE, null);
}
case 38:
break;
case 17: {
sb.append('\f');
}
case 39:
break;
case 1: {
throw new DeserializationException(
yychar, DeserializationException.Problems.UNEXPECTED_CHARACTER, Character.valueOf(yycharat(0)));
}
case 40:
break;
case 6: {
return new Yytoken(Yytoken.Types.RIGHT_BRACE, null);
}
case 41:
break;
case 20: {
sb.append('\t');
}
case 42:
break;
case 7: {
return new Yytoken(Yytoken.Types.LEFT_SQUARE, null);
}
case 43:
break;
case 18: {
sb.append('\n');
}
case 44:
break;
case 13: {
yybegin(YYINITIAL);
return new Yytoken(Yytoken.Types.DATUM, sb.toString());
}
case 45:
break;
case 3: {
}
case 46:
break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
return null;
} else {
zzScanError(ZZ_NO_MATCH);
}
}
}
}