/* Generated By:JavaCC: Do not edit this line. ParserTokenManager.java */
import demeter.*;

public class ParserTokenManager implements ParserConstants
{
  protected static final String jjadd_escapes(String str) {
    String retval = "";
    char ch;
    for (int i = 0; i < str.length(); i++) {
      if ((ch = str.charAt(i)) == 0) continue;
      if (ch == '\b') {
        retval += "\\b";
      } else if (ch == '\t') {
        retval += "\\t";
      } else if (ch == '\n') {
        retval += "\\n";
      } else if (ch == '\f') {
        retval += "\\f";
      } else if (ch == '\r') {
        retval += "\\r";
      } else if (ch == '\"') {
        retval += "\\\"";
      } else if (ch == '\'') {
        retval += "\\\'";
      } else if (ch == '\\') {
        retval += "\\\\";
      } else if (ch < 0x20 || ch > 0x7e) {
        String s = "0000" + Integer.toString(ch, 16);
        retval += "\\u" + s.substring(s.length() - 4, s.length());
      } else {
        retval += ch;
      }
    }
    return retval;
  }

static final long[] jjbitVec0 = { 0xfffffffffffffffeL, 0xffffffffffffffffL,
              0xffffffffffffffffL, 0xffffffffffffffffL };
static final long[] jjbitVec2 = { 0x1L, 0x0L,
              0xffffffffffffffffL, 0xffffffffffffffffL };
static final long[] jjbitVec3 = { 0x1ff00000fffffffeL, 0xffffffffffffc000L,
              0xffffffffL, 0x600000000000000L };
static final long[] jjbitVec4 = { 0x1L, 0x0L,
              0x0L, 0xff7fffffff7fffffL };
static final long[] jjbitVec5 = { 0x0L, 0xffffffffffffffffL,
              0xffffffffffffffffL, 0xffffffffffffffffL };
static final long[] jjbitVec6 = { 0xffffffffffffffffL, 0xffffffffffffffffL,
              0xffffL, 0x0L };
static final long[] jjbitVec7 = { 0xffffffffffffffffL, 0xffffffffffffffffL,
              0x0L, 0x0L };
static final long[] jjbitVec8 = { 0x3fffffffffffL, 0x0L,
              0x0L, 0x0L };
private final void jjMoveNfa_0(int[] oldStates, int[] newStates)
{
   int j, k;
   MainLoop :
   for (;;)
   {
      if (curChar < 64)
      {
         int i = jjnewStateCnt;
         jjnewStateCnt = 0;
         jjround++;
         long l = 1L << curChar;
         do
         {
            switch(oldStates[--i])
            {
               case 52:
                  if ((0x800000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates38;
                     break;
                  }
                  else continue;
               case 53:
                  if ((0xffffffffffffdbffL & l) != 0L)
                  {
                     jjnextStates = jjstates38;
                     break;
                  }
                  else continue;
               case 54:
                  if ((0x400L & l) != 0L)
                  {
                     if (jjcurKind > 10)
                        jjcurKind = 10;
                     continue;
                  }
                  else continue;
               case 55:
                  if ((0x2000L & l) != 0L)
                  {
                     jjnextStates = jjstates37;
                     break;
                  }
                  else continue;
               case 56:
                  if ((0x40000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates41;
                     break;
                  }
                  else continue;
               case 57:
                  if ((0xfffffbffffffffffL & l) != 0L)
                  {
                     jjnextStates = jjstates41;
                     break;
                  }
                  else continue;
               case 58:
                  if ((0x40000000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 59;
                     newStates[jjnewStateCnt + 1] = 61;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 59:
                  if ((0xffff7fffffffffffL & l) != 0L)
                  {
                     jjnextStates = jjstates39;
                     break;
                  }
                  else continue;
               case 60:
                  if ((0xfffffbffffffffffL & l) != 0L)
                  {
                     jjnextStates = jjstates39;
                     break;
                  }
                  else continue;
               case 61:
                  if ((0x800000000000L & l) != 0L)
                  {
                     if (jjcurKind > 11)
                        jjcurKind = 11;
                     continue;
                  }
                  else continue;
               case 0:
                  if ((0x3fe000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 12)
                        jjcurKind = 12;
                     jjnextStates = jjstates0;
                     break;
                  }
                  else continue;
               case 1:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 12)
                        jjcurKind = 12;
                     jjnextStates = jjstates0;
                     break;
                  }
                  else continue;
               case 64:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 13)
                        jjcurKind = 13;
                     newStates[jjnewStateCnt + 0] = 64;
                     newStates[jjnewStateCnt + 1] = 65;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 66:
                  if ((0xff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 14)
                        jjcurKind = 14;
                     jjnextStates = jjstates45;
                     break;
                  }
                  else continue;
               case 37:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates27;
                     break;
                  }
                  else continue;
               case 38:
                  if ((0x400000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates26;
                     break;
                  }
                  else continue;
               case 39:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 15)
                        jjcurKind = 15;
                     jjnextStates = jjstates25;
                     break;
                  }
                  else continue;
               case 41:
                  if ((0x280000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates23;
                     break;
                  }
                  else continue;
               case 42:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 15)
                        jjcurKind = 15;
                     jjnextStates = jjstates22;
                     break;
                  }
                  else continue;
               case 3:
                  if ((0x400000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates5;
                     break;
                  }
                  else continue;
               case 4:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 15)
                        jjcurKind = 15;
                     jjnextStates = jjstates4;
                     break;
                  }
                  else continue;
               case 6:
                  if ((0x280000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates2;
                     break;
                  }
                  else continue;
               case 7:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 15)
                        jjcurKind = 15;
                     jjnextStates = jjstates1;
                     break;
                  }
                  else continue;
               case 43:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates31;
                     break;
                  }
                  else continue;
               case 45:
                  if ((0x280000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates29;
                     break;
                  }
                  else continue;
               case 46:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 15)
                        jjcurKind = 15;
                     jjnextStates = jjstates28;
                     break;
                  }
                  else continue;
               case 47:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates35;
                     break;
                  }
                  else continue;
               case 49:
                  if ((0x280000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates33;
                     break;
                  }
                  else continue;
               case 50:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates32;
                     break;
                  }
                  else continue;
               case 9:
                  if ((0x8000000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 10;
                     newStates[jjnewStateCnt + 1] = 12;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 10:
                  if ((0xffffff7fffffdbffL & l) != 0L)
                  {
                     jjnextStates = jjstates6;
                     break;
                  }
                  else continue;
               case 13:
                  if ((0x8400000000L & l) != 0L)
                  {
                     jjnextStates = jjstates6;
                     break;
                  }
                  else continue;
               case 14:
                  if ((0xff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates7;
                     break;
                  }
                  else continue;
               case 15:
                  if ((0xff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates6;
                     break;
                  }
                  else continue;
               case 16:
                  if ((0xf000000000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 17;
                     jjnewStateCnt += 1;
                     continue;
                  }
                  else continue;
               case 17:
                  if ((0xff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates8;
                     break;
                  }
                  else continue;
               case 11:
                  if ((0x8000000000L & l) != 0L)
                  {
                     if (jjcurKind > 17)
                        jjcurKind = 17;
                     continue;
                  }
                  else continue;
               case 18:
                  if ((0x400000000L & l) != 0L)
                  {
                     jjnextStates = jjstates12;
                     break;
                  }
                  else continue;
               case 19:
                  if ((0xfffffffbffffdbffL & l) != 0L)
                  {
                     jjnextStates = jjstates12;
                     break;
                  }
                  else continue;
               case 21:
                  if ((0x8400000000L & l) != 0L)
                  {
                     jjnextStates = jjstates12;
                     break;
                  }
                  else continue;
               case 23:
                  if ((0xff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates13;
                     break;
                  }
                  else continue;
               case 24:
                  if ((0xff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates12;
                     break;
                  }
                  else continue;
               case 25:
                  if ((0xf000000000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 26;
                     jjnewStateCnt += 1;
                     continue;
                  }
                  else continue;
               case 26:
                  if ((0xff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates14;
                     break;
                  }
                  else continue;
               case 22:
                  if ((0x400000000L & l) != 0L)
                  {
                     if (jjcurKind > 18)
                        jjcurKind = 18;
                     continue;
                  }
                  else continue;
               case 33:
                  if ((0x10000000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 27;
                     jjnewStateCnt += 1;
                     continue;
                  }
                  else continue;
               case 28:
                     jjnextStates = jjstates19;
                     break;
               case 30:
                  if ((0xfffffdffffffffffL & l) != 0L)
                  {
                     jjnextStates = jjstates17;
                     break;
                  }
                  else continue;
               case 31:
                     jjnextStates = jjstates17;
                     break;
               case 32:
                  if ((0x20000000000L & l) != 0L)
                  {
                     if (jjcurKind > 19)
                        jjcurKind = 19;
                     continue;
                  }
                  else continue;
               case 34:
                  if ((0x1000000000L & l) != 0L)
                  {
                     if (jjcurKind > 22)
                        jjcurKind = 22;
                     jjnextStates = jjstates21;
                     break;
                  }
                  else continue;
               case 35:
                  if ((0x3ff001000000000L & l) != 0L)
                  {
                     if (jjcurKind > 22)
                        jjcurKind = 22;
                     jjnextStates = jjstates21;
                     break;
                  }
                  else continue;
               case 36:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     jjnextStates = jjstates36;
                     break;
                  }
                  else continue;
               case 51:
                  if ((0x800000000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 52;
                     newStates[jjnewStateCnt + 1] = 56;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 62:
                  if ((0x1000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 14)
                        jjcurKind = 14;
                     jjnextStates = jjstates46;
                     break;
                  }
                  else continue;
               default : continue;
            }
            j = jjnextStates.length;
            do
            {
               if (jjrounds[k = jjnextStates[--j]] != jjround)
               {
                  jjrounds[k] = jjround;
                  newStates[jjnewStateCnt++] = k;
               }
            } while (j != 0);
         } while(i != 0);
      }
      else if (curChar < 128)
      {
         int i = jjnewStateCnt;
         jjnewStateCnt = 0;
         jjround++;
         long l = 1L << (curChar & 077);
         do
         {
            switch(oldStates[--i])
            {
               case 53:
                     newStates[jjnewStateCnt + 0] = 53;
                     newStates[jjnewStateCnt + 1] = 54;
                     newStates[jjnewStateCnt + 2] = 55;
                     jjnewStateCnt += 3;
                     continue;
               case 57:
                     jjnextStates = jjstates41;
                     break;
               case 59:
                     jjnextStates = jjstates39;
                     break;
               case 60:
                     jjnextStates = jjstates39;
                     break;
               case 2:
                  if ((0x100000001000L & l) != 0L)
                  {
                     if (jjcurKind > 12)
                        jjcurKind = 12;
                     continue;
                  }
                  else continue;
               case 63:
                  if ((0x100000001000000L & l) != 0L)
                  {
                     jjnextStates = jjstates44;
                     break;
                  }
                  else continue;
               case 64:
                  if ((0x7e0000007eL & l) != 0L)
                  {
                     if (jjcurKind > 13)
                        jjcurKind = 13;
                     jjnextStates = jjstates43;
                     break;
                  }
                  else continue;
               case 65:
                  if ((0x100000001000L & l) != 0L)
                  {
                     if (jjcurKind > 13)
                        jjcurKind = 13;
                     continue;
                  }
                  else continue;
               case 67:
                  if ((0x100000001000L & l) != 0L)
                  {
                     if (jjcurKind > 14)
                        jjcurKind = 14;
                     continue;
                  }
                  else continue;
               case 40:
                  if ((0x2000000020L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 41;
                     newStates[jjnewStateCnt + 1] = 42;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 5:
                  if ((0x2000000020L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 6;
                     newStates[jjnewStateCnt + 1] = 7;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 8:
                  if ((0x5000000050L & l) != 0L)
                  {
                     if (jjcurKind > 15)
                        jjcurKind = 15;
                     continue;
                  }
                  else continue;
               case 44:
                  if ((0x2000000020L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 45;
                     newStates[jjnewStateCnt + 1] = 46;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 48:
                  if ((0x2000000020L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 49;
                     newStates[jjnewStateCnt + 1] = 50;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               case 10:
                  if ((0xffffffffefffffffL & l) != 0L)
                  {
                     jjnextStates = jjstates6;
                     break;
                  }
                  else continue;
               case 12:
                  if ((0x10000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 13;
                     newStates[jjnewStateCnt + 1] = 14;
                     newStates[jjnewStateCnt + 2] = 16;
                     jjnewStateCnt += 3;
                     continue;
                  }
                  else continue;
               case 13:
                  if ((0x14404410000000L & l) != 0L)
                  {
                     jjnextStates = jjstates6;
                     break;
                  }
                  else continue;
               case 19:
                  if ((0xffffffffefffffffL & l) != 0L)
                  {
                     jjnextStates = jjstates12;
                     break;
                  }
                  else continue;
               case 20:
                  if ((0x10000000L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 21;
                     newStates[jjnewStateCnt + 1] = 23;
                     newStates[jjnewStateCnt + 2] = 25;
                     jjnewStateCnt += 3;
                     continue;
                  }
                  else continue;
               case 21:
                  if ((0x14404410000000L & l) != 0L)
                  {
                     jjnextStates = jjstates12;
                     break;
                  }
                  else continue;
               case 27:
                  if ((0x1L & l) != 0L)
                  {
                     jjnextStates = jjstates19;
                     break;
                  }
                  else continue;
               case 28:
                  if ((0xfffffffffffffffeL & l) != 0L)
                  {
                     jjnextStates = jjstates19;
                     break;
                  }
                  else continue;
               case 30:
                     jjnextStates = jjstates17;
                     break;
               case 31:
                  if ((0xfffffffffffffffeL & l) != 0L)
                  {
                     jjnextStates = jjstates17;
                     break;
                  }
                  else continue;
               case 34:
                  if ((0x7fffffe87fffffeL & l) != 0L)
                  {
                     if (jjcurKind > 22)
                        jjcurKind = 22;
                     jjnextStates = jjstates21;
                     break;
                  }
                  else continue;
               case 35:
                  if ((0x7fffffe87fffffeL & l) != 0L)
                  {
                     if (jjcurKind > 22)
                        jjcurKind = 22;
                     jjnextStates = jjstates21;
                     break;
                  }
                  else continue;
               case 29:
                  if ((0x1L & l) != 0L)
                  {
                     newStates[jjnewStateCnt + 0] = 30;
                     newStates[jjnewStateCnt + 1] = 32;
                     jjnewStateCnt += 2;
                     continue;
                  }
                  else continue;
               default : continue;
            }
            j = jjnextStates.length;
            do
            {
               if (jjrounds[k = jjnextStates[--j]] != jjround)
               {
                  jjrounds[k] = jjround;
                  newStates[jjnewStateCnt++] = k;
               }
            } while (j != 0);
         } while(i != 0);
      }
      else
      {
         int i = jjnewStateCnt;
         jjnewStateCnt = 0;
         jjround++;
         int i2 = (curChar & 0xff) >> 6;
         int i1 = ((curChar >> 8) & 0xff) >> 6;
         long l2 = 1L << (curChar & 077);
         long l1 = 1L << ((curChar >> 8) & 077);
         Outer:
         do
         {
            switch(oldStates[--i])
            {
               case 53:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     newStates[jjnewStateCnt + 0] = 53;
                     newStates[jjnewStateCnt + 1] = 54;
                     newStates[jjnewStateCnt + 2] = 55;
                     jjnewStateCnt += 3;
                     continue;
               case 57:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     jjnextStates = jjstates41;
                     break;
               case 59:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     jjnextStates = jjstates39;
                     break;
               case 60:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     jjnextStates = jjstates39;
                     break;
               case 10:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     newStates[jjnewStateCnt + 0] = 11;
                     jjnewStateCnt += 1;
                     continue;
               case 19:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     newStates[jjnewStateCnt + 0] = 19;
                     newStates[jjnewStateCnt + 1] = 20;
                     newStates[jjnewStateCnt + 2] = 22;
                     jjnewStateCnt += 3;
                     continue;
               case 28:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     jjnextStates = jjstates19;
                     break;
               case 30:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     jjnextStates = jjstates17;
                     break;
               case 31:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec2[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec0[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                     jjnextStates = jjstates17;
                     break;
               case 34:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec4[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 48:
                           if ((jjbitVec5[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 49:
                           if ((jjbitVec6[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 51:
                           if ((jjbitVec7[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 61:
                           if ((jjbitVec8[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec3[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                  if (jjcurKind > 22)
                     jjcurKind = 22;
                     jjnextStates = jjstates21;
                     break;
               case 35:
                  MatchLoop:
                  for(;;)
                  {
                     switch((curChar >> 8))
                     {
                        case 0:
                           if ((jjbitVec4[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 48:
                           if ((jjbitVec5[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 49:
                           if ((jjbitVec6[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 51:
                           if ((jjbitVec7[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        case 61:
                           if ((jjbitVec8[i2] & l2) == 0L)
                              continue Outer;
                           break MatchLoop;
                        default : break;
                     }
                     if ((jjbitVec3[i1] & l1) != 0L)
                           break MatchLoop;
                     continue Outer;
                  }
                  if (jjcurKind > 22)
                     jjcurKind = 22;
                     jjnextStates = jjstates21;
                     break;
               default : continue;
            }
            j = jjnextStates.length;
            do
            {
               if (jjrounds[k = jjnextStates[--j]] != jjround)
               {
                  jjrounds[k] = jjround;
                  newStates[jjnewStateCnt++] = k;
               }
            } while (j != 0);
         } while(i != 0);
      }
      return;
   }
}
int[] StopStringLiteralDfa_0(int pos, long active0)
{
   switch (pos)
   {
      case 0:
         if ((active0 & 0x30001cL) != 0L)
         {
            matchedToken.kind = 22;
            return jjstates21;
         }
         return null;
      case 1:
         if ((active0 & 0x30001cL) != 0L)
         {
            if (jjmatchedPos != 1)
            {
               matchedToken.kind = 22;
               jjmatchedPos = 1;
            }
            return jjstates21;
         }
         return null;
      case 2:
         if ((active0 & 0x30001cL) != 0L)
         {
            if (jjmatchedPos != 2)
            {
               matchedToken.kind = 22;
               jjmatchedPos = 2;
            }
            return jjstates21;
         }
         return null;
      case 3:
         if ((active0 & 0x100000L) != 0L)
            return jjstates21;
         if ((active0 & 0x20001cL) != 0L)
         {
            if (jjmatchedPos != 3)
            {
               matchedToken.kind = 22;
               jjmatchedPos = 3;
            }
            return jjstates21;
         }
         return null;
      case 4:
         if ((active0 & 0x200000L) != 0L)
            return jjstates21;
         if ((active0 & 0x1cL) != 0L)
         {
            if (jjmatchedPos != 4)
            {
               matchedToken.kind = 22;
               jjmatchedPos = 4;
            }
            return jjstates21;
         }
         return null;
      case 5:
         if ((active0 & 0xcL) != 0L)
            return jjstates21;
         if ((active0 & 0x10L) != 0L)
         {
            if (jjmatchedPos != 5)
            {
               matchedToken.kind = 22;
               jjmatchedPos = 5;
            }
            return jjstates21;
         }
         return null;
      case 6:
         if ((active0 & 0x10L) != 0L)
         {
            if (jjmatchedPos != 6)
            {
               matchedToken.kind = 22;
               jjmatchedPos = 6;
            }
            return jjstates21;
         }
         return null;
      case 7:
         if ((active0 & 0x10L) != 0L)
            return jjstates21;
         return null;
      default : 
         return null;
   }
}
void jjStartNfa_0(int pos, long active0)
{
   if ((jjstartStateSet = StopStringLiteralDfa_0(pos, active0)) != null)
   {
      jjnewStateCnt = jjstartStateSet.length;
      jjMoveNfa_0(jjstartStateSet, jjstateSet2);
      if (jjcurKind != 2147483647)
      {
         matchedToken.kind = jjcurKind;
         jjmatchedPos = pos + 1;
         jjcurKind = 2147483647;
      }
   }
   return;
}
long jjnewActive_00 = 0L, jjoldActive_00 = 0L;
private final void jjMoveStringLiteralDfa0_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
         switch(curChar)
         {
            case 93: 
               matchedToken.kind = 5;
               break ReturnLoop;
            case 91: 
               matchedToken.kind = 1;
               break ReturnLoop;
            case 32: 
               matchedToken.kind = 6;
               break ReturnLoop;
            case 116: 
               jjoldActive_00 = 0x100000L;
               break;
            case 115: 
               jjoldActive_00 = 0x18L;
               break;
            case 13: 
               matchedToken.kind = 9;
               break ReturnLoop;
            case 112: 
               jjoldActive_00 = 0x4L;
               break;
            case 10: 
               matchedToken.kind = 8;
               break ReturnLoop;
            case 9: 
               matchedToken.kind = 7;
               break ReturnLoop;
            case 102: 
               jjoldActive_00 = 0x200000L;
               break;
            default : 
               curPos =  1;
               if (curChar < 128)
                  if ((jjstartStateSet = jjinitStates_0[curChar]) == null)
                     return;
               else 
                  jjstartStateSet = jjallInitStates_0;
               jjnewStateCnt = jjstartStateSet.length;
               jjMoveNfa_0(jjstartStateSet, jjstateSet2);
               if (jjcurKind != 2147483647)
               {
                  matchedToken.kind = jjcurKind;
                  jjcurKind = 2147483647;
               }
               return;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(0, jjoldActive_00); 
            curPos = 1;
            throw e;
         }
         jjMoveStringLiteralDfa1_0();
         return;
    }
   }
   curPos = 1;
   return;
}
private final void jjMoveStringLiteralDfa1_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 97: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x200000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 114: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x100000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 112: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x8L)) == 0L)
                  break StartNfaLoop;
               break;
            case 105: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x10L)) == 0L)
                  break StartNfaLoop;
               break;
            case 101: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x4L)) == 0L)
                  break StartNfaLoop;
               break;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(1, jjnewActive_00); 
            curPos = 2;
            throw e;
         }
         jjMoveStringLiteralDfa2_0();
         return;
      }
      jjStartNfa_0(0, jjoldActive_00); 
      curPos = 2;
      return;
    }
   }
}
private final void jjMoveStringLiteralDfa2_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 98: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x10L)) == 0L)
                  break StartNfaLoop;
               break;
            case 117: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x100000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 114: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x4L)) == 0L)
                  break StartNfaLoop;
               break;
            case 111: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x8L)) == 0L)
                  break StartNfaLoop;
               break;
            case 108: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x200000L)) == 0L)
                  break StartNfaLoop;
               break;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(2, jjoldActive_00); 
            curPos = 3;
            throw e;
         }
         jjMoveStringLiteralDfa3_0();
         return;
      }
      jjStartNfa_0(1, jjnewActive_00); 
      curPos = 3;
      return;
    }
   }
}
private final void jjMoveStringLiteralDfa3_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 117: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x8L)) == 0L)
                  break StartNfaLoop;
               break;
            case 115: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x200004L)) == 0L)
                  break StartNfaLoop;
               break;
            case 108: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x10L)) == 0L)
                  break StartNfaLoop;
               break;
            case 101: 
               if ((jjoldActive_00 & 0x100000L) != 0L)
               {
                  matchedToken.kind = 20;
                  jjstartStateSet = jjstates21;
                  break MainLoop;
               }
               break StartNfaLoop;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(3, jjnewActive_00); 
            curPos = 4;
            throw e;
         }
         jjMoveStringLiteralDfa4_0();
         return;
      }
      jjStartNfa_0(2, jjoldActive_00); 
      curPos = 4;
      return;
    }
    jjmatchedPos = 3;
    curPos = 4;
    curChar = input_stream.readChar();
    jjnewStateCnt = jjstartStateSet.length;
    jjMoveNfa_0(jjstartStateSet, jjstateSet2);
    if (jjcurKind != 2147483647)
    {
       matchedToken.kind = jjcurKind;
       jjmatchedPos = 4;
       jjcurKind = 2147483647;
    }
    curPos = 5;
    return;
   }
}
private final void jjMoveStringLiteralDfa4_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 115: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x8L)) == 0L)
                  break StartNfaLoop;
               break;
            case 111: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x4L)) == 0L)
                  break StartNfaLoop;
               break;
            case 105: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x10L)) == 0L)
                  break StartNfaLoop;
               break;
            case 101: 
               if ((jjnewActive_00 & 0x200000L) != 0L)
               {
                  matchedToken.kind = 21;
                  jjstartStateSet = jjstates21;
                  break MainLoop;
               }
               break StartNfaLoop;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(4, jjoldActive_00); 
            curPos = 5;
            throw e;
         }
         jjMoveStringLiteralDfa5_0();
         return;
      }
      jjStartNfa_0(3, jjnewActive_00); 
      curPos = 5;
      return;
    }
    jjmatchedPos = 4;
    curPos = 5;
    curChar = input_stream.readChar();
    jjnewStateCnt = jjstartStateSet.length;
    jjMoveNfa_0(jjstartStateSet, jjstateSet2);
    if (jjcurKind != 2147483647)
    {
       matchedToken.kind = jjcurKind;
       jjmatchedPos = 5;
       jjcurKind = 2147483647;
    }
    curPos = 6;
    return;
   }
}
private final void jjMoveStringLiteralDfa5_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 110: 
               if ((jjoldActive_00 & 0x4L) != 0L)
               {
                  matchedToken.kind = 2;
                  jjstartStateSet = jjstates21;
                  break MainLoop;
               }
               if (((jjnewActive_00 = jjoldActive_00 & 0x10L)) == 0L)
                  break StartNfaLoop;
               break;
            case 101: 
               if ((jjoldActive_00 & 0x8L) != 0L)
               {
                  matchedToken.kind = 3;
                  jjstartStateSet = jjstates21;
                  break MainLoop;
               }
               break StartNfaLoop;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(5, jjnewActive_00); 
            curPos = 6;
            throw e;
         }
         jjMoveStringLiteralDfa6_0();
         return;
      }
      jjStartNfa_0(4, jjoldActive_00); 
      curPos = 6;
      return;
    }
    jjmatchedPos = 5;
    curPos = 6;
    curChar = input_stream.readChar();
    jjnewStateCnt = jjstartStateSet.length;
    jjMoveNfa_0(jjstartStateSet, jjstateSet2);
    if (jjcurKind != 2147483647)
    {
       matchedToken.kind = jjcurKind;
       jjmatchedPos = 6;
       jjcurKind = 2147483647;
    }
    curPos = 7;
    return;
   }
}
private final void jjMoveStringLiteralDfa6_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 103: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x10L)) == 0L)
                  break StartNfaLoop;
               break;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(6, jjoldActive_00); 
            curPos = 7;
            throw e;
         }
         jjMoveStringLiteralDfa7_0();
         return;
      }
      jjStartNfa_0(5, jjnewActive_00); 
      curPos = 7;
      return;
    }
   }
}
private final void jjMoveStringLiteralDfa7_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 115: 
               if ((jjoldActive_00 & 0x10L) != 0L)
               {
                  matchedToken.kind = 4;
                  jjstartStateSet = jjstates21;
                  break MainLoop;
               }
               break StartNfaLoop;
            default : 
               break StartNfaLoop;
         }
      }
      jjStartNfa_0(6, jjoldActive_00); 
      curPos = 8;
      return;
    }
    jjmatchedPos = 7;
    curPos = 8;
    curChar = input_stream.readChar();
    jjnewStateCnt = jjstartStateSet.length;
    jjMoveNfa_0(jjstartStateSet, jjstateSet2);
    if (jjcurKind != 2147483647)
    {
       matchedToken.kind = jjcurKind;
       jjmatchedPos = 8;
       jjcurKind = 2147483647;
    }
    curPos = 9;
    return;
   }
}
static final int[] jjstates0 = { 1, 2, };
static final int[] jjstates1 = { 7, 8, };
static final int[] jjstates2 = { 7, };
static final int[] jjstates3 = { 6, 7, };
static final int[] jjstates4 = { 4, 5, 8, };
static final int[] jjstates5 = { 4, };
static final int[] jjstates6 = { 11, };
static final int[] jjstates7 = { 15, 11, };
static final int[] jjstates8 = { 15, };
static final int[] jjstates9 = { 17, };
static final int[] jjstates10 = { 13, 14, 16, };
static final int[] jjstates11 = { 10, 12, };
static final int[] jjstates12 = { 19, 20, 22, };
static final int[] jjstates13 = { 19, 20, 24, 22, };
static final int[] jjstates14 = { 24, };
static final int[] jjstates15 = { 26, };
static final int[] jjstates16 = { 21, 23, 25, };
static final int[] jjstates17 = { 31, 29, };
static final int[] jjstates18 = { 30, 32, };
static final int[] jjstates19 = { 28, 29, };
static final int[] jjstates20 = { 27, };
static final int[] jjstates21 = { 35, };
static final int[] jjstates22 = { 42, 8, };
static final int[] jjstates23 = { 42, };
static final int[] jjstates24 = { 41, 42, };
static final int[] jjstates25 = { 39, 40, 8, };
static final int[] jjstates26 = { 39, };
static final int[] jjstates27 = { 37, 38, };
static final int[] jjstates28 = { 46, 8, };
static final int[] jjstates29 = { 46, };
static final int[] jjstates30 = { 45, 46, };
static final int[] jjstates31 = { 43, 44, };
static final int[] jjstates32 = { 50, 8, };
static final int[] jjstates33 = { 50, };
static final int[] jjstates34 = { 49, 50, };
static final int[] jjstates35 = { 47, 48, 8, };
static final int[] jjstates36 = { 37, 38, 43, 44, 47, 48, 8, };
static final int[] jjstates37 = { 54, };
static final int[] jjstates38 = { 53, 54, 55, };
static final int[] jjstates39 = { 60, 58, };
static final int[] jjstates40 = { 59, 61, };
static final int[] jjstates41 = { 57, 58, };
static final int[] jjstates42 = { 52, 56, };
static final int[] jjstates43 = { 64, 65, };
static final int[] jjstates44 = { 64, };
static final int[] jjstates45 = { 66, 67, };
static final int[] jjstates46 = { 63, 66, 67, };
static final int[] jjallInitStates_0 = { 0, 3, 9, 18, 33, 34, 36, 51, 62, };
static final int[] jjstates47 = { 18, };
static final int[] jjstates48 = { 34, };
static final int[] jjstates49 = { 9, };
static final int[] jjstates50 = { 33, };
static final int[] jjstates51 = { 3, };
static final int[] jjstates52 = { 51, };
static final int[] jjstates53 = { 36, 62, };
static final int[] jjstates54 = { 0, 36, };
static final int[][] jjinitStates_0 = {
jjallInitStates_0, null, null, null, null, null, 
null, null, null, null, null, 
null, null, null, null, null, 
null, null, null, null, null, 
null, null, null, null, null, 
null, null, null, null, null, 
null, null, null, jjstates47, null, 
jjstates48, null, null, jjstates49, jjstates50, 
null, null, null, null, null, 
jjstates51, jjstates52, jjstates53, jjstates54, jjstates54, 
jjstates54, jjstates54, jjstates54, jjstates54, jjstates54, 
jjstates54, jjstates54, null, null, null, 
null, null, null, null, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
null, null, null, null, jjstates48, 
null, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, jjstates48, jjstates48, jjstates48, 
jjstates48, jjstates48, null, null, null, 
null, null, };

