1227 lines
36 KiB
Java
1227 lines
36 KiB
Java
package org.nfunk.jep;
|
||
|
||
import java.io.IOException;
|
||
import java.io.PrintStream;
|
||
|
||
public class ParserTokenManager implements ParserConstants {
|
||
public PrintStream debugStream = System.out;
|
||
|
||
static final long[] jjbitVec0 = new long[] { -2L, -1L, -1L, -1L };
|
||
|
||
static final long[] jjbitVec2 = new long[] { 0L, 0L, -1L, -1L };
|
||
|
||
static final long[] jjbitVec3 = new long[] { 2301339413881290750L, -16384L, 4294967295L, 432345564227567616L };
|
||
|
||
static final long[] jjbitVec4 = new long[] { 0L, 0L, 0L, -36028797027352577L };
|
||
|
||
static final long[] jjbitVec5 = new long[] { 0L, -1L, -1L, -1L };
|
||
|
||
static final long[] jjbitVec6 = new long[] { -1L, -1L, 65535L, 0L };
|
||
|
||
static final long[] jjbitVec7 = new long[] { -1L, -1L, 0L, 0L };
|
||
|
||
static final long[] jjbitVec8 = new long[] { 70368744177663L, 0L, 0L, 0L };
|
||
|
||
static final int[] jjnextStates = new int[] {
|
||
14, 15, 17, 25, 26, 27, 32, 33, 13, 18,
|
||
6, 7, 9, 21, 23, 3, 4, 30, 31, 34,
|
||
35 };
|
||
|
||
public static final String[] jjstrLiteralImages = new String[] {
|
||
"", null, null, null, null, null, null, null, null, null,
|
||
null, null, null, null, null, null, null, null, "=", ";",
|
||
",", ">", "<", "==", "<=", ">=", "!=", "&&", "||", "+",
|
||
"-", "*", ".", "/", "%", "!", "^", "^^", "[", "]",
|
||
"(", ")" };
|
||
|
||
public static final String[] lexStateNames = new String[] { "NO_DOT_IN_IDENTIFIERS", "DEFAULT" };
|
||
|
||
public static final int[] jjnewLexState = new int[] {
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1 };
|
||
|
||
static final long[] jjtoToken = new long[] { 4398046288513L };
|
||
|
||
static final long[] jjtoSkip = new long[] { 126L };
|
||
|
||
protected JavaCharStream input_stream;
|
||
|
||
private final int[] jjrounds = new int[36];
|
||
|
||
private final int[] jjstateSet = new int[72];
|
||
|
||
protected char curChar;
|
||
|
||
int curLexState = 1;
|
||
|
||
int defaultLexState = 1;
|
||
|
||
int jjnewStateCnt;
|
||
|
||
int jjround;
|
||
|
||
int jjmatchedPos;
|
||
|
||
int jjmatchedKind;
|
||
|
||
public void setDebugStream(PrintStream paramPrintStream) {
|
||
this.debugStream = paramPrintStream;
|
||
}
|
||
|
||
private final int jjStopStringLiteralDfa_1(int paramInt, long paramLong) {
|
||
switch (paramInt) {
|
||
case 0:
|
||
return ((paramLong & 0x100000000L) != 0L) ? 1 : (((paramLong & 0x200000000L) != 0L) ? 13 : -1);
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
private final int jjStartNfa_1(int paramInt, long paramLong) {
|
||
return jjMoveNfa_1(jjStopStringLiteralDfa_1(paramInt, paramLong), paramInt + 1);
|
||
}
|
||
|
||
private final int jjStopAtPos(int paramInt1, int paramInt2) {
|
||
this.jjmatchedKind = paramInt2;
|
||
this.jjmatchedPos = paramInt1;
|
||
return paramInt1 + 1;
|
||
}
|
||
|
||
private final int jjStartNfaWithStates_1(int paramInt1, int paramInt2, int paramInt3) {
|
||
this.jjmatchedKind = paramInt2;
|
||
this.jjmatchedPos = paramInt1;
|
||
try {
|
||
this.curChar = this.input_stream.readChar();
|
||
} catch (IOException iOException) {
|
||
return paramInt1 + 1;
|
||
}
|
||
return jjMoveNfa_1(paramInt3, paramInt1 + 1);
|
||
}
|
||
|
||
private final int jjMoveStringLiteralDfa0_1() {
|
||
switch (this.curChar) {
|
||
case '!':
|
||
this.jjmatchedKind = 35;
|
||
return jjMoveStringLiteralDfa1_1(67108864L);
|
||
case '%':
|
||
return jjStopAtPos(0, 34);
|
||
case '&':
|
||
return jjMoveStringLiteralDfa1_1(134217728L);
|
||
case '(':
|
||
return jjStopAtPos(0, 40);
|
||
case ')':
|
||
return jjStopAtPos(0, 41);
|
||
case '*':
|
||
return jjStopAtPos(0, 31);
|
||
case '+':
|
||
return jjStopAtPos(0, 29);
|
||
case ',':
|
||
return jjStopAtPos(0, 20);
|
||
case '-':
|
||
return jjStopAtPos(0, 30);
|
||
case '.':
|
||
return jjStartNfaWithStates_1(0, 32, 1);
|
||
case '/':
|
||
return jjStartNfaWithStates_1(0, 33, 13);
|
||
case ';':
|
||
return jjStopAtPos(0, 19);
|
||
case '<':
|
||
this.jjmatchedKind = 22;
|
||
return jjMoveStringLiteralDfa1_1(16777216L);
|
||
case '=':
|
||
this.jjmatchedKind = 18;
|
||
return jjMoveStringLiteralDfa1_1(8388608L);
|
||
case '>':
|
||
this.jjmatchedKind = 21;
|
||
return jjMoveStringLiteralDfa1_1(33554432L);
|
||
case '[':
|
||
return jjStopAtPos(0, 38);
|
||
case ']':
|
||
return jjStopAtPos(0, 39);
|
||
case '^':
|
||
this.jjmatchedKind = 36;
|
||
return jjMoveStringLiteralDfa1_1(137438953472L);
|
||
case '|':
|
||
return jjMoveStringLiteralDfa1_1(268435456L);
|
||
}
|
||
return jjMoveNfa_1(0, 0);
|
||
}
|
||
|
||
private final int jjMoveStringLiteralDfa1_1(long paramLong) {
|
||
try {
|
||
this.curChar = this.input_stream.readChar();
|
||
} catch (IOException iOException) {
|
||
jjStopStringLiteralDfa_1(0, paramLong);
|
||
return 1;
|
||
}
|
||
switch (this.curChar) {
|
||
case '&':
|
||
if ((paramLong & 0x8000000L) != 0L)
|
||
return jjStopAtPos(1, 27);
|
||
break;
|
||
case '=':
|
||
if ((paramLong & 0x800000L) != 0L)
|
||
return jjStopAtPos(1, 23);
|
||
if ((paramLong & 0x1000000L) != 0L)
|
||
return jjStopAtPos(1, 24);
|
||
if ((paramLong & 0x2000000L) != 0L)
|
||
return jjStopAtPos(1, 25);
|
||
if ((paramLong & 0x4000000L) != 0L)
|
||
return jjStopAtPos(1, 26);
|
||
break;
|
||
case '^':
|
||
if ((paramLong & 0x2000000000L) != 0L)
|
||
return jjStopAtPos(1, 37);
|
||
break;
|
||
case '|':
|
||
if ((paramLong & 0x10000000L) != 0L)
|
||
return jjStopAtPos(1, 28);
|
||
break;
|
||
}
|
||
return jjStartNfa_1(0, paramLong);
|
||
}
|
||
|
||
private final void jjCheckNAdd(int paramInt) {
|
||
if (this.jjrounds[paramInt] != this.jjround) {
|
||
this.jjstateSet[this.jjnewStateCnt++] = paramInt;
|
||
this.jjrounds[paramInt] = this.jjround;
|
||
}
|
||
}
|
||
|
||
private final void jjAddStates(int paramInt1, int paramInt2) {
|
||
do {
|
||
this.jjstateSet[this.jjnewStateCnt++] = jjnextStates[paramInt1];
|
||
} while (paramInt1++ != paramInt2);
|
||
}
|
||
|
||
private final void jjCheckNAddTwoStates(int paramInt1, int paramInt2) {
|
||
jjCheckNAdd(paramInt1);
|
||
jjCheckNAdd(paramInt2);
|
||
}
|
||
|
||
private final void jjCheckNAddStates(int paramInt1, int paramInt2) {
|
||
do {
|
||
jjCheckNAdd(jjnextStates[paramInt1]);
|
||
} while (paramInt1++ != paramInt2);
|
||
}
|
||
|
||
private final void jjCheckNAddStates(int paramInt) {
|
||
jjCheckNAdd(jjnextStates[paramInt]);
|
||
jjCheckNAdd(jjnextStates[paramInt + 1]);
|
||
}
|
||
|
||
private final int jjMoveNfa_1(int paramInt1, int paramInt2) {
|
||
int i = 0;
|
||
this.jjnewStateCnt = 36;
|
||
int j = 1;
|
||
this.jjstateSet[0] = paramInt1;
|
||
int k = Integer.MAX_VALUE;
|
||
while (true) {
|
||
if (++this.jjround == Integer.MAX_VALUE)
|
||
ReInitRounds();
|
||
if (this.curChar < '@') {
|
||
long l = 1L << this.curChar;
|
||
do {
|
||
switch (this.jjstateSet[--j]) {
|
||
case 13:
|
||
if (this.curChar == '*') {
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
}
|
||
if (this.curChar == '/')
|
||
jjCheckNAddStates(0, 2);
|
||
break;
|
||
case 0:
|
||
if ((0x3FF000000000000L & l) != 0L) {
|
||
if (k > 7)
|
||
k = 7;
|
||
jjCheckNAddStates(3, 7);
|
||
break;
|
||
}
|
||
if (this.curChar == '/') {
|
||
jjAddStates(8, 9);
|
||
break;
|
||
}
|
||
if (this.curChar == '$') {
|
||
if (k > 12)
|
||
k = 12;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
}
|
||
if (this.curChar == '"') {
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
}
|
||
if (this.curChar == '.')
|
||
jjCheckNAdd(1);
|
||
break;
|
||
case 1:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAddTwoStates(1, 2);
|
||
break;
|
||
case 3:
|
||
if ((0x280000000000L & l) != 0L)
|
||
jjCheckNAdd(4);
|
||
break;
|
||
case 4:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAdd(4);
|
||
break;
|
||
case 5:
|
||
if (this.curChar == '"')
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 6:
|
||
if ((0xFFFFFFFBFFFFDBFFL & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 8:
|
||
if ((0x8400000000L & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 9:
|
||
if (this.curChar == '"' && k > 11)
|
||
k = 11;
|
||
break;
|
||
case 10:
|
||
if (this.curChar != '$')
|
||
break;
|
||
if (k > 12)
|
||
k = 12;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 11:
|
||
if ((0x3FF401000000000L & l) == 0L)
|
||
break;
|
||
if (k > 12)
|
||
k = 12;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 12:
|
||
if (this.curChar == '/')
|
||
jjAddStates(8, 9);
|
||
break;
|
||
case 14:
|
||
if ((0xFFFFFFFFFFFFDBFFL & l) != 0L)
|
||
jjCheckNAddStates(0, 2);
|
||
break;
|
||
case 15:
|
||
if ((0x2400L & l) != 0L && k > 5)
|
||
k = 5;
|
||
break;
|
||
case 16:
|
||
if (this.curChar == '\n' && k > 5)
|
||
k = 5;
|
||
break;
|
||
case 17:
|
||
if (this.curChar == '\r')
|
||
this.jjstateSet[this.jjnewStateCnt++] = 16;
|
||
break;
|
||
case 18:
|
||
if (this.curChar == '*')
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 19:
|
||
if ((0xFFFFFBFFFFFFFFFFL & l) != 0L)
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 20:
|
||
if (this.curChar == '*')
|
||
jjAddStates(13, 14);
|
||
break;
|
||
case 21:
|
||
if ((0xFFFF7FFFFFFFFFFFL & l) != 0L)
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
case 22:
|
||
if ((0xFFFFFBFFFFFFFFFFL & l) != 0L)
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
case 23:
|
||
if (this.curChar == '/' && k > 6)
|
||
k = 6;
|
||
break;
|
||
case 24:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 7)
|
||
k = 7;
|
||
jjCheckNAddStates(3, 7);
|
||
break;
|
||
case 25:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 7)
|
||
k = 7;
|
||
jjCheckNAdd(25);
|
||
break;
|
||
case 26:
|
||
if ((0x3FF000000000000L & l) != 0L)
|
||
jjCheckNAddTwoStates(26, 27);
|
||
break;
|
||
case 27:
|
||
if (this.curChar != '.')
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAddTwoStates(28, 29);
|
||
break;
|
||
case 28:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAddTwoStates(28, 29);
|
||
break;
|
||
case 30:
|
||
if ((0x280000000000L & l) != 0L)
|
||
jjCheckNAdd(31);
|
||
break;
|
||
case 31:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAdd(31);
|
||
break;
|
||
case 32:
|
||
if ((0x3FF000000000000L & l) != 0L)
|
||
jjCheckNAddTwoStates(32, 33);
|
||
break;
|
||
case 34:
|
||
if ((0x280000000000L & l) != 0L)
|
||
jjCheckNAdd(35);
|
||
break;
|
||
case 35:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAdd(35);
|
||
break;
|
||
}
|
||
} while (j != i);
|
||
} else if (this.curChar < '') {
|
||
long l = 1L << (this.curChar & 0x3F);
|
||
do {
|
||
switch (this.jjstateSet[--j]) {
|
||
case 0:
|
||
case 11:
|
||
if ((0x7FFFFFE87FFFFFEL & l) == 0L)
|
||
break;
|
||
if (k > 12)
|
||
k = 12;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 2:
|
||
if ((0x2000000020L & l) != 0L)
|
||
jjAddStates(15, 16);
|
||
break;
|
||
case 6:
|
||
if ((0xFFFFFFFFEFFFFFFFL & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 7:
|
||
if (this.curChar == '\\')
|
||
this.jjstateSet[this.jjnewStateCnt++] = 8;
|
||
break;
|
||
case 8:
|
||
if ((0x14404410000000L & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 14:
|
||
jjAddStates(0, 2);
|
||
break;
|
||
case 19:
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 21:
|
||
case 22:
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
case 29:
|
||
if ((0x2000000020L & l) != 0L)
|
||
jjAddStates(17, 18);
|
||
break;
|
||
case 33:
|
||
if ((0x2000000020L & l) != 0L)
|
||
jjAddStates(19, 20);
|
||
break;
|
||
}
|
||
} while (j != i);
|
||
} else {
|
||
int m = this.curChar >> 8;
|
||
int n = m >> 6;
|
||
long l1 = 1L << (m & 0x3F);
|
||
int i1 = (this.curChar & 0xFF) >> 6;
|
||
long l2 = 1L << (this.curChar & 0x3F);
|
||
do {
|
||
switch (this.jjstateSet[--j]) {
|
||
case 0:
|
||
case 11:
|
||
if (!jjCanMove_1(m, n, i1, l1, l2))
|
||
break;
|
||
if (k > 12)
|
||
k = 12;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 6:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjAddStates(10, 12);
|
||
break;
|
||
case 14:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjAddStates(0, 2);
|
||
break;
|
||
case 19:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 21:
|
||
case 22:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
}
|
||
} while (j != i);
|
||
}
|
||
if (k != Integer.MAX_VALUE) {
|
||
this.jjmatchedKind = k;
|
||
this.jjmatchedPos = paramInt2;
|
||
k = Integer.MAX_VALUE;
|
||
}
|
||
paramInt2++;
|
||
if ((j = this.jjnewStateCnt) == (i = 36 - (this.jjnewStateCnt = i)))
|
||
return paramInt2;
|
||
try {
|
||
this.curChar = this.input_stream.readChar();
|
||
} catch (IOException iOException) {
|
||
return paramInt2;
|
||
}
|
||
}
|
||
}
|
||
|
||
private final int jjStopStringLiteralDfa_0(int paramInt, long paramLong) {
|
||
switch (paramInt) {
|
||
case 0:
|
||
return ((paramLong & 0x100000000L) != 0L) ? 1 : (((paramLong & 0x200000000L) != 0L) ? 13 : -1);
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
private final int jjStartNfa_0(int paramInt, long paramLong) {
|
||
return jjMoveNfa_0(jjStopStringLiteralDfa_0(paramInt, paramLong), paramInt + 1);
|
||
}
|
||
|
||
private final int jjStartNfaWithStates_0(int paramInt1, int paramInt2, int paramInt3) {
|
||
this.jjmatchedKind = paramInt2;
|
||
this.jjmatchedPos = paramInt1;
|
||
try {
|
||
this.curChar = this.input_stream.readChar();
|
||
} catch (IOException iOException) {
|
||
return paramInt1 + 1;
|
||
}
|
||
return jjMoveNfa_0(paramInt3, paramInt1 + 1);
|
||
}
|
||
|
||
private final int jjMoveStringLiteralDfa0_0() {
|
||
switch (this.curChar) {
|
||
case '!':
|
||
this.jjmatchedKind = 35;
|
||
return jjMoveStringLiteralDfa1_0(67108864L);
|
||
case '%':
|
||
return jjStopAtPos(0, 34);
|
||
case '&':
|
||
return jjMoveStringLiteralDfa1_0(134217728L);
|
||
case '(':
|
||
return jjStopAtPos(0, 40);
|
||
case ')':
|
||
return jjStopAtPos(0, 41);
|
||
case '*':
|
||
return jjStopAtPos(0, 31);
|
||
case '+':
|
||
return jjStopAtPos(0, 29);
|
||
case ',':
|
||
return jjStopAtPos(0, 20);
|
||
case '-':
|
||
return jjStopAtPos(0, 30);
|
||
case '.':
|
||
return jjStartNfaWithStates_0(0, 32, 1);
|
||
case '/':
|
||
return jjStartNfaWithStates_0(0, 33, 13);
|
||
case ';':
|
||
return jjStopAtPos(0, 19);
|
||
case '<':
|
||
this.jjmatchedKind = 22;
|
||
return jjMoveStringLiteralDfa1_0(16777216L);
|
||
case '=':
|
||
this.jjmatchedKind = 18;
|
||
return jjMoveStringLiteralDfa1_0(8388608L);
|
||
case '>':
|
||
this.jjmatchedKind = 21;
|
||
return jjMoveStringLiteralDfa1_0(33554432L);
|
||
case '[':
|
||
return jjStopAtPos(0, 38);
|
||
case ']':
|
||
return jjStopAtPos(0, 39);
|
||
case '^':
|
||
this.jjmatchedKind = 36;
|
||
return jjMoveStringLiteralDfa1_0(137438953472L);
|
||
case '|':
|
||
return jjMoveStringLiteralDfa1_0(268435456L);
|
||
}
|
||
return jjMoveNfa_0(0, 0);
|
||
}
|
||
|
||
private final int jjMoveStringLiteralDfa1_0(long paramLong) {
|
||
try {
|
||
this.curChar = this.input_stream.readChar();
|
||
} catch (IOException iOException) {
|
||
jjStopStringLiteralDfa_0(0, paramLong);
|
||
return 1;
|
||
}
|
||
switch (this.curChar) {
|
||
case '&':
|
||
if ((paramLong & 0x8000000L) != 0L)
|
||
return jjStopAtPos(1, 27);
|
||
break;
|
||
case '=':
|
||
if ((paramLong & 0x800000L) != 0L)
|
||
return jjStopAtPos(1, 23);
|
||
if ((paramLong & 0x1000000L) != 0L)
|
||
return jjStopAtPos(1, 24);
|
||
if ((paramLong & 0x2000000L) != 0L)
|
||
return jjStopAtPos(1, 25);
|
||
if ((paramLong & 0x4000000L) != 0L)
|
||
return jjStopAtPos(1, 26);
|
||
break;
|
||
case '^':
|
||
if ((paramLong & 0x2000000000L) != 0L)
|
||
return jjStopAtPos(1, 37);
|
||
break;
|
||
case '|':
|
||
if ((paramLong & 0x10000000L) != 0L)
|
||
return jjStopAtPos(1, 28);
|
||
break;
|
||
}
|
||
return jjStartNfa_0(0, paramLong);
|
||
}
|
||
|
||
private final int jjMoveNfa_0(int paramInt1, int paramInt2) {
|
||
int i = 0;
|
||
this.jjnewStateCnt = 36;
|
||
int j = 1;
|
||
this.jjstateSet[0] = paramInt1;
|
||
int k = Integer.MAX_VALUE;
|
||
while (true) {
|
||
if (++this.jjround == Integer.MAX_VALUE)
|
||
ReInitRounds();
|
||
if (this.curChar < '@') {
|
||
long l = 1L << this.curChar;
|
||
do {
|
||
switch (this.jjstateSet[--j]) {
|
||
case 13:
|
||
if (this.curChar == '*') {
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
}
|
||
if (this.curChar == '/')
|
||
jjCheckNAddStates(0, 2);
|
||
break;
|
||
case 0:
|
||
if ((0x3FF000000000000L & l) != 0L) {
|
||
if (k > 7)
|
||
k = 7;
|
||
jjCheckNAddStates(3, 7);
|
||
break;
|
||
}
|
||
if (this.curChar == '/') {
|
||
jjAddStates(8, 9);
|
||
break;
|
||
}
|
||
if (this.curChar == '$') {
|
||
if (k > 15)
|
||
k = 15;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
}
|
||
if (this.curChar == '"') {
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
}
|
||
if (this.curChar == '.')
|
||
jjCheckNAdd(1);
|
||
break;
|
||
case 1:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAddTwoStates(1, 2);
|
||
break;
|
||
case 3:
|
||
if ((0x280000000000L & l) != 0L)
|
||
jjCheckNAdd(4);
|
||
break;
|
||
case 4:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAdd(4);
|
||
break;
|
||
case 5:
|
||
if (this.curChar == '"')
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 6:
|
||
if ((0xFFFFFFFBFFFFDBFFL & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 8:
|
||
if ((0x8400000000L & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 9:
|
||
if (this.curChar == '"' && k > 11)
|
||
k = 11;
|
||
break;
|
||
case 10:
|
||
if (this.curChar != '$')
|
||
break;
|
||
if (k > 15)
|
||
k = 15;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 11:
|
||
if ((0x3FF001000000000L & l) == 0L)
|
||
break;
|
||
if (k > 15)
|
||
k = 15;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 12:
|
||
if (this.curChar == '/')
|
||
jjAddStates(8, 9);
|
||
break;
|
||
case 14:
|
||
if ((0xFFFFFFFFFFFFDBFFL & l) != 0L)
|
||
jjCheckNAddStates(0, 2);
|
||
break;
|
||
case 15:
|
||
if ((0x2400L & l) != 0L && k > 5)
|
||
k = 5;
|
||
break;
|
||
case 16:
|
||
if (this.curChar == '\n' && k > 5)
|
||
k = 5;
|
||
break;
|
||
case 17:
|
||
if (this.curChar == '\r')
|
||
this.jjstateSet[this.jjnewStateCnt++] = 16;
|
||
break;
|
||
case 18:
|
||
if (this.curChar == '*')
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 19:
|
||
if ((0xFFFFFBFFFFFFFFFFL & l) != 0L)
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 20:
|
||
if (this.curChar == '*')
|
||
jjAddStates(13, 14);
|
||
break;
|
||
case 21:
|
||
if ((0xFFFF7FFFFFFFFFFFL & l) != 0L)
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
case 22:
|
||
if ((0xFFFFFBFFFFFFFFFFL & l) != 0L)
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
case 23:
|
||
if (this.curChar == '/' && k > 6)
|
||
k = 6;
|
||
break;
|
||
case 24:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 7)
|
||
k = 7;
|
||
jjCheckNAddStates(3, 7);
|
||
break;
|
||
case 25:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 7)
|
||
k = 7;
|
||
jjCheckNAdd(25);
|
||
break;
|
||
case 26:
|
||
if ((0x3FF000000000000L & l) != 0L)
|
||
jjCheckNAddTwoStates(26, 27);
|
||
break;
|
||
case 27:
|
||
if (this.curChar != '.')
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAddTwoStates(28, 29);
|
||
break;
|
||
case 28:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAddTwoStates(28, 29);
|
||
break;
|
||
case 30:
|
||
if ((0x280000000000L & l) != 0L)
|
||
jjCheckNAdd(31);
|
||
break;
|
||
case 31:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAdd(31);
|
||
break;
|
||
case 32:
|
||
if ((0x3FF000000000000L & l) != 0L)
|
||
jjCheckNAddTwoStates(32, 33);
|
||
break;
|
||
case 34:
|
||
if ((0x280000000000L & l) != 0L)
|
||
jjCheckNAdd(35);
|
||
break;
|
||
case 35:
|
||
if ((0x3FF000000000000L & l) == 0L)
|
||
break;
|
||
if (k > 9)
|
||
k = 9;
|
||
jjCheckNAdd(35);
|
||
break;
|
||
}
|
||
} while (j != i);
|
||
} else if (this.curChar < '') {
|
||
long l = 1L << (this.curChar & 0x3F);
|
||
do {
|
||
switch (this.jjstateSet[--j]) {
|
||
case 0:
|
||
case 11:
|
||
if ((0x7FFFFFE87FFFFFEL & l) == 0L)
|
||
break;
|
||
if (k > 15)
|
||
k = 15;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 2:
|
||
if ((0x2000000020L & l) != 0L)
|
||
jjAddStates(15, 16);
|
||
break;
|
||
case 6:
|
||
if ((0xFFFFFFFFEFFFFFFFL & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 7:
|
||
if (this.curChar == '\\')
|
||
this.jjstateSet[this.jjnewStateCnt++] = 8;
|
||
break;
|
||
case 8:
|
||
if ((0x14404410000000L & l) != 0L)
|
||
jjCheckNAddStates(10, 12);
|
||
break;
|
||
case 14:
|
||
jjAddStates(0, 2);
|
||
break;
|
||
case 19:
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 21:
|
||
case 22:
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
case 29:
|
||
if ((0x2000000020L & l) != 0L)
|
||
jjAddStates(17, 18);
|
||
break;
|
||
case 33:
|
||
if ((0x2000000020L & l) != 0L)
|
||
jjAddStates(19, 20);
|
||
break;
|
||
}
|
||
} while (j != i);
|
||
} else {
|
||
int m = this.curChar >> 8;
|
||
int n = m >> 6;
|
||
long l1 = 1L << (m & 0x3F);
|
||
int i1 = (this.curChar & 0xFF) >> 6;
|
||
long l2 = 1L << (this.curChar & 0x3F);
|
||
do {
|
||
switch (this.jjstateSet[--j]) {
|
||
case 0:
|
||
case 11:
|
||
if (!jjCanMove_1(m, n, i1, l1, l2))
|
||
break;
|
||
if (k > 15)
|
||
k = 15;
|
||
jjCheckNAdd(11);
|
||
break;
|
||
case 6:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjAddStates(10, 12);
|
||
break;
|
||
case 14:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjAddStates(0, 2);
|
||
break;
|
||
case 19:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjCheckNAddTwoStates(19, 20);
|
||
break;
|
||
case 21:
|
||
case 22:
|
||
if (jjCanMove_0(m, n, i1, l1, l2))
|
||
jjCheckNAddTwoStates(22, 20);
|
||
break;
|
||
}
|
||
} while (j != i);
|
||
}
|
||
if (k != Integer.MAX_VALUE) {
|
||
this.jjmatchedKind = k;
|
||
this.jjmatchedPos = paramInt2;
|
||
k = Integer.MAX_VALUE;
|
||
}
|
||
paramInt2++;
|
||
if ((j = this.jjnewStateCnt) == (i = 36 - (this.jjnewStateCnt = i)))
|
||
return paramInt2;
|
||
try {
|
||
this.curChar = this.input_stream.readChar();
|
||
} catch (IOException iOException) {
|
||
return paramInt2;
|
||
}
|
||
}
|
||
}
|
||
|
||
private static final boolean jjCanMove_0(int paramInt1, int paramInt2, int paramInt3, long paramLong1, long paramLong2) {
|
||
switch (paramInt1) {
|
||
case 0:
|
||
return ((jjbitVec2[paramInt3] & paramLong2) != 0L);
|
||
}
|
||
return ((jjbitVec0[paramInt2] & paramLong1) != 0L);
|
||
}
|
||
|
||
private static final boolean jjCanMove_1(int paramInt1, int paramInt2, int paramInt3, long paramLong1, long paramLong2) {
|
||
switch (paramInt1) {
|
||
case 0:
|
||
return ((jjbitVec4[paramInt3] & paramLong2) != 0L);
|
||
case 48:
|
||
return ((jjbitVec5[paramInt3] & paramLong2) != 0L);
|
||
case 49:
|
||
return ((jjbitVec6[paramInt3] & paramLong2) != 0L);
|
||
case 51:
|
||
return ((jjbitVec7[paramInt3] & paramLong2) != 0L);
|
||
case 61:
|
||
return ((jjbitVec8[paramInt3] & paramLong2) != 0L);
|
||
}
|
||
return ((jjbitVec3[paramInt2] & paramLong1) != 0L);
|
||
}
|
||
|
||
public ParserTokenManager(JavaCharStream paramJavaCharStream) {
|
||
this.input_stream = paramJavaCharStream;
|
||
}
|
||
|
||
public ParserTokenManager(JavaCharStream paramJavaCharStream, int paramInt) {
|
||
this(paramJavaCharStream);
|
||
SwitchTo(paramInt);
|
||
}
|
||
|
||
public void ReInit(JavaCharStream paramJavaCharStream) {
|
||
this.jjmatchedPos = this.jjnewStateCnt = 0;
|
||
this.curLexState = this.defaultLexState;
|
||
this.input_stream = paramJavaCharStream;
|
||
ReInitRounds();
|
||
}
|
||
|
||
private final void ReInitRounds() {
|
||
this.jjround = -2147483647;
|
||
int i = 36;
|
||
while (i-- > 0)
|
||
this.jjrounds[i] = Integer.MIN_VALUE;
|
||
}
|
||
|
||
public void ReInit(JavaCharStream paramJavaCharStream, int paramInt) {
|
||
ReInit(paramJavaCharStream);
|
||
SwitchTo(paramInt);
|
||
}
|
||
|
||
public void SwitchTo(int paramInt) {
|
||
if (paramInt >= 2 || paramInt < 0)
|
||
throw new TokenMgrError("Error: Ignoring invalid lexical state : " + paramInt + ". State unchanged.", 2);
|
||
this.curLexState = paramInt;
|
||
}
|
||
|
||
protected Token jjFillToken() {
|
||
Token token = Token.newToken(this.jjmatchedKind);
|
||
token.kind = this.jjmatchedKind;
|
||
String str = jjstrLiteralImages[this.jjmatchedKind];
|
||
token.image = (str == null) ? this.input_stream.GetImage() : str;
|
||
token.beginLine = this.input_stream.getBeginLine();
|
||
token.beginColumn = this.input_stream.getBeginColumn();
|
||
token.endLine = this.input_stream.getEndLine();
|
||
token.endColumn = this.input_stream.getEndColumn();
|
||
return token;
|
||
}
|
||
|
||
public Token getNextToken() {
|
||
// Byte code:
|
||
// 0: aconst_null
|
||
// 1: astore_2
|
||
// 2: iconst_0
|
||
// 3: istore #4
|
||
// 5: aload_0
|
||
// 6: aload_0
|
||
// 7: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 10: invokevirtual BeginToken : ()C
|
||
// 13: putfield curChar : C
|
||
// 16: goto -> 33
|
||
// 19: astore #5
|
||
// 21: aload_0
|
||
// 22: iconst_0
|
||
// 23: putfield jjmatchedKind : I
|
||
// 26: aload_0
|
||
// 27: invokevirtual jjFillToken : ()Lorg/nfunk/jep/Token;
|
||
// 30: astore_3
|
||
// 31: aload_3
|
||
// 32: areturn
|
||
// 33: aload_0
|
||
// 34: getfield curLexState : I
|
||
// 37: lookupswitch default -> 209, 0 -> 64, 1 -> 138
|
||
// 64: aload_0
|
||
// 65: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 68: iconst_0
|
||
// 69: invokevirtual backup : (I)V
|
||
// 72: aload_0
|
||
// 73: getfield curChar : C
|
||
// 76: bipush #32
|
||
// 78: if_icmpgt -> 110
|
||
// 81: ldc2_w 4294977024
|
||
// 84: lconst_1
|
||
// 85: aload_0
|
||
// 86: getfield curChar : C
|
||
// 89: lshl
|
||
// 90: land
|
||
// 91: lconst_0
|
||
// 92: lcmp
|
||
// 93: ifeq -> 110
|
||
// 96: aload_0
|
||
// 97: aload_0
|
||
// 98: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 101: invokevirtual BeginToken : ()C
|
||
// 104: putfield curChar : C
|
||
// 107: goto -> 72
|
||
// 110: goto -> 118
|
||
// 113: astore #5
|
||
// 115: goto -> 5
|
||
// 118: aload_0
|
||
// 119: ldc 2147483647
|
||
// 121: putfield jjmatchedKind : I
|
||
// 124: aload_0
|
||
// 125: iconst_0
|
||
// 126: putfield jjmatchedPos : I
|
||
// 129: aload_0
|
||
// 130: invokespecial jjMoveStringLiteralDfa0_0 : ()I
|
||
// 133: istore #4
|
||
// 135: goto -> 209
|
||
// 138: aload_0
|
||
// 139: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 142: iconst_0
|
||
// 143: invokevirtual backup : (I)V
|
||
// 146: aload_0
|
||
// 147: getfield curChar : C
|
||
// 150: bipush #32
|
||
// 152: if_icmpgt -> 184
|
||
// 155: ldc2_w 4294977024
|
||
// 158: lconst_1
|
||
// 159: aload_0
|
||
// 160: getfield curChar : C
|
||
// 163: lshl
|
||
// 164: land
|
||
// 165: lconst_0
|
||
// 166: lcmp
|
||
// 167: ifeq -> 184
|
||
// 170: aload_0
|
||
// 171: aload_0
|
||
// 172: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 175: invokevirtual BeginToken : ()C
|
||
// 178: putfield curChar : C
|
||
// 181: goto -> 146
|
||
// 184: goto -> 192
|
||
// 187: astore #5
|
||
// 189: goto -> 5
|
||
// 192: aload_0
|
||
// 193: ldc 2147483647
|
||
// 195: putfield jjmatchedKind : I
|
||
// 198: aload_0
|
||
// 199: iconst_0
|
||
// 200: putfield jjmatchedPos : I
|
||
// 203: aload_0
|
||
// 204: invokespecial jjMoveStringLiteralDfa0_1 : ()I
|
||
// 207: istore #4
|
||
// 209: aload_0
|
||
// 210: getfield jjmatchedKind : I
|
||
// 213: ldc 2147483647
|
||
// 215: if_icmpeq -> 329
|
||
// 218: aload_0
|
||
// 219: getfield jjmatchedPos : I
|
||
// 222: iconst_1
|
||
// 223: iadd
|
||
// 224: iload #4
|
||
// 226: if_icmpge -> 245
|
||
// 229: aload_0
|
||
// 230: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 233: iload #4
|
||
// 235: aload_0
|
||
// 236: getfield jjmatchedPos : I
|
||
// 239: isub
|
||
// 240: iconst_1
|
||
// 241: isub
|
||
// 242: invokevirtual backup : (I)V
|
||
// 245: getstatic org/nfunk/jep/ParserTokenManager.jjtoToken : [J
|
||
// 248: aload_0
|
||
// 249: getfield jjmatchedKind : I
|
||
// 252: bipush #6
|
||
// 254: ishr
|
||
// 255: laload
|
||
// 256: lconst_1
|
||
// 257: aload_0
|
||
// 258: getfield jjmatchedKind : I
|
||
// 261: bipush #63
|
||
// 263: iand
|
||
// 264: lshl
|
||
// 265: land
|
||
// 266: lconst_0
|
||
// 267: lcmp
|
||
// 268: ifeq -> 302
|
||
// 271: aload_0
|
||
// 272: invokevirtual jjFillToken : ()Lorg/nfunk/jep/Token;
|
||
// 275: astore_3
|
||
// 276: getstatic org/nfunk/jep/ParserTokenManager.jjnewLexState : [I
|
||
// 279: aload_0
|
||
// 280: getfield jjmatchedKind : I
|
||
// 283: iaload
|
||
// 284: iconst_m1
|
||
// 285: if_icmpeq -> 300
|
||
// 288: aload_0
|
||
// 289: getstatic org/nfunk/jep/ParserTokenManager.jjnewLexState : [I
|
||
// 292: aload_0
|
||
// 293: getfield jjmatchedKind : I
|
||
// 296: iaload
|
||
// 297: putfield curLexState : I
|
||
// 300: aload_3
|
||
// 301: areturn
|
||
// 302: getstatic org/nfunk/jep/ParserTokenManager.jjnewLexState : [I
|
||
// 305: aload_0
|
||
// 306: getfield jjmatchedKind : I
|
||
// 309: iaload
|
||
// 310: iconst_m1
|
||
// 311: if_icmpeq -> 5
|
||
// 314: aload_0
|
||
// 315: getstatic org/nfunk/jep/ParserTokenManager.jjnewLexState : [I
|
||
// 318: aload_0
|
||
// 319: getfield jjmatchedKind : I
|
||
// 322: iaload
|
||
// 323: putfield curLexState : I
|
||
// 326: goto -> 5
|
||
// 329: aload_0
|
||
// 330: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 333: invokevirtual getEndLine : ()I
|
||
// 336: istore #5
|
||
// 338: aload_0
|
||
// 339: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 342: invokevirtual getEndColumn : ()I
|
||
// 345: istore #6
|
||
// 347: aconst_null
|
||
// 348: astore #7
|
||
// 350: iconst_0
|
||
// 351: istore #8
|
||
// 353: aload_0
|
||
// 354: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 357: invokevirtual readChar : ()C
|
||
// 360: pop
|
||
// 361: aload_0
|
||
// 362: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 365: iconst_1
|
||
// 366: invokevirtual backup : (I)V
|
||
// 369: goto -> 427
|
||
// 372: astore #9
|
||
// 374: iconst_1
|
||
// 375: istore #8
|
||
// 377: iload #4
|
||
// 379: iconst_1
|
||
// 380: if_icmpgt -> 388
|
||
// 383: ldc ''
|
||
// 385: goto -> 395
|
||
// 388: aload_0
|
||
// 389: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 392: invokevirtual GetImage : ()Ljava/lang/String;
|
||
// 395: astore #7
|
||
// 397: aload_0
|
||
// 398: getfield curChar : C
|
||
// 401: bipush #10
|
||
// 403: if_icmpeq -> 415
|
||
// 406: aload_0
|
||
// 407: getfield curChar : C
|
||
// 410: bipush #13
|
||
// 412: if_icmpne -> 424
|
||
// 415: iinc #5, 1
|
||
// 418: iconst_0
|
||
// 419: istore #6
|
||
// 421: goto -> 427
|
||
// 424: iinc #6, 1
|
||
// 427: iload #8
|
||
// 429: ifne -> 460
|
||
// 432: aload_0
|
||
// 433: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 436: iconst_1
|
||
// 437: invokevirtual backup : (I)V
|
||
// 440: iload #4
|
||
// 442: iconst_1
|
||
// 443: if_icmpgt -> 451
|
||
// 446: ldc ''
|
||
// 448: goto -> 458
|
||
// 451: aload_0
|
||
// 452: getfield input_stream : Lorg/nfunk/jep/JavaCharStream;
|
||
// 455: invokevirtual GetImage : ()Ljava/lang/String;
|
||
// 458: astore #7
|
||
// 460: new org/nfunk/jep/TokenMgrError
|
||
// 463: dup
|
||
// 464: iload #8
|
||
// 466: aload_0
|
||
// 467: getfield curLexState : I
|
||
// 470: iload #5
|
||
// 472: iload #6
|
||
// 474: aload #7
|
||
// 476: aload_0
|
||
// 477: getfield curChar : C
|
||
// 480: iconst_0
|
||
// 481: invokespecial <init> : (ZIIILjava/lang/String;CI)V
|
||
// 484: athrow
|
||
// Exception table:
|
||
// from to target type
|
||
// 5 16 19 java/io/IOException
|
||
// 64 110 113 java/io/IOException
|
||
// 138 184 187 java/io/IOException
|
||
// 353 369 372 java/io/IOException
|
||
}
|
||
}
|