private int jjMoveNfa_2()

in java/org/apache/el/parser/ELParserTokenManager.java [880:1305]


    private int jjMoveNfa_2(int startState, int curPos) {
        int startsAt = 0;
        jjnewStateCnt = 30;
        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 0:
                            if ((0x3ff000000000000L & l) != 0L) {
                                if (kind > 10) {
                                    kind = 10;
                                }
                                {
                                    jjCheckNAddStates(18, 22);
                                }
                            } else if ((0x1800000000L & l) != 0L) {
                                if (kind > 56) {
                                    kind = 56;
                                }
                                {
                                    jjCheckNAddTwoStates(28, 29);
                                }
                            } else if (curChar == 39) {
                                jjCheckNAddStates(23, 25);
                            } else if (curChar == 34) {
                                jjCheckNAddStates(26, 28);
                            } else if (curChar == 46) {
                                jjCheckNAdd(1);
                            }
                            break;
                        case 30:
                            if ((0x3ff00100fffc1ffL & l) != 0L) {
                                if (kind > 57) {
                                    kind = 57;
                                }
                                {
                                    jjCheckNAdd(29);
                                }
                            }
                            if ((0x3ff00100fffc1ffL & l) != 0L) {
                                if (kind > 56) {
                                    kind = 56;
                                }
                                {
                                    jjCheckNAdd(28);
                                }
                            }
                            break;
                        case 1:
                            if ((0x3ff000000000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 11) {
                                kind = 11;
                            } {
                            jjCheckNAddTwoStates(1, 2);
                        }
                            break;
                        case 3:
                            if ((0x280000000000L & l) != 0L) {
                                jjCheckNAdd(4);
                            }
                            break;
                        case 4:
                            if ((0x3ff000000000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 11) {
                                kind = 11;
                            } {
                            jjCheckNAdd(4);
                        }
                            break;
                        case 5:
                            if (curChar == 34) {
                                jjCheckNAddStates(26, 28);
                            }
                            break;
                        case 6:
                            if ((0xfffffffbffffffffL & l) != 0L) {
                                jjCheckNAddStates(26, 28);
                            }
                            break;
                        case 8:
                            if ((0x8400000000L & l) != 0L) {
                                jjCheckNAddStates(26, 28);
                            }
                            break;
                        case 9:
                            if (curChar == 34 && kind > 13) {
                                kind = 13;
                            }
                            break;
                        case 10:
                            if (curChar == 39) {
                                jjCheckNAddStates(23, 25);
                            }
                            break;
                        case 11:
                            if ((0xffffff7fffffffffL & l) != 0L) {
                                jjCheckNAddStates(23, 25);
                            }
                            break;
                        case 13:
                            if ((0x8400000000L & l) != 0L) {
                                jjCheckNAddStates(23, 25);
                            }
                            break;
                        case 14:
                            if (curChar == 39 && kind > 13) {
                                kind = 13;
                            }
                            break;
                        case 15:
                            if ((0x3ff000000000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 10) {
                                kind = 10;
                            } {
                            jjCheckNAddStates(18, 22);
                        }
                            break;
                        case 16:
                            if ((0x3ff000000000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 10) {
                                kind = 10;
                            } {
                            jjCheckNAdd(16);
                        }
                            break;
                        case 17:
                            if ((0x3ff000000000000L & l) != 0L) {
                                jjCheckNAddTwoStates(17, 18);
                            }
                            break;
                        case 18:
                            if (curChar != 46) {
                                break;
                            }
                            if (kind > 11) {
                                kind = 11;
                            } {
                            jjCheckNAddTwoStates(19, 20);
                        }
                            break;
                        case 19:
                            if ((0x3ff000000000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 11) {
                                kind = 11;
                            } {
                            jjCheckNAddTwoStates(19, 20);
                        }
                            break;
                        case 21:
                            if ((0x280000000000L & l) != 0L) {
                                jjCheckNAdd(22);
                            }
                            break;
                        case 22:
                            if ((0x3ff000000000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 11) {
                                kind = 11;
                            } {
                            jjCheckNAdd(22);
                        }
                            break;
                        case 23:
                            if ((0x3ff000000000000L & l) != 0L) {
                                jjCheckNAddTwoStates(23, 24);
                            }
                            break;
                        case 25:
                            if ((0x280000000000L & l) != 0L) {
                                jjCheckNAdd(26);
                            }
                            break;
                        case 26:
                            if ((0x3ff000000000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 11) {
                                kind = 11;
                            } {
                            jjCheckNAdd(26);
                        }
                            break;
                        case 27:
                            if ((0x1800000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 56) {
                                kind = 56;
                            } {
                            jjCheckNAddTwoStates(28, 29);
                        }
                            break;
                        case 28:
                            if ((0x3ff00100fffc1ffL & l) == 0L) {
                                break;
                            }
                            if (kind > 56) {
                                kind = 56;
                            } {
                            jjCheckNAdd(28);
                        }
                            break;
                        case 29:
                            if ((0x3ff00100fffc1ffL & l) == 0L) {
                                break;
                            }
                            if (kind > 57) {
                                kind = 57;
                            } {
                            jjCheckNAdd(29);
                        }
                            break;
                        default:
                            break;
                    }
                } while (i != startsAt);
            } else if (curChar < 128) {
                long l = 1L << (curChar & 077);
                do {
                    switch (jjstateSet[--i]) {
                        case 0:
                            if ((0x7fffffe87fffffeL & l) == 0L) {
                                break;
                            }
                            if (kind > 56) {
                                kind = 56;
                            } {
                            jjCheckNAddTwoStates(28, 29);
                        }
                            break;
                        case 30:
                            if ((0x87fffffe87fffffeL & l) != 0L) {
                                if (kind > 57) {
                                    kind = 57;
                                }
                                {
                                    jjCheckNAdd(29);
                                }
                            }
                            if ((0x87fffffe87fffffeL & l) != 0L) {
                                if (kind > 56) {
                                    kind = 56;
                                }
                                {
                                    jjCheckNAdd(28);
                                }
                            }
                            break;
                        case 2:
                            if ((0x2000000020L & l) != 0L) {
                                jjAddStates(29, 30);
                            }
                            break;
                        case 6:
                            if ((0xffffffffefffffffL & l) != 0L) {
                                jjCheckNAddStates(26, 28);
                            }
                            break;
                        case 7:
                            if (curChar == 92) {
                                jjstateSet[jjnewStateCnt++] = 8;
                            }
                            break;
                        case 8:
                            if (curChar == 92) {
                                jjCheckNAddStates(26, 28);
                            }
                            break;
                        case 11:
                            if ((0xffffffffefffffffL & l) != 0L) {
                                jjCheckNAddStates(23, 25);
                            }
                            break;
                        case 12:
                            if (curChar == 92) {
                                jjstateSet[jjnewStateCnt++] = 13;
                            }
                            break;
                        case 13:
                            if (curChar == 92) {
                                jjCheckNAddStates(23, 25);
                            }
                            break;
                        case 20:
                            if ((0x2000000020L & l) != 0L) {
                                jjAddStates(31, 32);
                            }
                            break;
                        case 24:
                            if ((0x2000000020L & l) != 0L) {
                                jjAddStates(33, 34);
                            }
                            break;
                        case 28:
                            if ((0x87fffffe87fffffeL & l) == 0L) {
                                break;
                            }
                            if (kind > 56) {
                                kind = 56;
                            } {
                            jjCheckNAdd(28);
                        }
                            break;
                        case 29:
                            if ((0x87fffffe87fffffeL & l) == 0L) {
                                break;
                            }
                            if (kind > 57) {
                                kind = 57;
                            } {
                            jjCheckNAdd(29);
                        }
                            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 0:
                            if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) {
                                break;
                            }
                            if (kind > 56) {
                                kind = 56;
                            } {
                            jjCheckNAddTwoStates(28, 29);
                        }
                            break;
                        case 30:
                            if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
                                if (kind > 56) {
                                    kind = 56;
                                }
                                {
                                    jjCheckNAdd(28);
                                }
                            }
                            if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
                                if (kind > 57) {
                                    kind = 57;
                                }
                                {
                                    jjCheckNAdd(29);
                                }
                            }
                            break;
                        case 6:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                jjAddStates(26, 28);
                            }
                            break;
                        case 11:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                jjAddStates(23, 25);
                            }
                            break;
                        case 28:
                            if (!jjCanMove_2(hiByte, i1, i2, l1, l2)) {
                                break;
                            }
                            if (kind > 56) {
                                kind = 56;
                            } {
                            jjCheckNAdd(28);
                        }
                            break;
                        case 29:
                            if (!jjCanMove_2(hiByte, i1, i2, l1, l2)) {
                                break;
                            }
                            if (kind > 57) {
                                kind = 57;
                            } {
                            jjCheckNAdd(29);
                        }
                            break;
                        default:
                            if (i1 == 0 || l1 == 0 || i2 == 0 || l2 == 0) {
                                break;
                            } else {
                                break;
                            }
                    }
                } while (i != startsAt);
            }
            if (kind != 0x7fffffff) {
                jjmatchedKind = kind;
                jjmatchedPos = curPos;
                kind = 0x7fffffff;
            }
            ++curPos;
            if ((i = jjnewStateCnt) == (startsAt = 30 - (jjnewStateCnt = startsAt))) {
                return curPos;
            }
            try {
                curChar = input_stream.readChar();
            } catch (java.io.IOException e) {
                return curPos;
            }
        }
    }