public static final String[] jjstrLiteralImages = {
null, "\133", "\160\145\162\163\157\156", "\163\160\157\165\163\145", 
"\163\151\142\154\151\156\147\163", "\135", null, null, null, null, null, null, null, null, null, null, null, null, 
null, null, "\164\162\165\145", "\146\141\154\163\145", null, null, null, };
public static final String[] lexStateNames = {
   "DEFAULT", 
};
static final long[] jjtoToken = 
{
0x7ef03eL,
};
static final long[] jjtoSkip = 
{
0xfc0L,
};
private ASCII_UCodeESC_CharStream input_stream;
private int[] jjrounds = new int[68];
private int[] jjstateSet1 = new int[68];
private int[] jjstateSet2 = new int[68];
private int[] jjnextStates;
int curPos;
protected char curChar;
int jjcurKind = 2147483647;
ParserTokenManager jjme;
public ParserTokenManager(ASCII_UCodeESC_CharStream stream)
{
input_stream = stream;
jjme = this;
}
public ParserTokenManager(ASCII_UCodeESC_CharStream stream, int lexState)
{
input_stream = stream;
jjme = this;
   if (lexState >= 1 || lexState < 0)
   {
      System.out.println("Error: Ignoring invalid lexical state : " + lexState + ". Starting lexer in DEFAULT state.");
      curLexState = defaultLexState;
   }
   else
      curLexState = lexState;
}
public void ReInit(ASCII_UCodeESC_CharStream stream)
{
int i;
jjcurKind = 2147483647;
curPos = jjmatchedPos = jjnewStateCnt = jjround = 0;
jjstartStateSet = null;
curChar = (char)0;
jjEOFSeen = false;
curLexState = defaultLexState;
input_stream = stream;
for (i = 68; i-- > 0;)
   jjrounds[i] = 0;
}
public void ReInit(ASCII_UCodeESC_CharStream stream, int lexState)
{
int i;
jjcurKind = 2147483647;
curPos = jjmatchedPos = jjnewStateCnt = jjround = 0;
jjstartStateSet = null;
curChar = (char)0;
jjEOFSeen = false;
   if (lexState >= 1 || lexState < 0)
   {
      System.out.println("Error: Ignoring invalid lexical state : " + lexState + ". Reinitialzing lexer in DEFAULT state.");
      curLexState = defaultLexState;
   }
   else
      curLexState = lexState;
input_stream = stream;
for (i = 68; i-- > 0;)
   jjrounds[i] = 0;
}
public void SwitchTo(int lexState)
{
   if (lexState >= 1 || lexState < 0)
      System.out.println("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.");
   else
      curLexState = lexState;
}


