private final int jjMoveNfa_0()

in ti/phase2/jars/core/src/java/org/apache/ti/script/el/parser/NetUIELParserTokenManager.java [157:249]


    private final int jjMoveNfa_0(int startState, int curPos) {
        int[] nextStates;
        int startsAt = 0;
        jjnewStateCnt = 4;
        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 2:
                        case 0:
                            kind = 1;
                            jjCheckNAdd(0);
                            break;
                        default :
                            break;
                    }
                } while (i != startsAt);
            } else if (curChar < 128) {
                long l = 1L << (curChar & 077);
                MatchLoop: do {
                    switch (jjstateSet[--i]) {
                        case 2:
                            if ((0xf7ffffffefffffffL & l) != 0L) {
                                if (kind > 1)
                                    kind = 1;
                                jjCheckNAdd(0);
                            } else if (curChar == 92) {
                                if (kind > 1)
                                    kind = 1;
                            }
                            if (curChar == 92)
                                jjstateSet[jjnewStateCnt++] = 1;
                            break;
                        case 0:
                            if ((0xf7ffffffefffffffL & l) == 0L)
                                break;
                            kind = 1;
                            jjCheckNAdd(0);
                            break;
                        case 1:
                            if (curChar == 123)
                                kind = 1;
                            break;
                        case 3:
                            if (curChar == 92 && kind > 1)
                                kind = 1;
                            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 2:
                        case 0:
                            if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
                                break;
                            if (kind > 1)
                                kind = 1;
                            jjCheckNAdd(0);
                            break;
                        default :
                            break;
                    }
                } while (i != startsAt);
            }
            if (kind != 0x7fffffff) {
                jjmatchedKind = kind;
                jjmatchedPos = curPos;
                kind = 0x7fffffff;
            }
            ++curPos;
            if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt)))
                return curPos;
            try {
                curChar = input_stream.readChar();
            } catch (java.io.IOException e) {
                return curPos;
            }
        }
    }