in jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/query/sql/JCRSQLParserTokenManager.java [876:1498]
private final int jjMoveNfa_0(int startState, int curPos)
{
int strKind = jjmatchedKind;
int strPos = jjmatchedPos;
int seenUpto;
input_stream.backup(seenUpto = curPos + 1);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { throw new Error("Internal Error"); }
curPos = 0;
int[] nextStates;
int startsAt = 0;
jjnewStateCnt = 109;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
for (;;)
{
if (++jjround == 0x7fffffff)
ReInitRounds();
if (curChar < 64)
{
long l = 1L << curChar;
MatchLoop: do
{
switch(jjstateSet[--i])
{
case 0:
if ((0x3ff000000000000L & l) != 0L)
{
if (kind > 74)
kind = 74;
jjCheckNAddStates(0, 4);
}
else if ((0x280000000000L & l) != 0L)
jjCheckNAddTwoStates(15, 18);
else if (curChar == 46)
jjCheckNAddTwoStates(26, 27);
else if (curChar == 39)
jjCheckNAddTwoStates(12, 13);
else if (curChar == 34)
jjCheckNAddTwoStates(7, 10);
if (curChar == 45)
jjCheckNAdd(1);
break;
case 1:
if (curChar == 45)
jjCheckNAddStates(5, 7);
break;
case 2:
jjCheckNAddTwoStates(2, 3);
break;
case 3:
if (curChar == 10 && kind > 5)
kind = 5;
break;
case 5:
if ((0x7ff000000000000L & l) == 0L)
break;
if (kind > 60)
kind = 60;
jjAddStates(8, 9);
break;
case 6:
if (curChar == 34)
jjCheckNAddTwoStates(7, 10);
break;
case 7:
if ((0xfffffffbffffffffL & l) != 0L)
jjCheckNAddTwoStates(7, 8);
break;
case 8:
if (curChar != 34)
break;
if (kind > 64)
kind = 64;
jjCheckNAdd(9);
break;
case 9:
if (curChar == 34)
jjCheckNAddTwoStates(7, 8);
break;
case 10:
if (curChar == 34)
jjCheckNAdd(9);
break;
case 11:
if (curChar == 39)
jjCheckNAddTwoStates(12, 13);
break;
case 12:
if ((0xffffff7fffffffffL & l) != 0L)
jjCheckNAddTwoStates(12, 13);
break;
case 13:
if (curChar != 39)
break;
if (kind > 98)
kind = 98;
jjstateSet[jjnewStateCnt++] = 11;
break;
case 14:
if ((0x280000000000L & l) != 0L)
jjCheckNAddTwoStates(15, 18);
break;
case 15:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 74)
kind = 74;
jjCheckNAddTwoStates(15, 16);
break;
case 16:
if (curChar != 46)
break;
if (kind > 74)
kind = 74;
jjCheckNAdd(17);
break;
case 17:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 74)
kind = 74;
jjCheckNAdd(17);
break;
case 18:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddStates(10, 12);
break;
case 19:
if (curChar == 46)
jjCheckNAddTwoStates(20, 21);
break;
case 20:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(20, 21);
break;
case 22:
if ((0x280000000000L & l) != 0L)
jjCheckNAdd(23);
break;
case 23:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 76)
kind = 76;
jjCheckNAdd(23);
break;
case 24:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 74)
kind = 74;
jjCheckNAddStates(0, 4);
break;
case 25:
if (curChar == 46)
jjCheckNAddTwoStates(26, 27);
break;
case 26:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 74)
kind = 74;
jjCheckNAdd(26);
break;
case 27:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(27, 21);
break;
case 30:
if (curChar == 32)
jjAddStates(13, 14);
break;
case 31:
if (curChar == 39)
jjCheckNAdd(32);
break;
case 32:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(32, 33);
break;
case 33:
if (curChar == 45)
jjCheckNAdd(34);
break;
case 34:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(34, 35);
break;
case 35:
if (curChar == 45)
jjCheckNAdd(36);
break;
case 36:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(36, 37);
break;
case 37:
if (curChar == 39 && kind > 81)
kind = 81;
break;
case 41:
if (curChar == 32)
jjAddStates(15, 16);
break;
case 42:
if (curChar == 39)
jjCheckNAdd(43);
break;
case 43:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(43, 44);
break;
case 44:
if (curChar == 45)
jjCheckNAdd(45);
break;
case 45:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(45, 46);
break;
case 46:
if (curChar == 45)
jjCheckNAdd(47);
break;
case 47:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(47, 48);
break;
case 48:
if (curChar == 39 && kind > 82)
kind = 82;
break;
case 53:
if (curChar == 32)
jjAddStates(17, 18);
break;
case 54:
if (curChar == 39)
jjCheckNAdd(55);
break;
case 55:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(55, 56);
break;
case 56:
if (curChar == 45)
jjCheckNAdd(57);
break;
case 57:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(57, 58);
break;
case 58:
if (curChar == 45)
jjCheckNAdd(59);
break;
case 59:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(59, 60);
break;
case 60:
if (curChar == 32)
jjCheckNAdd(61);
break;
case 61:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(61, 62);
break;
case 62:
if (curChar == 58)
jjCheckNAdd(63);
break;
case 63:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(63, 64);
break;
case 64:
if (curChar == 58)
jjCheckNAdd(65);
break;
case 65:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddStates(19, 23);
break;
case 66:
if (curChar == 46)
jjCheckNAddStates(24, 27);
break;
case 67:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddStates(24, 27);
break;
case 69:
if ((0x280000000000L & l) != 0L)
jjCheckNAdd(70);
break;
case 70:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(70, 71);
break;
case 71:
if (curChar == 58)
jjCheckNAdd(72);
break;
case 72:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(72, 37);
break;
case 81:
if (curChar == 32)
jjAddStates(28, 29);
break;
case 82:
if (curChar == 39)
jjCheckNAdd(83);
break;
case 83:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(83, 84);
break;
case 84:
if (curChar == 45)
jjCheckNAdd(85);
break;
case 85:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(85, 86);
break;
case 86:
if (curChar == 45)
jjCheckNAdd(87);
break;
case 87:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(87, 88);
break;
case 88:
if (curChar == 32)
jjCheckNAdd(89);
break;
case 89:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(89, 90);
break;
case 90:
if (curChar == 58)
jjCheckNAdd(91);
break;
case 91:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(91, 92);
break;
case 92:
if (curChar == 58)
jjCheckNAdd(93);
break;
case 93:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddStates(30, 34);
break;
case 94:
if (curChar == 46)
jjCheckNAddStates(35, 38);
break;
case 95:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddStates(35, 38);
break;
case 97:
if (curChar == 39 && kind > 83)
kind = 83;
break;
case 98:
if ((0x280000000000L & l) != 0L)
jjCheckNAdd(99);
break;
case 99:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(99, 100);
break;
case 100:
if (curChar == 58)
jjCheckNAdd(101);
break;
case 101:
if ((0x3ff000000000000L & l) != 0L)
jjCheckNAddTwoStates(101, 97);
break;
default : break;
}
} while(i != startsAt);
}
else if (curChar < 128)
{
long l = 1L << (curChar & 077);
MatchLoop: do
{
switch(jjstateSet[--i])
{
case 0:
if ((0x7fffffe07fffffeL & l) != 0L)
{
if (kind > 60)
kind = 60;
jjCheckNAddTwoStates(5, 4);
}
if (curChar == 84)
jjAddStates(39, 40);
else if (curChar == 68)
jjAddStates(41, 42);
break;
case 2:
jjAddStates(43, 44);
break;
case 4:
if ((0x7fffffe07fffffeL & l) == 0L)
break;
if (kind > 60)
kind = 60;
jjCheckNAddTwoStates(5, 4);
break;
case 5:
if (curChar != 95)
break;
if (kind > 60)
kind = 60;
jjCheckNAddTwoStates(5, 4);
break;
case 7:
jjAddStates(45, 46);
break;
case 12:
jjAddStates(47, 48);
break;
case 21:
if ((0x2000000020L & l) != 0L)
jjAddStates(49, 50);
break;
case 28:
if (curChar == 68)
jjAddStates(41, 42);
break;
case 29:
if (curChar == 69)
jjstateSet[jjnewStateCnt++] = 30;
break;
case 38:
if (curChar == 84)
jjstateSet[jjnewStateCnt++] = 29;
break;
case 39:
if (curChar == 65)
jjstateSet[jjnewStateCnt++] = 38;
break;
case 40:
if (curChar == 69)
jjstateSet[jjnewStateCnt++] = 41;
break;
case 49:
if (curChar == 84)
jjstateSet[jjnewStateCnt++] = 40;
break;
case 50:
if (curChar == 65)
jjstateSet[jjnewStateCnt++] = 49;
break;
case 51:
if (curChar == 84)
jjAddStates(39, 40);
break;
case 52:
if (curChar == 80)
jjstateSet[jjnewStateCnt++] = 53;
break;
case 60:
if (curChar == 84)
jjstateSet[jjnewStateCnt++] = 61;
break;
case 68:
if (curChar == 90)
jjstateSet[jjnewStateCnt++] = 37;
break;
case 73:
if (curChar == 77)
jjstateSet[jjnewStateCnt++] = 52;
break;
case 74:
if (curChar == 65)
jjstateSet[jjnewStateCnt++] = 73;
break;
case 75:
if (curChar == 84)
jjstateSet[jjnewStateCnt++] = 74;
break;
case 76:
if (curChar == 83)
jjstateSet[jjnewStateCnt++] = 75;
break;
case 77:
if (curChar == 69)
jjstateSet[jjnewStateCnt++] = 76;
break;
case 78:
if (curChar == 77)
jjstateSet[jjnewStateCnt++] = 77;
break;
case 79:
if (curChar == 73)
jjstateSet[jjnewStateCnt++] = 78;
break;
case 80:
if (curChar == 80)
jjstateSet[jjnewStateCnt++] = 81;
break;
case 88:
if (curChar == 84)
jjstateSet[jjnewStateCnt++] = 89;
break;
case 96:
if (curChar == 90)
jjstateSet[jjnewStateCnt++] = 97;
break;
case 102:
if (curChar == 77)
jjstateSet[jjnewStateCnt++] = 80;
break;
case 103:
if (curChar == 65)
jjstateSet[jjnewStateCnt++] = 102;
break;
case 104:
if (curChar == 84)
jjstateSet[jjnewStateCnt++] = 103;
break;
case 105:
if (curChar == 83)
jjstateSet[jjnewStateCnt++] = 104;
break;
case 106:
if (curChar == 69)
jjstateSet[jjnewStateCnt++] = 105;
break;
case 107:
if (curChar == 77)
jjstateSet[jjnewStateCnt++] = 106;
break;
case 108:
if (curChar == 73)
jjstateSet[jjnewStateCnt++] = 107;
break;
default : break;
}
} while(i != startsAt);
}
else
{
int hiByte = (int)(curChar >> 8);
int i1 = hiByte >> 6;
long l1 = 1L << (hiByte & 077);
int i2 = (curChar & 0xff) >> 6;
long l2 = 1L << (curChar & 077);
MatchLoop: do
{
switch(jjstateSet[--i])
{
case 0:
case 4:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
if (kind > 60)
kind = 60;
jjCheckNAddTwoStates(5, 4);
break;
case 2:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
jjAddStates(43, 44);
break;
case 7:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
jjAddStates(45, 46);
break;
case 12:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
jjAddStates(47, 48);
break;
default : break;
}
} while(i != startsAt);
}
if (kind != 0x7fffffff)
{
jjmatchedKind = kind;
jjmatchedPos = curPos;
kind = 0x7fffffff;
}
++curPos;
if ((i = jjnewStateCnt) == (startsAt = 109 - (jjnewStateCnt = startsAt)))
break;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { break; }
}
if (jjmatchedPos > strPos)
return curPos;
int toRet = Math.max(curPos, seenUpto);
if (curPos < toRet)
for (i = toRet - Math.min(curPos, seenUpto); i-- > 0; )
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { throw new Error("Internal Error : Please send a bug report."); }
if (jjmatchedPos < strPos)
{
jjmatchedKind = strKind;
jjmatchedPos = strPos;
}
else if (jjmatchedPos == strPos && jjmatchedKind > strKind)
jjmatchedKind = strKind;
return toRet;
}