private int jjMoveNfa_0()

in src/main/java/org/apache/commons/jxpath/ri/parser/XPathParserTokenManager.java [325:520]


    private int jjMoveNfa_0(final int startState, int curPos) {
        int startsAt = 0;
        jjnewStateCnt = 13;
        int i = 1;
        jjstateSet[0] = startState;
        int kind = 0x7fffffff;
        for (;;) {
            if (++jjround == 0x7fffffff) {
                ReInitRounds();
            }
            if (curChar < 64) {
                final long l = 1L << curChar;
                MatchLoop: do {
                    switch (jjstateSet[--i]) {
                    case 0:
                        if ((0x3ff000000000000L & l) != 0L) {
                            if (kind > 20) {
                                kind = 20;
                            }
                            jjCheckNAddTwoStates(6, 7);
                        } else {
                            switch (curChar) {
                            case 46:
                                jjCheckNAdd(10);
                                break;
                            case 39:
                                jjCheckNAddTwoStates(4, 5);
                                break;
                            case 34:
                                jjCheckNAddTwoStates(1, 2);
                                break;
                            default:
                                break;
                            }
                        }
                        break;
                    case 1:
                        if ((0xfffffffbffffffffL & l) != 0L) {
                            jjCheckNAddTwoStates(1, 2);
                        }
                        break;
                    case 2:
                        if (curChar == 34 && kind > 18) {
                            kind = 18;
                        }
                        break;
                    case 3:
                        if (curChar == 39) {
                            jjCheckNAddTwoStates(4, 5);
                        }
                        break;
                    case 4:
                        if ((0xffffff7fffffffffL & l) != 0L) {
                            jjCheckNAddTwoStates(4, 5);
                        }
                        break;
                    case 5:
                        if (curChar == 39 && kind > 18) {
                            kind = 18;
                        }
                        break;
                    case 6:
                        if ((0x3ff000000000000L & l) == 0L) {
                            break;
                        }
                        if (kind > 20) {
                            kind = 20;
                        }
                        jjCheckNAddTwoStates(6, 7);
                        break;
                    case 7:
                        if (curChar != 46) {
                            break;
                        }
                        if (kind > 20) {
                            kind = 20;
                        }
                        jjCheckNAdd(8);
                        break;
                    case 8:
                        if ((0x3ff000000000000L & l) == 0L) {
                            break;
                        }
                        if (kind > 20) {
                            kind = 20;
                        }
                        jjCheckNAdd(8);
                        break;
                    case 9:
                        if (curChar == 46) {
                            jjCheckNAdd(10);
                        }
                        break;
                    case 10:
                        if ((0x3ff000000000000L & l) == 0L) {
                            break;
                        }
                        if (kind > 20) {
                            kind = 20;
                        }
                        jjCheckNAdd(10);
                        break;
                    case 12:
                        if ((0x3ff600000000000L & l) == 0L) {
                            break;
                        }
                        if (kind > 79) {
                            kind = 79;
                        }
                        jjstateSet[jjnewStateCnt++] = 12;
                        break;
                    default:
                        break;
                    }
                } while (i != startsAt);
            } else if (curChar < 128) {
                final long l = 1L << (curChar & 077);
                MatchLoop: do {
                    switch (jjstateSet[--i]) {
                    case 0:
                    case 12:
                        if ((0x7fffffe87fffffeL & l) == 0L) {
                            break;
                        }
                        if (kind > 79) {
                            kind = 79;
                        }
                        jjCheckNAdd(12);
                        break;
                    case 1:
                        jjAddStates(0, 1);
                        break;
                    case 4:
                        jjAddStates(2, 3);
                        break;
                    default:
                        break;
                    }
                } while (i != startsAt);
            } else {
                final int hiByte = curChar >> 8;
                final int i1 = hiByte >> 6;
                final long l1 = 1L << (hiByte & 077);
                final int i2 = (curChar & 0xff) >> 6;
                final long l2 = 1L << (curChar & 077);
                MatchLoop: do {
                    switch (jjstateSet[--i]) {
                    case 0:
                        if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) {
                            break;
                        }
                        if (kind > 79) {
                            kind = 79;
                        }
                        jjCheckNAdd(12);
                        break;
                    case 1:
                        if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                            jjAddStates(0, 1);
                        }
                        break;
                    case 4:
                        if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
                            jjAddStates(2, 3);
                        }
                        break;
                    case 12:
                        if (!jjCanMove_2(hiByte, i1, i2, l1, l2)) {
                            break;
                        }
                        if (kind > 79) {
                            kind = 79;
                        }
                        jjCheckNAdd(12);
                        break;
                    default:
                        break;
                    }
                } while (i != startsAt);
            }
            if (kind != 0x7fffffff) {
                jjmatchedKind = kind;
                jjmatchedPos = curPos;
                kind = 0x7fffffff;
            }
            ++curPos;
            if ((i = jjnewStateCnt) == (startsAt = 13 - (jjnewStateCnt = startsAt))) {
                return curPos;
            }
            try {
                curChar = input_stream.readChar();
            } catch (final java.io.IOException e) {
                return curPos;
            }
        }
    }