+/* Generated By:JavaCC: Do not edit this line. SheetFormulaParserTokenManager.java */
+package org.simantics.spreadsheet.solver.formula.parser;
+import org.simantics.spreadsheet.solver.formula.parser.ast.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collections;
+
+/** Token Manager. */
+public class SheetFormulaParserTokenManager implements SheetFormulaParserConstants
+{
+
+ /** Debug output. */
+ public java.io.PrintStream debugStream = System.out;
+ /** Set debug output. */
+ public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0)
+{
+ switch (pos)
+ {
+ case 0:
+ if ((active0 & 0x30000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ return 82;
+ }
+ if ((active0 & 0xe000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ return 21;
+ }
+ if ((active0 & 0x180000L) != 0L)
+ return 23;
+ if ((active0 & 0x10000L) != 0L)
+ return 27;
+ return -1;
+ case 1:
+ if ((active0 & 0x30000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ jjmatchedPos = 1;
+ return 70;
+ }
+ if ((active0 & 0xe000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ jjmatchedPos = 1;
+ return 21;
+ }
+ return -1;
+ case 2:
+ if ((active0 & 0x30000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ jjmatchedPos = 2;
+ return 83;
+ }
+ if ((active0 & 0xe000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ jjmatchedPos = 2;
+ return 21;
+ }
+ return -1;
+ case 3:
+ if ((active0 & 0x20000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ jjmatchedPos = 3;
+ return 84;
+ }
+ if ((active0 & 0x10000000L) != 0L)
+ return 84;
+ if ((active0 & 0x4000000L) != 0L)
+ {
+ jjmatchedKind = 38;
+ jjmatchedPos = 3;
+ return 21;
+ }
+ if ((active0 & 0xa000000L) != 0L)
+ return 21;
+ return -1;
+ default :
+ return -1;
+ }
+}
+private final int jjStartNfa_0(int pos, long active0)
+{
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private int jjStopAtPos(int pos, int kind)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0()
+{
+ switch(curChar)
+ {
+ case 33:
+ return jjStopAtPos(0, 42);
+ case 35:
+ return jjMoveStringLiteralDfa1_0(0x80000000000L);
+ case 38:
+ return jjStopAtPos(0, 13);
+ case 40:
+ return jjStopAtPos(0, 5);
+ case 41:
+ return jjStopAtPos(0, 6);
+ case 42:
+ return jjStopAtPos(0, 15);
+ case 43:
+ return jjStopAtPos(0, 14);
+ case 44:
+ return jjStopAtPos(0, 18);
+ case 45:
+ return jjStopAtPos(0, 46);
+ case 46:
+ jjmatchedKind = 20;
+ return jjMoveStringLiteralDfa1_0(0x80000L);
+ case 47:
+ return jjStartNfaWithStates_0(0, 16, 27);
+ case 59:
+ return jjStopAtPos(0, 4);
+ case 60:
+ jjmatchedKind = 22;
+ return jjMoveStringLiteralDfa1_0(0x100001000000L);
+ case 61:
+ return jjStopAtPos(0, 21);
+ case 62:
+ jjmatchedKind = 23;
+ return jjMoveStringLiteralDfa1_0(0x200000000000L);
+ case 63:
+ return jjStopAtPos(0, 7);
+ case 70:
+ return jjMoveStringLiteralDfa1_0(0x20000000L);
+ case 84:
+ return jjMoveStringLiteralDfa1_0(0x10000000L);
+ case 91:
+ return jjStopAtPos(0, 8);
+ case 93:
+ return jjStopAtPos(0, 9);
+ case 94:
+ return jjStopAtPos(0, 17);
+ case 102:
+ return jjMoveStringLiteralDfa1_0(0x4000000L);
+ case 110:
+ return jjMoveStringLiteralDfa1_0(0x8000000L);
+ case 116:
+ return jjMoveStringLiteralDfa1_0(0x2000000L);
+ case 123:
+ return jjStopAtPos(0, 10);
+ case 124:
+ return jjStopAtPos(0, 12);
+ case 125:
+ return jjStopAtPos(0, 11);
+ default :
+ return jjMoveNfa_0(0, 0);
+ }
+}
+private int jjMoveStringLiteralDfa1_0(long active0)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0);
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 46:
+ if ((active0 & 0x80000L) != 0L)
+ return jjStopAtPos(1, 19);
+ break;
+ case 61:
+ if ((active0 & 0x100000000000L) != 0L)
+ return jjStopAtPos(1, 44);
+ else if ((active0 & 0x200000000000L) != 0L)
+ return jjStopAtPos(1, 45);
+ break;
+ case 62:
+ if ((active0 & 0x1000000L) != 0L)
+ return jjStopAtPos(1, 24);
+ break;
+ case 65:
+ return jjMoveStringLiteralDfa2_0(active0, 0x20000000L);
+ case 82:
+ return jjMoveStringLiteralDfa2_0(active0, 0x80010000000L);
+ case 97:
+ return jjMoveStringLiteralDfa2_0(active0, 0x4000000L);
+ case 114:
+ return jjMoveStringLiteralDfa2_0(active0, 0x2000000L);
+ case 117:
+ return jjMoveStringLiteralDfa2_0(active0, 0x8000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(0, active0);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(0, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(1, active0);
+ return 2;
+ }
+ switch(curChar)
+ {
+ case 69:
+ return jjMoveStringLiteralDfa3_0(active0, 0x80000000000L);
+ case 76:
+ return jjMoveStringLiteralDfa3_0(active0, 0x20000000L);
+ case 85:
+ return jjMoveStringLiteralDfa3_0(active0, 0x10000000L);
+ case 108:
+ return jjMoveStringLiteralDfa3_0(active0, 0xc000000L);
+ case 117:
+ return jjMoveStringLiteralDfa3_0(active0, 0x2000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(1, active0);
+}
+private int jjMoveStringLiteralDfa3_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(1, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(2, active0);
+ return 3;
+ }
+ switch(curChar)
+ {
+ case 69:
+ if ((active0 & 0x10000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 28, 84);
+ break;
+ case 70:
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000000000L);
+ case 83:
+ return jjMoveStringLiteralDfa4_0(active0, 0x20000000L);
+ case 101:
+ if ((active0 & 0x2000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 25, 21);
+ break;
+ case 108:
+ if ((active0 & 0x8000000L) != 0L)
+ return jjStartNfaWithStates_0(3, 27, 21);
+ break;
+ case 115:
+ return jjMoveStringLiteralDfa4_0(active0, 0x4000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(2, active0);
+}
+private int jjMoveStringLiteralDfa4_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(2, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(3, active0);
+ return 4;
+ }
+ switch(curChar)
+ {
+ case 33:
+ if ((active0 & 0x80000000000L) != 0L)
+ return jjStopAtPos(4, 43);
+ break;
+ case 69:
+ if ((active0 & 0x20000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 29, 85);
+ break;
+ case 101:
+ if ((active0 & 0x4000000L) != 0L)
+ return jjStartNfaWithStates_0(4, 26, 21);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(3, active0);
+}
+private int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_0(state, pos + 1);
+}
+static final long[] jjbitVec0 = {
+ 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec2 = {
+ 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec3 = {
+ 0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x1600000000000000L
+};
+static final long[] jjbitVec4 = {
+ 0x0L, 0x0L, 0xc603c0000000000L, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec5 = {
+ 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec6 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
+};
+static final long[] jjbitVec7 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L
+};
+static final long[] jjbitVec8 = {
+ 0x3fffffffffffL, 0x0L, 0x0L, 0x0L
+};
+static final long[] jjbitVec9 = {
+ 0x7f7ffdff80f8007fL, 0xffffffffffffffdbL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec10 = {
+ 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fff000000ffffffL
+};
+static final long[] jjbitVec11 = {
+ 0x0L, 0xffff000000000000L, 0xffffffffffffffffL, 0x1fffffffffffffffL
+};
+static final long[] jjbitVec12 = {
+ 0x87ffffff80000000L, 0xfffffffe7fffffffL, 0x7fffffffffffffffL, 0x1cfcfcfcL
+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+ int startsAt = 0;
+ jjnewStateCnt = 82;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 84:
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ else if (curChar == 58)
+ jjCheckNAddTwoStates(50, 51);
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 4);
+ else if (curChar == 36)
+ jjCheckNAddTwoStates(49, 62);
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 35)
+ kind = 35;
+ jjstateSet[jjnewStateCnt++] = 39;
+ }
+ else if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 38;
+ break;
+ case 70:
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ else if (curChar == 58)
+ jjCheckNAddTwoStates(50, 51);
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 4);
+ else if (curChar == 36)
+ jjCheckNAddTwoStates(49, 62);
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 35)
+ kind = 35;
+ jjstateSet[jjnewStateCnt++] = 39;
+ }
+ else if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 38;
+ break;
+ case 85:
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ else if (curChar == 58)
+ jjCheckNAddTwoStates(50, 51);
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 4);
+ else if (curChar == 36)
+ jjCheckNAddTwoStates(49, 62);
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 35)
+ kind = 35;
+ jjstateSet[jjnewStateCnt++] = 39;
+ }
+ else if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 38;
+ break;
+ case 83:
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ else if (curChar == 58)
+ jjCheckNAddTwoStates(50, 51);
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 4);
+ else if (curChar == 36)
+ jjCheckNAddTwoStates(49, 62);
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 35)
+ kind = 35;
+ jjstateSet[jjnewStateCnt++] = 39;
+ }
+ else if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 38;
+ break;
+ case 82:
+ if ((0x3ff001000000000L & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ else if (curChar == 58)
+ jjCheckNAddTwoStates(50, 51);
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 4);
+ else if (curChar == 36)
+ jjCheckNAddTwoStates(49, 62);
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 35)
+ kind = 35;
+ jjstateSet[jjnewStateCnt++] = 39;
+ }
+ else if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 38;
+ break;
+ case 27:
+ if (curChar == 47)
+ {
+ if (kind > 3)
+ kind = 3;
+ jjCheckNAdd(34);
+ }
+ else if (curChar == 42)
+ jjCheckNAddStates(5, 7);
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 41)
+ kind = 41;
+ jjCheckNAddStates(8, 12);
+ }
+ else if ((0x100002600L & l) != 0L)
+ {
+ if (kind > 1)
+ kind = 1;
+ }
+ else if (curChar == 36)
+ jjAddStates(13, 14);
+ else if (curChar == 47)
+ jjAddStates(15, 16);
+ else if (curChar == 46)
+ jjCheckNAdd(23);
+ else if (curChar == 34)
+ jjstateSet[jjnewStateCnt++] = 18;
+ else if (curChar == 39)
+ jjCheckNAddStates(17, 19);
+ if (curChar == 36)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ else if (curChar == 34)
+ jjCheckNAddStates(20, 22);
+ break;
+ case 1:
+ if (curChar == 34)
+ jjCheckNAddStates(20, 22);
+ break;
+ case 2:
+ if ((0xfffffffbfffffbffL & l) != 0L)
+ jjCheckNAddStates(20, 22);
+ break;
+ case 4:
+ if ((0xfffffffffffffbffL & l) != 0L)
+ jjCheckNAddStates(20, 22);
+ break;
+ case 5:
+ if (curChar == 34 && kind > 32)
+ kind = 32;
+ break;
+ case 6:
+ if (curChar == 39)
+ jjCheckNAddStates(17, 19);
+ break;
+ case 7:
+ if ((0xffffff7ffffffbffL & l) != 0L)
+ jjCheckNAddStates(17, 19);
+ break;
+ case 9:
+ if ((0xfffffffffffffbffL & l) != 0L)
+ jjCheckNAddStates(17, 19);
+ break;
+ case 10:
+ if (curChar == 39 && kind > 33)
+ kind = 33;
+ break;
+ case 11:
+ if (curChar == 34)
+ jjCheckNAddStates(23, 25);
+ break;
+ case 12:
+ if ((0xfffffffbffffffffL & l) != 0L)
+ jjCheckNAddStates(23, 25);
+ break;
+ case 13:
+ case 15:
+ if (curChar == 34)
+ jjCheckNAdd(12);
+ break;
+ case 14:
+ if (curChar == 34)
+ jjAddStates(26, 27);
+ break;
+ case 16:
+ if (curChar == 34 && kind > 34)
+ kind = 34;
+ break;
+ case 17:
+ if (curChar == 34)
+ jjstateSet[jjnewStateCnt++] = 16;
+ break;
+ case 18:
+ if (curChar == 34)
+ jjstateSet[jjnewStateCnt++] = 11;
+ break;
+ case 19:
+ if (curChar == 34)
+ jjstateSet[jjnewStateCnt++] = 18;
+ break;
+ case 20:
+ if (curChar != 36)
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 21:
+ if ((0x3ff001000000000L & l) == 0L)
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 22:
+ if (curChar == 46)
+ jjCheckNAdd(23);
+ break;
+ case 23:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 40)
+ kind = 40;
+ jjCheckNAddTwoStates(23, 24);
+ break;
+ case 25:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 40)
+ kind = 40;
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 26:
+ if (curChar == 47)
+ jjAddStates(15, 16);
+ break;
+ case 28:
+ if ((0xfffffbffffffffffL & l) != 0L)
+ jjCheckNAddStates(5, 7);
+ break;
+ case 29:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 30;
+ break;
+ case 30:
+ if ((0xffff7fffffffffffL & l) != 0L)
+ jjCheckNAddStates(5, 7);
+ break;
+ case 31:
+ if (curChar == 47 && kind > 2)
+ kind = 2;
+ break;
+ case 32:
+ if (curChar == 42)
+ jjstateSet[jjnewStateCnt++] = 31;
+ break;
+ case 33:
+ if (curChar != 47)
+ break;
+ if (kind > 3)
+ kind = 3;
+ jjCheckNAdd(34);
+ break;
+ case 34:
+ if ((0xfffffffffffffbffL & l) == 0L)
+ break;
+ if (kind > 3)
+ kind = 3;
+ jjCheckNAdd(34);
+ break;
+ case 35:
+ if (curChar == 36)
+ jjAddStates(13, 14);
+ break;
+ case 37:
+ if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 38;
+ break;
+ case 38:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 35)
+ kind = 35;
+ jjstateSet[jjnewStateCnt++] = 39;
+ break;
+ case 39:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 35)
+ kind = 35;
+ jjCheckNAddStates(28, 30);
+ break;
+ case 40:
+ if ((0x3ff000000000000L & l) != 0L && kind > 35)
+ kind = 35;
+ break;
+ case 41:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 35)
+ kind = 35;
+ jjCheckNAdd(40);
+ break;
+ case 42:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 35)
+ kind = 35;
+ jjCheckNAddTwoStates(40, 41);
+ break;
+ case 48:
+ if (curChar == 36)
+ jjCheckNAddTwoStates(49, 62);
+ break;
+ case 49:
+ if (curChar == 58)
+ jjCheckNAddTwoStates(50, 51);
+ break;
+ case 50:
+ if (curChar == 36)
+ jjCheckNAdd(51);
+ break;
+ case 52:
+ if (curChar != 36)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjstateSet[jjnewStateCnt++] = 53;
+ break;
+ case 53:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddStates(31, 34);
+ break;
+ case 54:
+ if ((0x3ff000000000000L & l) != 0L && kind > 37)
+ kind = 37;
+ break;
+ case 55:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAdd(54);
+ break;
+ case 56:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddTwoStates(54, 55);
+ break;
+ case 57:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddStates(35, 37);
+ break;
+ case 62:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 4);
+ break;
+ case 63:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAdd(49);
+ break;
+ case 64:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(63, 49);
+ break;
+ case 65:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(38, 40);
+ break;
+ case 66:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(41, 44);
+ break;
+ case 72:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 41)
+ kind = 41;
+ jjCheckNAddStates(8, 12);
+ break;
+ case 73:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(73, 74);
+ break;
+ case 74:
+ if (curChar == 46)
+ jjCheckNAdd(75);
+ break;
+ case 75:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 40)
+ kind = 40;
+ jjCheckNAddTwoStates(75, 76);
+ break;
+ case 77:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 40)
+ kind = 40;
+ jjstateSet[jjnewStateCnt++] = 77;
+ break;
+ case 78:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(78, 79);
+ break;
+ case 80:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 40)
+ kind = 40;
+ jjstateSet[jjnewStateCnt++] = 80;
+ break;
+ case 81:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 41)
+ kind = 41;
+ jjCheckNAdd(81);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 84:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(45, 47);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddTwoStates(37, 38);
+ break;
+ case 70:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(48, 51);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(52, 54);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(55, 59);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(60, 63);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(45, 47);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddTwoStates(37, 38);
+ break;
+ case 85:
+ case 21:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 83:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(52, 54);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(60, 63);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(45, 47);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddTwoStates(37, 38);
+ break;
+ case 82:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(64, 68);
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(69, 74);
+ break;
+ case 0:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ {
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ }
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(75, 81);
+ break;
+ case 2:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(20, 22);
+ break;
+ case 3:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 4;
+ break;
+ case 4:
+ jjCheckNAddStates(20, 22);
+ break;
+ case 7:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(17, 19);
+ break;
+ case 8:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 9;
+ break;
+ case 9:
+ jjCheckNAddStates(17, 19);
+ break;
+ case 12:
+ jjAddStates(23, 25);
+ break;
+ case 20:
+ if ((0x7fffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 24:
+ if ((0x2000000020L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 28:
+ case 30:
+ jjCheckNAddStates(5, 7);
+ break;
+ case 34:
+ if (kind > 3)
+ kind = 3;
+ jjstateSet[jjnewStateCnt++] = 34;
+ break;
+ case 36:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(82, 84);
+ break;
+ case 43:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(64, 68);
+ break;
+ case 44:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddTwoStates(37, 38);
+ break;
+ case 45:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(52, 54);
+ break;
+ case 46:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(48, 51);
+ break;
+ case 47:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(85, 88);
+ break;
+ case 51:
+ if ((0x7fffffeL & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddStates(89, 91);
+ break;
+ case 58:
+ if ((0x7fffffeL & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddStates(92, 96);
+ break;
+ case 59:
+ if ((0x7fffffeL & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddTwoStates(52, 53);
+ break;
+ case 60:
+ if ((0x7fffffeL & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddStates(97, 99);
+ break;
+ case 61:
+ if ((0x7fffffeL & l) == 0L)
+ break;
+ if (kind > 37)
+ kind = 37;
+ jjCheckNAddStates(100, 103);
+ break;
+ case 67:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(69, 74);
+ break;
+ case 68:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(45, 47);
+ break;
+ case 69:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(60, 63);
+ break;
+ case 71:
+ if ((0x7fffffeL & l) != 0L)
+ jjCheckNAddStates(75, 81);
+ break;
+ case 76:
+ if ((0x2000000020L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 77;
+ break;
+ case 79:
+ if ((0x2000000020L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 80;
+ 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);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 84:
+ case 21:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 70:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 85:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 83:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 82:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 0:
+ if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 38)
+ kind = 38;
+ jjCheckNAdd(21);
+ break;
+ case 2:
+ case 4:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(20, 22);
+ break;
+ case 7:
+ case 9:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(17, 19);
+ break;
+ case 12:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(23, 25);
+ break;
+ case 28:
+ case 30:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(5, 7);
+ break;
+ case 34:
+ if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+ break;
+ if (kind > 3)
+ kind = 3;
+ jjstateSet[jjnewStateCnt++] = 34;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 82 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
+static final int[] jjnextStates = {
+ 63, 49, 64, 65, 66, 28, 29, 32, 73, 74, 78, 79, 81, 36, 47, 27,
+ 33, 7, 8, 10, 2, 3, 5, 12, 13, 14, 15, 17, 40, 41, 42, 54,
+ 55, 56, 57, 54, 55, 56, 63, 49, 64, 63, 49, 64, 65, 48, 49, 62,
+ 44, 37, 38, 45, 44, 37, 38, 68, 48, 49, 62, 69, 68, 48, 49, 62,
+ 44, 37, 38, 45, 46, 68, 48, 49, 62, 69, 70, 37, 38, 48, 49, 62,
+ 67, 43, 37, 38, 43, 48, 49, 62, 67, 52, 53, 58, 59, 52, 53, 60,
+ 61, 59, 52, 53, 59, 52, 53, 60,
+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec2[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec0[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec4[i2] & l2) != 0L);
+ case 48:
+ return ((jjbitVec5[i2] & l2) != 0L);
+ case 49:
+ return ((jjbitVec6[i2] & l2) != 0L);
+ case 51:
+ return ((jjbitVec7[i2] & l2) != 0L);
+ case 61:
+ return ((jjbitVec8[i2] & l2) != 0L);
+ case 251:
+ return ((jjbitVec9[i2] & l2) != 0L);
+ case 253:
+ return ((jjbitVec10[i2] & l2) != 0L);
+ case 254:
+ return ((jjbitVec11[i2] & l2) != 0L);
+ case 255:
+ return ((jjbitVec12[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec3[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, null, null, "\73", "\50", "\51", "\77", "\133", "\135", "\173",
+"\175", "\174", "\46", "\53", "\52", "\57", "\136", "\54", "\56\56", "\56", "\75",
+"\74", "\76", "\74\76", "\164\162\165\145", "\146\141\154\163\145",
+"\156\165\154\154", "\124\122\125\105", "\106\101\114\123\105", null, null, null, null, null, null,
+null, null, null, null, null, null, "\41", "\43\122\105\106\41", "\74\75", "\76\75",
+"\55", };
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+ "DEFAULT",
+};
+static final long[] jjtoToken = {
+ 0x7f6f3ffffff1L,
+};
+static final long[] jjtoSkip = {
+ 0xeL,
+};
+protected SimpleCharStream input_stream;
+private final int[] jjrounds = new int[82];
+private final int[] jjstateSet = new int[164];
+private final StringBuilder jjimage = new StringBuilder();
+private StringBuilder image = jjimage;
+private int jjimageLen;
+private int lengthOfMatch;
+protected char curChar;
+/** Constructor. */
+public SheetFormulaParserTokenManager(SimpleCharStream stream){
+ if (SimpleCharStream.staticFlag)
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+ input_stream = stream;
+}
+
+/** Constructor. */
+public SheetFormulaParserTokenManager(SimpleCharStream stream, int lexState){
+ this(stream);
+ SwitchTo(lexState);
+}
+
+/** Reinitialise parser. */
+public void ReInit(SimpleCharStream stream)
+{
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+}
+private void ReInitRounds()
+{
+ int i;
+ jjround = 0x80000001;
+ for (i = 82; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+}
+
+/** Reinitialise parser. */
+public void ReInit(SimpleCharStream stream, int lexState)
+{
+ ReInit(stream);
+ SwitchTo(lexState);
+}
+
+/** Switch to specified lex state. */
+public void SwitchTo(int lexState)
+{
+ if (lexState >= 1 || lexState < 0)
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+}
+
+protected Token jjFillToken()
+{
+ final Token t;
+ final String curTokenImage;
+ final int beginLine;
+ final int endLine;
+ final int beginColumn;
+ final int endColumn;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ curTokenImage = (im == null) ? input_stream.GetImage() : im;
+ beginLine = input_stream.getBeginLine();
+ beginColumn = input_stream.getBeginColumn();
+ endLine = input_stream.getEndLine();
+ endColumn = input_stream.getEndColumn();
+ t = Token.newToken(jjmatchedKind, curTokenImage);
+
+ t.beginLine = beginLine;
+ t.endLine = endLine;
+ t.beginColumn = beginColumn;
+ t.endColumn = endColumn;
+
+ return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken()
+{
+ Token matchedToken;
+ int curPos = 0;
+
+ EOFLoop :
+ for (;;)
+ {
+ try
+ {
+ curChar = input_stream.BeginToken();
+ }
+ catch(java.io.IOException e)
+ {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ return matchedToken;
+ }
+ image = jjimage;
+ image.setLength(0);
+ jjimageLen = 0;
+
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ if (jjmatchedKind != 0x7fffffff)
+ {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ matchedToken = jjFillToken();
+ TokenLexicalActions(matchedToken);
+ return matchedToken;
+ }
+ else
+ {
+ continue EOFLoop;
+ }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try { input_stream.readChar(); input_stream.backup(1); }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ }
+ else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+}
+
+void TokenLexicalActions(Token matchedToken)
+{
+ switch(jjmatchedKind)
+ {
+ case 32 :
+ image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
+ matchedToken.image = SheetParserUtils.unescape(
+ matchedToken.image.substring(1,matchedToken.image.length()-1));
+ break;
+ case 33 :
+ image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
+ matchedToken.image = SheetParserUtils.unescape(
+ matchedToken.image.substring(1,matchedToken.image.length()-1));
+ break;
+ case 34 :
+ image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
+ matchedToken.image = matchedToken.image.substring(3,matchedToken.image.length()-3);
+ break;
+ default :
+ break;
+ }
+}
+private void jjCheckNAdd(int state)
+{
+ if (jjrounds[state] != jjround)
+ {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+}
+private void jjAddStates(int start, int end)
+{
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+}
+
+}