private int jjMoveNfa_0()

in java/org/apache/el/parser/ELParserTokenManager.java [77:296]


    private int jjMoveNfa_0(int startState, int curPos) {
        int startsAt = 0;
        jjnewStateCnt = 8;
        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 7:
                            if ((0xffffffe7ffffffffL & l) != 0L) {
                                if (kind > 1) {
                                    kind = 1;
                                }
                                {
                                    jjCheckNAddStates(0, 4);
                                }
                            } else if ((0x1800000000L & l) != 0L) {
                                if (kind > 1) {
                                    kind = 1;
                                }
                                {
                                    jjCheckNAdd(5);
                                }
                            }
                            if ((0xffffffe7ffffffffL & l) != 0L) {
                                jjCheckNAddTwoStates(0, 1);
                            }
                            break;
                        case 0:
                            if ((0xffffffe7ffffffffL & l) != 0L) {
                                jjCheckNAddTwoStates(0, 1);
                            }
                            break;
                        case 2:
                            if ((0xffffffe7ffffffffL & l) == 0L) {
                                break;
                            }
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(0, 4);
                        }
                            break;
                        case 3:
                            if ((0xffffffe7ffffffffL & l) != 0L) {
                                jjCheckNAddTwoStates(3, 4);
                            }
                            break;
                        case 4:
                            if ((0x1800000000L & l) != 0L) {
                                jjCheckNAdd(5);
                            }
                            break;
                        case 5:
                            if ((0xffffffe7ffffffffL & l) == 0L) {
                                break;
                            }
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(5, 8);
                        }
                            break;
                        case 6:
                            if ((0x1800000000L & l) == 0L) {
                                break;
                            }
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(9, 13);
                        }
                            break;
                        default:
                            break;
                    }
                } while (i != startsAt);
            } else if (curChar < 128) {
                long l = 1L << (curChar & 077);
                do {
                    switch (jjstateSet[--i]) {
                        case 7:
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(0, 4);
                        }
                            if ((0xffffffffefffffffL & l) != 0L) {
                                jjCheckNAddTwoStates(0, 1);
                            } else if (curChar == 92) {
                                if (kind > 1) {
                                    kind = 1;
                                }
                                {
                                    jjCheckNAddStates(14, 17);
                                }
                            }
                            break;
                        case 0:
                            if ((0xffffffffefffffffL & l) != 0L) {
                                jjCheckNAddTwoStates(0, 1);
                            }
                            break;
                        case 1:
                            if (curChar != 92) {
                                break;
                            }
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(14, 17);
                        }
                            break;
                        case 2:
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(0, 4);
                        }
                            break;
                        case 3: {
                            jjCheckNAddTwoStates(3, 4);
                        }
                            break;
                        case 5:
                            if ((0xf7ffffffefffffffL & l) == 0L) {
                                break;
                            }
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(5, 8);
                        }
                            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 7:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                jjCheckNAddTwoStates(0, 1);
                            }
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                if (kind > 1) {
                                    kind = 1;
                                }
                                {
                                    jjCheckNAddStates(0, 4);
                                }
                            }
                            break;
                        case 0:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                jjCheckNAddTwoStates(0, 1);
                            }
                            break;
                        case 2:
                            if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                break;
                            }
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(0, 4);
                        }
                            break;
                        case 3:
                            if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                jjCheckNAddTwoStates(3, 4);
                            }
                            break;
                        case 5:
                            if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                                break;
                            }
                            if (kind > 1) {
                                kind = 1;
                            } {
                            jjCheckNAddStates(5, 8);
                        }
                            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 = 8 - (jjnewStateCnt = startsAt))) {
                return curPos;
            }
            try {
                curChar = input_stream.readChar();
            } catch (java.io.IOException e) {
                return curPos;
            }
        }
    }