int curLexState = 0;
int defaultLexState = 0;
int jjnewStateCnt;
int jjround;
private boolean jjEOFSeen = false;
int[] jjtmpStates = jjstateSet1;
int jjmatchedPos;
Token matchedToken;
Token jjspecialToken;
private int[] jjstartStateSet;

public Token getNextToken() throws ParseError
{
  matchedToken = new Token();

  EOFLoop : for (;;)
  {   
   try   
   {     
      curChar = input_stream.BeginToken();
   }     
   catch(java.io.IOException e)
   {        
      matchedToken.endLine = matchedToken.beginLine = input_stream.getBeginLine();
      matchedToken.endColumn = matchedToken.beginColumn = input_stream.getBeginColumn();
      matchedToken.kind = 0;
      matchedToken.image = "";
      return matchedToken;
   }

   try
   {
    for (;;)
    {
      matchedToken.kind = 2147483647;
      jjmatchedPos = 0;
      jjMoveStringLiteralDfa0_0();
      while (jjnewStateCnt != 0)
      {
         curChar = input_stream.readChar();
         jjMoveNfa_0(jjstateSet1 = jjstateSet2, jjstateSet2 = jjtmpStates);
         jjtmpStates = jjstateSet1;
         if (jjcurKind != 2147483647)
         {
            matchedToken.kind = jjcurKind;
            jjcurKind = 2147483647;
            jjmatchedPos = curPos++;
         }
         else
            curPos++;
      }

      if (matchedToken.kind != 2147483647)
      {
         if (jjmatchedPos + 1 < curPos)
            input_stream.backup(curPos - jjmatchedPos - 1);

         if ((jjtoToken[matchedToken.kind >> 6] &
             (1L << (matchedToken.kind & 077))) != 0L)
         {
            if ((matchedToken.image = jjstrLiteralImages[matchedToken.kind]) == null)
               matchedToken.image = input_stream.GetImage();
            matchedToken.beginLine = input_stream.getBeginLine();
            matchedToken.beginColumn = input_stream.getBeginColumn();
            matchedToken.endLine = input_stream.getEndLine();
            matchedToken.endColumn = input_stream.getEndColumn();
            return matchedToken;
         }
         else
         {
            continue EOFLoop;
         }
      }
      else
      {
         jjme.error_line = input_stream.getEndLine();
         jjme.error_column = input_stream.getEndColumn();
         input_stream.backup(1);
         jjme.error_after = curPos <= 1 ? "" : jjadd_escapes(input_stream.GetImage());
         jjme.LexicalError();

         throw new ParseError();
      }
    }
   }
   catch (java.io.IOException e)
   {
      switch(curLexState)
      {
         default : break;
      }
      if (matchedToken.kind != 2147483647 && matchedToken.kind != 0)
      {
         if (jjmatchedPos + 1 < curPos)
            input_stream.backup(curPos - jjmatchedPos - 1);

         if ((jjtoToken[matchedToken.kind >> 6] &
             (1L << (matchedToken.kind & 077))) != 0L)
         {
            if ((matchedToken.image = jjstrLiteralImages[matchedToken.kind]) == null)
               matchedToken.image = input_stream.GetImage();
            matchedToken.beginLine = input_stream.getBeginLine();
            matchedToken.beginColumn = input_stream.getBeginColumn();
            matchedToken.endLine = input_stream.getEndLine();
            matchedToken.endColumn = input_stream.getEndColumn();
            return matchedToken;
         }
         else
         {
            continue EOFLoop;
         }
      }

      jjme.error_line = input_stream.getEndLine();
      jjme.error_column = input_stream.getEndColumn();
      input_stream.backup(1);
      jjEOFSeen = true;
      jjme.error_after = curPos <= 1 ? "" : jjadd_escapes(input_stream.GetImage());
      jjme.LexicalError();

      throw new ParseError();
   }
  }
}

protected int error_line, error_column;
protected String error_after;
protected void LexicalError()
{
   System.err.println("Lexical error at line " +
        error_line + ", column " +
        error_column + ".  Encountered: " +
        (jjEOFSeen ? "<EOF>" : ("\"" + jjadd_escapes(String.valueOf(curChar)) + "\"") + " (" + (int)curChar + "), ") +
        "after : \"" + jjme.error_after + "\"");
}
}

