private int jjMoveNfa_0()

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


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 if (curChar == 46) {
                    jjCheckNAdd(10);
                } else if (curChar == 39) {
                    jjCheckNAddTwoStates(4, 5);
                } else if (curChar == 34) {
                    jjCheckNAddTwoStates(1, 2);
                }
                  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; }
   }
}