private int jjMoveNfa_0()

in qpid-jms-client/src/main/java/org/apache/qpid/jms/selector/parser/SelectorParserImplTokenManager.java [404:786]


    private 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 startsAt = 0;
        jjnewStateCnt = 48;
        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 5:
                            if ((0x3ff000000000000L & l) != 0L)
                                jjCheckNAddStates(0, 3);
                            else if (curChar == 34)
                                jjCheckNAddStates(4, 6);
                            else if (curChar == 36) {
                                if (kind > 25)
                                    kind = 25;
                                jjCheckNAdd(27);
                            } else if (curChar == 39)
                                jjCheckNAddStates(7, 9);
                            else if (curChar == 46)
                                jjCheckNAdd(17);
                            else if (curChar == 47)
                                jjstateSet[jjnewStateCnt++] = 6;
                            else if (curChar == 45)
                                jjstateSet[jjnewStateCnt++] = 0;
                            if ((0x3fe000000000000L & l) != 0L) {
                                if (kind > 19)
                                    kind = 19;
                                jjCheckNAddTwoStates(14, 15);
                            } else if (curChar == 48) {
                                if (kind > 21)
                                    kind = 21;
                                jjCheckNAddTwoStates(45, 47);
                            }
                            break;
                        case 0:
                            if (curChar == 45)
                                jjCheckNAddStates(10, 12);
                            break;
                        case 1:
                            if ((0xffffffffffffdbffL & l) != 0L)
                                jjCheckNAddStates(10, 12);
                            break;
                        case 2:
                            if ((0x2400L & l) != 0L && kind > 6)
                                kind = 6;
                            break;
                        case 3:
                            if (curChar == 10 && kind > 6)
                                kind = 6;
                            break;
                        case 4:
                            if (curChar == 13)
                                jjstateSet[jjnewStateCnt++] = 3;
                            break;
                        case 6:
                            if (curChar == 42)
                                jjCheckNAddTwoStates(7, 8);
                            break;
                        case 7:
                            if ((0xfffffbffffffffffL & l) != 0L)
                                jjCheckNAddTwoStates(7, 8);
                            break;
                        case 8:
                            if (curChar == 42)
                                jjCheckNAddStates(13, 15);
                            break;
                        case 9:
                            if ((0xffff7bffffffffffL & l) != 0L)
                                jjCheckNAddTwoStates(10, 8);
                            break;
                        case 10:
                            if ((0xfffffbffffffffffL & l) != 0L)
                                jjCheckNAddTwoStates(10, 8);
                            break;
                        case 11:
                            if (curChar == 47 && kind > 7)
                                kind = 7;
                            break;
                        case 12:
                            if (curChar == 47)
                                jjstateSet[jjnewStateCnt++] = 6;
                            break;
                        case 13:
                            if ((0x3fe000000000000L & l) == 0L)
                                break;
                            if (kind > 19)
                                kind = 19;
                            jjCheckNAddTwoStates(14, 15);
                            break;
                        case 14:
                            if ((0x3ff000000000000L & l) == 0L)
                                break;
                            if (kind > 19)
                                kind = 19;
                            jjCheckNAddTwoStates(14, 15);
                            break;
                        case 16:
                            if (curChar == 46)
                                jjCheckNAdd(17);
                            break;
                        case 17:
                            if ((0x3ff000000000000L & l) == 0L)
                                break;
                            if (kind > 22)
                                kind = 22;
                            jjCheckNAddTwoStates(17, 18);
                            break;
                        case 19:
                            if ((0x280000000000L & l) != 0L)
                                jjCheckNAdd(20);
                            break;
                        case 20:
                            if ((0x3ff000000000000L & l) == 0L)
                                break;
                            if (kind > 22)
                                kind = 22;
                            jjCheckNAdd(20);
                            break;
                        case 21:
                        case 22:
                            if (curChar == 39)
                                jjCheckNAddStates(7, 9);
                            break;
                        case 23:
                            if (curChar == 39)
                                jjstateSet[jjnewStateCnt++] = 22;
                            break;
                        case 24:
                            if ((0xffffff7fffffffffL & l) != 0L)
                                jjCheckNAddStates(7, 9);
                            break;
                        case 25:
                            if (curChar == 39 && kind > 24)
                                kind = 24;
                            break;
                        case 26:
                            if (curChar != 36)
                                break;
                            if (kind > 25)
                                kind = 25;
                            jjCheckNAdd(27);
                            break;
                        case 27:
                            if ((0x3ff001000000000L & l) == 0L)
                                break;
                            if (kind > 25)
                                kind = 25;
                            jjCheckNAdd(27);
                            break;
                        case 28:
                        case 29:
                            if (curChar == 34)
                                jjCheckNAddStates(4, 6);
                            break;
                        case 30:
                            if (curChar == 34)
                                jjstateSet[jjnewStateCnt++] = 29;
                            break;
                        case 31:
                            if ((0xfffffffbffffffffL & l) != 0L)
                                jjCheckNAddStates(4, 6);
                            break;
                        case 32:
                            if (curChar == 34 && kind > 26)
                                kind = 26;
                            break;
                        case 33:
                            if ((0x3ff000000000000L & l) != 0L)
                                jjCheckNAddStates(0, 3);
                            break;
                        case 34:
                            if ((0x3ff000000000000L & l) != 0L)
                                jjCheckNAddTwoStates(34, 35);
                            break;
                        case 35:
                            if (curChar != 46)
                                break;
                            if (kind > 22)
                                kind = 22;
                            jjCheckNAddTwoStates(36, 37);
                            break;
                        case 36:
                            if ((0x3ff000000000000L & l) == 0L)
                                break;
                            if (kind > 22)
                                kind = 22;
                            jjCheckNAddTwoStates(36, 37);
                            break;
                        case 38:
                            if ((0x280000000000L & l) != 0L)
                                jjCheckNAdd(39);
                            break;
                        case 39:
                            if ((0x3ff000000000000L & l) == 0L)
                                break;
                            if (kind > 22)
                                kind = 22;
                            jjCheckNAdd(39);
                            break;
                        case 40:
                            if ((0x3ff000000000000L & l) != 0L)
                                jjCheckNAddTwoStates(40, 41);
                            break;
                        case 42:
                            if ((0x280000000000L & l) != 0L)
                                jjCheckNAdd(43);
                            break;
                        case 43:
                            if ((0x3ff000000000000L & l) == 0L)
                                break;
                            if (kind > 22)
                                kind = 22;
                            jjCheckNAdd(43);
                            break;
                        case 44:
                            if (curChar != 48)
                                break;
                            if (kind > 21)
                                kind = 21;
                            jjCheckNAddTwoStates(45, 47);
                            break;
                        case 46:
                            if ((0x3ff000000000000L & l) == 0L)
                                break;
                            if (kind > 20)
                                kind = 20;
                            jjstateSet[jjnewStateCnt++] = 46;
                            break;
                        case 47:
                            if ((0xff000000000000L & l) == 0L)
                                break;
                            if (kind > 21)
                                kind = 21;
                            jjCheckNAdd(47);
                            break;
                        default:
                            break;
                    }
                } while (i != startsAt);
            } else if (curChar < 128) {
                long l = 1L << (curChar & 077);
                do {
                    switch (jjstateSet[--i]) {
                        case 5:
                        case 27:
                            if ((0x7fffffe87fffffeL & l) == 0L)
                                break;
                            if (kind > 25)
                                kind = 25;
                            jjCheckNAdd(27);
                            break;
                        case 1:
                            jjAddStates(10, 12);
                            break;
                        case 7:
                            jjCheckNAddTwoStates(7, 8);
                            break;
                        case 9:
                        case 10:
                            jjCheckNAddTwoStates(10, 8);
                            break;
                        case 15:
                            if ((0x100000001000L & l) != 0L && kind > 19)
                                kind = 19;
                            break;
                        case 18:
                            if ((0x2000000020L & l) != 0L)
                                jjAddStates(16, 17);
                            break;
                        case 24:
                            jjAddStates(7, 9);
                            break;
                        case 31:
                            jjAddStates(4, 6);
                            break;
                        case 37:
                            if ((0x2000000020L & l) != 0L)
                                jjAddStates(18, 19);
                            break;
                        case 41:
                            if ((0x2000000020L & l) != 0L)
                                jjAddStates(20, 21);
                            break;
                        case 45:
                            if ((0x100000001000000L & l) != 0L)
                                jjCheckNAdd(46);
                            break;
                        case 46:
                            if ((0x7e0000007eL & l) == 0L)
                                break;
                            if (kind > 20)
                                kind = 20;
                            jjCheckNAdd(46);
                            break;
                        default:
                            break;
                    }
                } while (i != startsAt);
            } else {
                int hiByte = 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 1:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
                                jjAddStates(10, 12);
                            break;
                        case 7:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
                                jjCheckNAddTwoStates(7, 8);
                            break;
                        case 9:
                        case 10:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
                                jjCheckNAddTwoStates(10, 8);
                            break;
                        case 24:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
                                jjAddStates(7, 9);
                            break;
                        case 31:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
                                jjAddStates(4, 6);
                            break;
                        default:
                            break;
                    }
                } while (i != startsAt);
            }
            if (kind != 0x7fffffff) {
                jjmatchedKind = kind;
                jjmatchedPos = curPos;
                kind = 0x7fffffff;
            }
            ++curPos;
            if ((i = jjnewStateCnt) == (startsAt = 48 - (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;
    }