/* Generated By:JavaCC: Do not edit this line. NomParserTokenManager.java */
/*
 *   Copyright (C) 2003-2007  University of Manchester
 *
 *   This library is free software; you can redistribute it and/or
 *   modify it under the terms of the GNU Lesser General Public
 *   License as published by the Free Software Foundation; either
 *   version 2.1 of the License, or (at your option) any later version.
 *
 *   This library is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *   Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public
 *   License along with this library; if not, write to the Free Software
 *   Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 
 *   (or see http://www.gnu.org/copyleft/lesser.html)
 */
package org.openscience.cdk.iupac.parser;
import java.io.StringReader;
import org.openscience.cdk.Molecule;
import org.openscience.cdk.exception.*;
import java.util.*;

public class NomParserTokenManager implements NomParserConstants
{
  public  java.io.PrintStream debugStream = System.out;
  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1, long active2)
{
   switch (pos)
   {
      case 0:
         if ((active0 & 0x1000000000L) != 0L || (active1 & 0x20010400000L) != 0L)
            return 8;
         if ((active0 & 0x100010000080L) != 0L || (active1 & 0x4200000000000000L) != 0L || (active2 & 0x800L) != 0L)
            return 5;
         return -1;
      case 1:
         if ((active2 & 0x800L) != 0L)
            return 4;
         return -1;
      default :
         return -1;
   }
}
private final int jjStartNfa_0(int pos, long active0, long active1, long active2)
{
   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1, active2), pos + 1);
}
private final int jjStopAtPos(int pos, int kind)
{
   jjmatchedKind = kind;
   jjmatchedPos = pos;
   return pos + 1;
}
private final int jjStartNfaWithStates_0(int pos, int kind, int state)
{
   jjmatchedKind = kind;
   jjmatchedPos = pos;
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) { return pos + 1; }
   return jjMoveNfa_0(state, pos + 1);
}
private final int jjMoveStringLiteralDfa0_0()
{
   switch(curChar)
   {
      case 44:
         return jjStopAtPos(0, 5);
      case 45:
         return jjStopAtPos(0, 4);
      case 97:
         jjmatchedKind = 25;
         return jjMoveStringLiteralDfa1_0(0xe030008000000L, 0xc08000000020L, 0x80L);
      case 98:
         return jjMoveStringLiteralDfa1_0(0x1000000800000200L, 0x1000000200001L, 0x200L);
      case 99:
         return jjMoveStringLiteralDfa1_0(0x4400000301800000L, 0x10002204004000L, 0x500L);
      case 100:
         return jjMoveStringLiteralDfa1_0(0x80404000L, 0x1000000000002000L, 0x0L);
      case 101:
         jjmatchedKind = 44;
         return jjMoveStringLiteralDfa1_0(0x10000080L, 0x4200000000000000L, 0x800L);
      case 102:
         return jjMoveStringLiteralDfa1_0(0x800000400000000L, 0x0L, 0x1000L);
      case 103:
         return jjMoveStringLiteralDfa1_0(0x0L, 0x400090800000000L, 0x0L);
      case 104:
         return jjMoveStringLiteralDfa1_0(0x800000c3000L, 0x2000000002000100L, 0x0L);
      case 105:
         return jjMoveStringLiteralDfa1_0(0x1000000000L, 0x20010400000L, 0x0L);
      case 108:
         return jjMoveStringLiteralDfa1_0(0x40040000000000L, 0x200000000010L, 0x8002L);
      case 109:
         return jjMoveStringLiteralDfa1_0(0x2000000000000040L, 0x4020048000L, 0x2000L);
      case 110:
         return jjMoveStringLiteralDfa1_0(0x1002000200000L, 0x40000040000800L, 0x4020L);
      case 111:
         return jjMoveStringLiteralDfa1_0(0x30e04000100000L, 0x1000000L, 0x0L);
      case 112:
         return jjMoveStringLiteralDfa1_0(0x100008000020100L, 0xa8000180000000L, 0x48L);
      case 114:
         return jjMoveStringLiteralDfa1_0(0x200000000000000L, 0x8900202L, 0x0L);
      case 115:
         return jjMoveStringLiteralDfa1_0(0x8080000000000000L, 0x102000400020004L, 0x0L);
      case 116:
         return jjMoveStringLiteralDfa1_0(0x18000L, 0x8804140000091040L, 0x4L);
      case 117:
         return jjMoveStringLiteralDfa1_0(0x400L, 0x0L, 0x10L);
      case 118:
         return jjMoveStringLiteralDfa1_0(0x0L, 0x400L, 0x0L);
      case 121:
         return jjMoveStringLiteralDfa1_0(0x60000000L, 0x8L, 0x1L);
      case 122:
         return jjMoveStringLiteralDfa1_0(0x0L, 0x1000000080L, 0x0L);
      default :
         return jjMoveNfa_0(0, 0);
   }
}
private final int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2)
{
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(0, active0, active1, active2);
      return 1;
   }
   switch(curChar)
   {
      case 97:
         return jjMoveStringLiteralDfa2_0(active0, 0x6020000000000000L, active1, 0x500012082041513L, active2, 0x8400L);
      case 99:
         return jjMoveStringLiteralDfa2_0(active0, 0x100000L, active1, 0x24L, active2, 0L);
      case 101:
         return jjMoveStringLiteralDfa2_0(active0, 0x14000000004f3040L, active1, 0x8562840200a0000L, active2, 0x3220L);
      case 104:
         return jjMoveStringLiteralDfa2_0(active0, 0x8200000000L, active1, 0x8000040008104000L, active2, 0x4L);
      case 105:
         if ((active0 & 0x80000000L) != 0L)
            return jjStopAtPos(1, 31);
         return jjMoveStringLiteralDfa2_0(active0, 0x41442000000000L, active1, 0x11014400008c0L, active2, 0x800L);
      case 108:
         if ((active0 & 0x40000000L) != 0L)
            return jjStopAtPos(1, 30);
         else if ((active0 & 0x200000000000L) != 0L)
            return jjStopAtPos(1, 45);
         else if ((active0 & 0x2000000000000L) != 0L)
         {
            jjmatchedKind = 49;
            jjmatchedPos = 1;
         }
         return jjMoveStringLiteralDfa2_0(active0, 0x20400000000L, active1, 0x8100000000L, active2, 0x40L);
      case 109:
         return jjMoveStringLiteralDfa2_0(active0, 0xc010000000000L, active1, 0L, active2, 0x80L);
      case 110:
         if ((active0 & 0x8000000L) != 0L)
         {
            jjmatchedKind = 27;
            jjmatchedPos = 1;
         }
         else if ((active0 & 0x10000000L) != 0L)
            return jjStopAtPos(1, 28);
         else if ((active0 & 0x20000000L) != 0L)
            return jjStopAtPos(1, 29);
         return jjMoveStringLiteralDfa2_0(active0, 0x10000000000400L, active1, 0x820000000000L, active2, 0L);
      case 111:
         if ((active0 & 0x4000L) != 0L)
            return jjStopAtPos(1, 14);
         return jjMoveStringLiteralDfa2_0(active0, 0x180001001a00000L, active1, 0x2008000a04208000L, active2, 0x4000L);
      case 114:
         return jjMoveStringLiteralDfa2_0(active0, 0x800000800008100L, active1, 0x40a0400010400000L, active2, 0x18L);
      case 115:
         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x1000000L, active2, 0L);
      case 116:
         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000080L, active1, 0x8L, active2, 0x1L);
      case 117:
         return jjMoveStringLiteralDfa2_0(active0, 0x200000000000200L, active1, 0x200000000812200L, active2, 0x102L);
      case 120:
         return jjMoveStringLiteralDfa2_0(active0, 0x4000000000L, active1, 0L, active2, 0L);
      case 121:
         return jjMoveStringLiteralDfa2_0(active0, 0x880100000000L, active1, 0x1000000000000000L, active2, 0L);
      default :
         break;
   }
   return jjStartNfa_0(0, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(0, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(1, active0, active1, active2);
      return 2;
   }
   switch(curChar)
   {
      case 97:
         return jjMoveStringLiteralDfa3_0(active0, 0x800000000000000L, active1, 0x20240100020004L, active2, 0x10L);
      case 98:
         return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0x4000000004002000L, active2, 0x4000L);
      case 99:
         if ((active0 & 0x400000L) != 0L)
            return jjStopAtPos(2, 22);
         return jjMoveStringLiteralDfa3_0(active0, 0x400100000000L, active1, 0x40080000L, active2, 0L);
      case 100:
         return jjMoveStringLiteralDfa3_0(active0, 0x80081000000400L, active1, 0x400022000000002L, active2, 0L);
      case 101:
         if ((active0 & 0x10000000000000L) != 0L)
            return jjStopAtPos(2, 52);
         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000L, active1, 0x100000L, active2, 0x80L);
      case 102:
         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x100L, active2, 0L);
      case 103:
         return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000000L, active1, 0L, active2, 0L);
      case 104:
         if ((active0 & 0x80L) != 0L)
            return jjStopAtPos(2, 7);
         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200000L, active2, 0L);
      case 105:
         if ((active0 & 0x8000L) != 0L)
            return jjStopAtPos(2, 15);
         return jjMoveStringLiteralDfa3_0(active0, 0xc010000000000L, active1, 0x30000000L, active2, 0L);
      case 108:
         return jjMoveStringLiteralDfa3_0(active0, 0x4000800200000000L, active1, 0x200e010c80008000L, active2, 0x400L);
      case 109:
         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1000000L, active2, 0L);
      case 110:
         if ((active0 & 0x2000L) != 0L)
         {
            jjmatchedKind = 13;
            jjmatchedPos = 2;
         }
         else if ((active0 & 0x200000L) != 0L)
            return jjStopAtPos(2, 21);
         else if ((active1 & 0x100000000000L) != 0L)
            return jjStopAtPos(2, 108);
         return jjMoveStringLiteralDfa3_0(active0, 0x1021000L, active1, 0x100001000051410L, active2, 0x2800L);
      case 111:
         if ((active0 & 0x4000000000L) != 0L)
            return jjStopAtPos(2, 38);
         return jjMoveStringLiteralDfa3_0(active0, 0x800000100L, active1, 0xc0000008400800L, active2, 0xcL);
      case 112:
         return jjMoveStringLiteralDfa3_0(active0, 0x80000L, active1, 0x200000000L, active2, 0x20L);
      case 114:
         return jjMoveStringLiteralDfa3_0(active0, 0x9000000000000000L, active1, 0xa10084000004081L, active2, 0x1300L);
      case 115:
         if ((active0 & 0x800000L) != 0L)
            return jjStopAtPos(2, 23);
         return jjMoveStringLiteralDfa3_0(active0, 0x400000000000000L, active1, 0x1001400002000000L, active2, 0L);
      case 116:
         if ((active0 & 0x200L) != 0L)
            return jjStopAtPos(2, 9);
         else if ((active0 & 0x100000L) != 0L)
            return jjStopAtPos(2, 20);
         return jjMoveStringLiteralDfa3_0(active0, 0x161042000010040L, active1, 0x800000800268L, active2, 0x3L);
      case 117:
         return jjMoveStringLiteralDfa3_0(active0, 0x20400000000L, active1, 0x8000008000000000L, active2, 0x40L);
      case 119:
         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0L, active2, 0x8000L);
      case 120:
         if ((active0 & 0x40000L) != 0L)
            return jjStopAtPos(2, 18);
         break;
      default :
         break;
   }
   return jjStartNfa_0(1, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(1, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(2, active0, active1, active2);
      return 3;
   }
   switch(curChar)
   {
      case 32:
         return jjMoveStringLiteralDfa4_0(active0, 0xc00000000000L, active1, 0L, active2, 0L);
      case 97:
         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x100000004000440L, active2, 0L);
      case 98:
         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000020800L, active2, 0L);
      case 99:
         if ((active1 & 0x1000000000L) != 0L)
            return jjStopAtPos(3, 100);
         return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L, active1, 0x4000000080L, active2, 0L);
      case 100:
         if ((active1 & 0x800000000L) != 0L)
            return jjStopAtPos(3, 99);
         else if ((active1 & 0x200000000000L) != 0L)
            return jjStopAtPos(3, 109);
         return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000L, active1, 0x40000018000000L, active2, 0x2000L);
      case 101:
         if ((active0 & 0x20000000000000L) != 0L)
            return jjStopAtPos(3, 53);
         return jjMoveStringLiteralDfa4_0(active0, 0x400L, active1, 0x2400000000000L, active2, 0x4003L);
      case 103:
         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x50000L, active2, 0L);
      case 104:
         if ((active0 & 0x40L) != 0L)
            return jjStopAtPos(3, 6);
         return jjMoveStringLiteralDfa4_0(active0, 0x40040000000000L, active1, 0x880200L, active2, 0L);
      case 105:
         return jjMoveStringLiteralDfa4_0(active0, 0x680000000001000L, active1, 0x4010820001000023L, active2, 0x500L);
      case 107:
         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x40000000L, active2, 0x200L);
      case 108:
         return jjMoveStringLiteralDfa4_0(active0, 0x100000000L, active1, 0x8004050080000000L, active2, 0L);
      case 109:
         return jjMoveStringLiteralDfa4_0(active0, 0x20800000000L, active1, 0x208108a000000000L, active2, 0x1000L);
      case 110:
         if ((active1 & 0x400000L) != 0L)
            return jjStopAtPos(3, 86);
         return jjMoveStringLiteralDfa4_0(active0, 0x2808018000000000L, active1, 0x102104L, active2, 0x10L);
      case 111:
         if ((active0 & 0x1000000000L) != 0L)
            return jjStopAtPos(3, 36);
         return jjMoveStringLiteralDfa4_0(active0, 0x8000000600000000L, active1, 0x608000000004000L, active2, 0L);
      case 112:
         if ((active0 & 0x100L) != 0L)
            return jjStopAtPos(3, 8);
         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1000000200000000L, active2, 0L);
      case 114:
         return jjMoveStringLiteralDfa4_0(active0, 0x1082000010000L, active1, 0x200008L, active2, 0x8084L);
      case 115:
         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x20000002000000L, active2, 0x800L);
      case 116:
         if ((active0 & 0x20000L) != 0L)
            return jjStopAtPos(3, 17);
         else if ((active0 & 0x80000L) != 0L)
            return jjStopAtPos(3, 19);
         else if ((active0 & 0x1000000L) != 0L)
            return jjStopAtPos(3, 24);
         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x120001010L, active2, 0x68L);
      case 118:
         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000000L, active2, 0L);
      case 121:
         return jjMoveStringLiteralDfa4_0(active0, 0x1000000000000000L, active1, 0x8000L, active2, 0L);
      default :
         break;
   }
   return jjStartNfa_0(2, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(2, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(3, active0, active1, active2);
      return 4;
   }
   switch(curChar)
   {
      case 97:
         if ((active0 & 0x10000L) != 0L)
            return jjStopAtPos(4, 16);
         return jjMoveStringLiteralDfa5_0(active0, 0x400000000000L, active1, 0x80080041000L, active2, 0x8L);
      case 98:
         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000L, active2, 0L);
      case 99:
         if ((active0 & 0x400L) != 0L)
            return jjStopAtPos(4, 10);
         return jjMoveStringLiteralDfa5_0(active0, 0x800800000001000L, active1, 0L, active2, 0x80L);
      case 100:
         return jjMoveStringLiteralDfa5_0(active0, 0x200000000000000L, active1, 0x404L, active2, 0L);
      case 101:
         if ((active0 & 0x4000000000000L) != 0L)
            return jjStopAtPos(4, 50);
         else if ((active0 & 0x8000000000000L) != 0L)
            return jjStopAtPos(4, 51);
         return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000000L, active1, 0xa0000640800200L, active2, 0xa200L);
      case 102:
         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x400L);
      case 104:
         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x10L, active2, 0L);
      case 105:
         return jjMoveStringLiteralDfa5_0(active0, 0x4041020000000000L, active1, 0xa80001a11a302908L, active2, 0x1014L);
      case 108:
         return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000000L, active1, 0x400040004000000L, active2, 0x4000L);
      case 109:
         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800020004000L, active2, 0L);
      case 110:
         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0xa400000080060L, active2, 0L);
      case 111:
         if ((active0 & 0x100000000L) != 0L)
            return jjStopAtPos(4, 32);
         else if ((active0 & 0x800000000L) != 0L)
            return jjStopAtPos(4, 35);
         else if ((active0 & 0x2000000000L) != 0L)
            return jjStopAtPos(4, 37);
         else if ((active0 & 0x10000000000L) != 0L)
            return jjStopAtPos(4, 40);
         else if ((active0 & 0x40000000000L) != 0L)
            return jjStopAtPos(4, 42);
         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000L, active1, 0x20080L, active2, 0x40L);
      case 112:
         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000000000000L, active2, 0L);
      case 114:
         return jjMoveStringLiteralDfa5_0(active0, 0x600000000L, active1, 0x1100000000000000L, active2, 0x1L);
      case 115:
         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0x10000L, active2, 0L);
      case 116:
         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0L, active2, 0x802L);
      case 117:
         return jjMoveStringLiteralDfa5_0(active0, 0x480000000000000L, active1, 0x4015024001000003L, active2, 0x120L);
      case 121:
         return jjMoveStringLiteralDfa5_0(active0, 0x8000000000L, active1, 0x40000000000000L, active2, 0L);
      default :
         break;
   }
   return jjStartNfa_0(3, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(3, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(4, active0, active1, active2);
      return 5;
   }
   switch(curChar)
   {
      case 97:
         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10L, active2, 0L);
      case 98:
         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x1L);
      case 99:
         return jjMoveStringLiteralDfa6_0(active0, 0x400000000000L, active1, 0L, active2, 0x8L);
      case 100:
         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x80008000L, active2, 0L);
      case 101:
         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x20080000L, active2, 0x800L);
      case 104:
         return jjMoveStringLiteralDfa6_0(active0, 0x800000000000L, active1, 0L, active2, 0L);
      case 105:
         return jjMoveStringLiteralDfa6_0(active0, 0xa00000000000000L, active1, 0x70a4c0000004464L, active2, 0x4082L);
      case 108:
         if ((active0 & 0x8000000000L) != 0L)
            return jjStopAtPos(5, 39);
         else if ((active1 & 0x40000000L) != 0L)
            return jjStopAtPos(5, 94);
         return jjMoveStringLiteralDfa6_0(active0, 0x1001000000000000L, active1, 0x1000L, active2, 0x2200L);
      case 109:
         if ((active0 & 0x80000000000000L) != 0L)
            return jjStopAtPos(5, 55);
         else if ((active0 & 0x400000000000000L) != 0L)
            return jjStopAtPos(5, 58);
         else if ((active1 & 0x1L) != 0L)
            return jjStopAtPos(5, 64);
         else if ((active1 & 0x2L) != 0L)
            return jjStopAtPos(5, 65);
         else if ((active1 & 0x1000000L) != 0L)
            return jjStopAtPos(5, 88);
         else if ((active1 & 0x20000000000L) != 0L)
            return jjStopAtPos(5, 105);
         else if ((active1 & 0x10000000000000L) != 0L)
            return jjStopAtPos(5, 116);
         else if ((active1 & 0x4000000000000000L) != 0L)
            return jjStopAtPos(5, 126);
         else if ((active2 & 0x100L) != 0L)
            return jjStopAtPos(5, 136);
         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x40000000000000L, active2, 0L);
      case 110:
         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L, active1, 0x8100840080L, active2, 0x8060L);
      case 111:
         if ((active0 & 0x200000000L) != 0L)
            return jjStopAtPos(5, 33);
         else if ((active0 & 0x400000000L) != 0L)
            return jjStopAtPos(5, 34);
         return jjMoveStringLiteralDfa6_0(active0, 0x1000L, active1, 0x1020800000000000L, active2, 0x400L);
      case 114:
         if ((active1 & 0x200000000L) != 0L)
            return jjStopAtPos(5, 97);
         else if ((active1 & 0x400000000L) != 0L)
            return jjStopAtPos(5, 98);
         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4004000020200L, active2, 0L);
      case 115:
         return jjMoveStringLiteralDfa6_0(active0, 0x2100000000000000L, active1, 0L, active2, 0L);
      case 116:
         if ((active1 & 0x4000000L) != 0L)
            return jjStopAtPos(5, 90);
         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000000L, active1, 0x81000000010000L, active2, 0L);
      case 117:
         return jjMoveStringLiteralDfa6_0(active0, 0x4040000000000000L, active1, 0xa80001201a302908L, active2, 0x1014L);
      case 120:
         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000L, active1, 0L, active2, 0L);
      default :
         break;
   }
   return jjStartNfa_0(4, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(4, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(5, active0, active1, active2);
      return 6;
   }
   switch(curChar)
   {
      case 99:
         if ((active1 & 0x400000000000L) != 0L)
            return jjStopAtPos(6, 110);
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0L, active2, 0x8000L);
      case 100:
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x20000000000000L, active2, 0L);
      case 101:
         if ((active0 & 0x1000000000000L) != 0L)
            return jjStopAtPos(6, 48);
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x58000L, active2, 0x2000L);
      case 102:
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200L, active2, 0L);
      case 103:
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x20000L, active2, 0L);
      case 104:
         if ((active1 & 0x1000000000000L) != 0L)
            return jjStopAtPos(6, 112);
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x80000000000000L, active2, 0L);
      case 105:
         return jjMoveStringLiteralDfa7_0(active0, 0xb100400000000000L, active1, 0x44008080800080L, active2, 0xa61L);
      case 108:
         return jjMoveStringLiteralDfa7_0(active0, 0x800000000000L, active1, 0L, active2, 0L);
      case 109:
         if ((active0 & 0x40000000000000L) != 0L)
            return jjStopAtPos(6, 54);
         else if ((active0 & 0x4000000000000000L) != 0L)
            return jjStopAtPos(6, 62);
         else if ((active1 & 0x8L) != 0L)
            return jjStopAtPos(6, 67);
         else if ((active1 & 0x100L) != 0L)
            return jjStopAtPos(6, 72);
         else if ((active1 & 0x800L) != 0L)
            return jjStopAtPos(6, 75);
         else if ((active1 & 0x2000L) != 0L)
            return jjStopAtPos(6, 77);
         else if ((active1 & 0x100000L) != 0L)
            return jjStopAtPos(6, 84);
         else if ((active1 & 0x200000L) != 0L)
            return jjStopAtPos(6, 85);
         else if ((active1 & 0x2000000L) != 0L)
            return jjStopAtPos(6, 89);
         else if ((active1 & 0x8000000L) != 0L)
            return jjStopAtPos(6, 91);
         else if ((active1 & 0x10000000L) != 0L)
            return jjStopAtPos(6, 92);
         else if ((active1 & 0x2000000000L) != 0L)
            return jjStopAtPos(6, 101);
         else if ((active1 & 0x10000000000L) != 0L)
            return jjStopAtPos(6, 104);
         else if ((active1 & 0x800000000000000L) != 0L)
            return jjStopAtPos(6, 123);
         else if ((active1 & 0x2000000000000000L) != 0L)
            return jjStopAtPos(6, 125);
         else if ((active1 & 0x8000000000000000L) != 0L)
            return jjStopAtPos(6, 127);
         else if ((active2 & 0x4L) != 0L)
            return jjStopAtPos(6, 130);
         else if ((active2 & 0x10L) != 0L)
            return jjStopAtPos(6, 132);
         else if ((active2 & 0x1000L) != 0L)
            return jjStopAtPos(6, 140);
         break;
      case 110:
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x400880000000010L, active2, 0L);
      case 111:
         if ((active0 & 0x20000000000L) != 0L)
            return jjStopAtPos(6, 41);
         break;
      case 114:
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x20000000L, active2, 0x400L);
      case 115:
         if ((active0 & 0x1000L) != 0L)
            return jjStopAtPos(6, 12);
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x1000000000000000L, active2, 0L);
      case 116:
         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x80000L, active2, 0x8L);
      case 117:
         return jjMoveStringLiteralDfa7_0(active0, 0xa00000000000000L, active1, 0x30a040100005464L, active2, 0x4082L);
      case 121:
         if ((active0 & 0x80000000000L) != 0L)
            return jjStopAtPos(6, 43);
         else if ((active1 & 0x4000000000L) != 0L)
            return jjStopAtPos(6, 102);
         break;
      default :
         break;
   }
   return jjStartNfa_0(5, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(5, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(6, active0, active1, active2);
      return 7;
   }
   switch(curChar)
   {
      case 100:
         if ((active0 & 0x400000000000L) != 0L)
            return jjStopAtPos(7, 46);
         break;
      case 105:
         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x14800800200a0000L, active2, 0x8008L);
      case 109:
         if ((active0 & 0x200000000000000L) != 0L)
            return jjStopAtPos(7, 57);
         else if ((active0 & 0x800000000000000L) != 0L)
            return jjStopAtPos(7, 59);
         else if ((active1 & 0x4L) != 0L)
            return jjStopAtPos(7, 66);
         else if ((active1 & 0x20L) != 0L)
            return jjStopAtPos(7, 69);
         else if ((active1 & 0x40L) != 0L)
            return jjStopAtPos(7, 70);
         else if ((active1 & 0x400L) != 0L)
            return jjStopAtPos(7, 74);
         else if ((active1 & 0x1000L) != 0L)
            return jjStopAtPos(7, 76);
         else if ((active1 & 0x4000L) != 0L)
            return jjStopAtPos(7, 78);
         else if ((active1 & 0x100000000L) != 0L)
            return jjStopAtPos(7, 96);
         else if ((active1 & 0x40000000000L) != 0L)
            return jjStopAtPos(7, 106);
         else if ((active1 & 0x2000000000000L) != 0L)
            return jjStopAtPos(7, 113);
         else if ((active1 & 0x8000000000000L) != 0L)
            return jjStopAtPos(7, 115);
         else if ((active1 & 0x100000000000000L) != 0L)
            return jjStopAtPos(7, 120);
         else if ((active1 & 0x200000000000000L) != 0L)
            return jjStopAtPos(7, 121);
         else if ((active2 & 0x2L) != 0L)
            return jjStopAtPos(7, 129);
         else if ((active2 & 0x80L) != 0L)
            return jjStopAtPos(7, 135);
         else if ((active2 & 0x4000L) != 0L)
            return jjStopAtPos(7, 142);
         break;
      case 110:
         if ((active1 & 0x10000L) != 0L)
            return jjStopAtPos(7, 80);
         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8000L, active2, 0xc00L);
      case 111:
         return jjMoveStringLiteralDfa8_0(active0, 0x800000000000L, active1, 0x200L, active2, 0L);
      case 115:
         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40000L, active2, 0L);
      case 117:
         return jjMoveStringLiteralDfa8_0(active0, 0xb100000000000000L, active1, 0x44008080800090L, active2, 0x261L);
      case 118:
         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0L, active2, 0x2000L);
      case 121:
         if ((active1 & 0x800000000000L) != 0L)
            return jjStopAtPos(7, 111);
         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000000000L, active2, 0L);
      default :
         break;
   }
   return jjStartNfa_0(6, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(6, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(7, active0, active1, active2);
      return 8;
   }
   switch(curChar)
   {
      case 101:
         if ((active1 & 0x40000L) != 0L)
            return jjStopAtPos(8, 82);
         break;
      case 105:
         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x2c00L);
      case 109:
         if ((active0 & 0x100000000000000L) != 0L)
            return jjStopAtPos(8, 56);
         else if ((active0 & 0x1000000000000000L) != 0L)
            return jjStopAtPos(8, 60);
         else if ((active0 & 0x2000000000000000L) != 0L)
            return jjStopAtPos(8, 61);
         else if ((active0 & 0x8000000000000000L) != 0L)
            return jjStopAtPos(8, 63);
         else if ((active1 & 0x10L) != 0L)
            return jjStopAtPos(8, 68);
         else if ((active1 & 0x80L) != 0L)
            return jjStopAtPos(8, 71);
         else if ((active1 & 0x800000L) != 0L)
            return jjStopAtPos(8, 87);
         else if ((active1 & 0x80000000L) != 0L)
            return jjStopAtPos(8, 95);
         else if ((active1 & 0x8000000000L) != 0L)
            return jjStopAtPos(8, 103);
         else if ((active1 & 0x4000000000000L) != 0L)
            return jjStopAtPos(8, 114);
         else if ((active1 & 0x40000000000000L) != 0L)
            return jjStopAtPos(8, 118);
         else if ((active2 & 0x1L) != 0L)
            return jjStopAtPos(8, 128);
         else if ((active2 & 0x20L) != 0L)
            return jjStopAtPos(8, 133);
         else if ((active2 & 0x40L) != 0L)
            return jjStopAtPos(8, 134);
         else if ((active2 & 0x200L) != 0L)
            return jjStopAtPos(8, 137);
         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x20000000000000L, active2, 0L);
      case 110:
         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0L, active2, 0x8L);
      case 114:
         return jjMoveStringLiteralDfa9_0(active0, 0x800000000000L, active1, 0x200L, active2, 0L);
      case 117:
         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x14800800200a8000L, active2, 0x8000L);
      default :
         break;
   }
   return jjStartNfa_0(7, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(7, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(8, active0, active1, active2);
      return 9;
   }
   switch(curChar)
   {
      case 100:
         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x200L, active2, 0L);
      case 105:
         return jjMoveStringLiteralDfa10_0(active0, 0x800000000000L, active1, 0x20000000000000L, active2, 0x8L);
      case 109:
         if ((active1 & 0x8000L) != 0L)
            return jjStopAtPos(9, 79);
         else if ((active1 & 0x20000L) != 0L)
            return jjStopAtPos(9, 81);
         else if ((active1 & 0x80000L) != 0L)
            return jjStopAtPos(9, 83);
         else if ((active1 & 0x20000000L) != 0L)
            return jjStopAtPos(9, 93);
         else if ((active1 & 0x80000000000L) != 0L)
            return jjStopAtPos(9, 107);
         else if ((active1 & 0x80000000000000L) != 0L)
            return jjStopAtPos(9, 119);
         else if ((active1 & 0x400000000000000L) != 0L)
            return jjStopAtPos(9, 122);
         else if ((active1 & 0x1000000000000000L) != 0L)
            return jjStopAtPos(9, 124);
         else if ((active2 & 0x8000L) != 0L)
            return jjStopAtPos(9, 143);
         break;
      case 117:
         return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0L, active2, 0x2c00L);
      default :
         break;
   }
   return jjStartNfa_0(8, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa10_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(8, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(9, active0, active1, active2);
      return 10;
   }
   switch(curChar)
   {
      case 100:
         return jjMoveStringLiteralDfa11_0(active0, 0x800000000000L, active1, 0L, active2, 0L);
      case 105:
         return jjMoveStringLiteralDfa11_0(active0, 0L, active1, 0x200L, active2, 0L);
      case 109:
         if ((active2 & 0x400L) != 0L)
            return jjStopAtPos(10, 138);
         else if ((active2 & 0x800L) != 0L)
            return jjStopAtPos(10, 139);
         else if ((active2 & 0x2000L) != 0L)
            return jjStopAtPos(10, 141);
         break;
      case 117:
         return jjMoveStringLiteralDfa11_0(active0, 0L, active1, 0x20000000000000L, active2, 0x8L);
      default :
         break;
   }
   return jjStartNfa_0(9, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa11_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(9, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(10, active0, active1, active2);
      return 11;
   }
   switch(curChar)
   {
      case 101:
         if ((active0 & 0x800000000000L) != 0L)
            return jjStopAtPos(11, 47);
         break;
      case 109:
         if ((active1 & 0x20000000000000L) != 0L)
            return jjStopAtPos(11, 117);
         else if ((active2 & 0x8L) != 0L)
            return jjStopAtPos(11, 131);
         break;
      case 117:
         return jjMoveStringLiteralDfa12_0(active0, 0L, active1, 0x200L, active2, 0L);
      default :
         break;
   }
   return jjStartNfa_0(10, active0, active1, active2);
}
private final int jjMoveStringLiteralDfa12_0(long old0, long active0, long old1, long active1, long old2, long active2)
{
   if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L)
      return jjStartNfa_0(10, old0, old1, old2); 
   try { curChar = input_stream.readChar(); }
   catch(java.io.IOException e) {
      jjStopStringLiteralDfa_0(11, 0L, active1, 0L);
      return 12;
   }
   switch(curChar)
   {
      case 109:
         if ((active1 & 0x200L) != 0L)
            return jjStopAtPos(12, 73);
         break;
      default :
         break;
   }
   return jjStartNfa_0(11, 0L, active1, 0L);
}
private final void jjCheckNAdd(int state)
{
   if (jjrounds[state] != jjround)
   {
      jjstateSet[jjnewStateCnt++] = state;
      jjrounds[state] = jjround;
   }
}
private final void jjAddStates(int start, int end)
{
   do {
      jjstateSet[jjnewStateCnt++] = jjnextStates[start];
   } while (start++ != end);
}
private final void jjCheckNAddTwoStates(int state1, int state2)
{
   jjCheckNAdd(state1);
   jjCheckNAdd(state2);
}
private final void jjCheckNAddStates(int start, int end)
{
   do {
      jjCheckNAdd(jjnextStates[start]);
   } while (start++ != end);
}
private final void jjCheckNAddStates(int start)
{
   jjCheckNAdd(jjnextStates[start]);
   jjCheckNAdd(jjnextStates[start + 1]);
}
private final int jjMoveNfa_0(int startState, int curPos)
{
   int[] nextStates;
   int startsAt = 0;
   jjnewStateCnt = 10;
   int i = 1;
   jjstateSet[0] = startState;
   int j, kind = 0x7fffffff;
   for (;;)
   {
      if (++jjround == 0x7fffffff)
         ReInitRounds();
      if (curChar < 64)
      {
         long l = 1L << curChar;
         MatchLoop: do
         {
            switch(jjstateSet[--i])
            {
               case 0:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (kind > 2)
                        kind = 2;
                     jjCheckNAdd(1);
                  }
                  else if ((0x2400L & l) != 0L)
                  {
                     if (kind > 1)
                        kind = 1;
                  }
                  break;
               case 1:
                  if ((0x3ff000000000000L & l) == 0L)
                     break;
                  kind = 2;
                  jjCheckNAdd(1);
                  break;
               default : break;
            }
         } while(i != startsAt);
      }
      else if (curChar < 128)
      {
         long l = 1L << (curChar & 077);
         MatchLoop: do
         {
            switch(jjstateSet[--i])
            {
               case 0:
                  if (curChar == 105)
                     jjstateSet[jjnewStateCnt++] = 8;
                  else if (curChar == 101)
                     jjstateSet[jjnewStateCnt++] = 5;
                  break;
               case 2:
                  if (curChar == 115)
                     kind = 11;
                  break;
               case 3:
               case 7:
                  if (curChar == 111)
                     jjCheckNAdd(2);
                  break;
               case 4:
                  if (curChar == 99)
                     jjstateSet[jjnewStateCnt++] = 3;
                  break;
               case 5:
                  if (curChar == 105)
                     jjstateSet[jjnewStateCnt++] = 4;
                  break;
               case 6:
                  if (curChar == 101)
                     jjstateSet[jjnewStateCnt++] = 5;
                  break;
               case 8:
                  if (curChar == 99)
                     jjstateSet[jjnewStateCnt++] = 7;
                  break;
               case 9:
                  if (curChar == 105)
                     jjstateSet[jjnewStateCnt++] = 8;
                  break;
               default : break;
            }
         } while(i != startsAt);
      }
      else
      {
         int i2 = (curChar & 0xff) >> 6;
         long l2 = 1L << (curChar & 077);
         MatchLoop: do
         {
            switch(jjstateSet[--i])
            {
               default : break;
            }
         } while(i != startsAt);
      }
      if (kind != 0x7fffffff)
      {
         jjmatchedKind = kind;
         jjmatchedPos = curPos;
         kind = 0x7fffffff;
      }
      ++curPos;
      if ((i = jjnewStateCnt) == (startsAt = 10 - (jjnewStateCnt = startsAt)))
         return curPos;
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) { return curPos; }
   }
}
static final int[] jjnextStates = {
};
public static final String[] jjstrLiteralImages = {
"", null, null, null, "\55", "\54", "\155\145\164\150", "\145\164\150", 
"\160\162\157\160", "\142\165\164", "\165\156\144\145\143", null, "\150\145\156\151\143\157\163", 
"\150\145\156", "\144\157", "\164\162\151", "\164\145\164\162\141", "\160\145\156\164", 
"\150\145\170", "\150\145\160\164", "\157\143\164", "\156\157\156", "\144\145\143", 
"\143\157\163", "\143\157\156\164", null, null, "\141\156", "\145\156", "\171\156", 
"\171\154", "\144\151", "\143\171\143\154\157", "\143\150\154\157\162\157", 
"\146\154\165\157\162\157", "\142\162\157\155\157", "\151\157\144\157", "\156\151\164\162\157", 
"\157\170\157", "\160\150\145\156\171\154", "\141\155\151\156\157", 
"\141\154\165\155\151\156\157", "\154\151\164\150\157", "\150\171\144\162\157\170\171", "\145", "\157\154", 
"\157\151\143\40\141\143\151\144", "\157\171\154\40\143\150\154\157\162\151\144\145", 
"\156\151\164\162\151\154\145", "\141\154", "\141\155\151\144\145", "\141\155\151\156\145", "\157\156\145", 
"\157\141\164\145", "\154\151\164\150\151\165\155", "\163\157\144\151\165\155", 
"\160\157\164\141\163\163\151\165\155", "\162\165\142\151\144\151\165\155", "\143\145\163\151\165\155", 
"\146\162\141\156\143\151\165\155", "\142\145\162\171\154\154\151\165\155", 
"\155\141\147\156\145\163\151\165\155", "\143\141\154\143\151\165\155", "\163\164\162\157\156\164\151\165\155", 
"\142\141\162\151\165\155", "\162\141\144\151\165\155", "\163\143\141\156\144\151\165\155", 
"\171\164\164\162\151\165\155", "\154\141\156\164\150\141\156\165\155", "\141\143\164\151\156\151\165\155", 
"\164\151\164\141\156\151\165\155", "\172\151\162\143\157\156\151\165\155", "\150\141\146\156\151\165\155", 
"\162\165\164\150\145\162\146\157\162\144\151\165\155", "\166\141\156\141\144\151\165\155", "\156\151\157\142\151\165\155", 
"\164\141\156\164\141\154\165\155", "\144\165\142\156\151\165\155", "\143\150\162\157\155\151\165\155", 
"\155\157\154\171\142\144\145\156\165\155", "\164\165\156\147\163\164\145\156", 
"\163\145\141\142\157\162\147\151\165\155", "\155\141\156\147\141\156\145\163\145", 
"\164\145\143\150\156\145\164\151\165\155", "\162\150\145\156\151\165\155", "\142\157\150\162\151\165\155", 
"\151\162\157\156", "\162\165\164\150\145\156\151\165\155", "\157\163\155\151\165\155", 
"\150\141\163\163\151\165\155", "\143\157\142\141\154\164", "\162\150\157\144\151\165\155", 
"\151\162\151\144\151\165\155", "\155\145\151\164\155\145\162\151\165\155", "\156\151\143\153\145\154", 
"\160\141\154\154\141\144\151\165\155", "\160\154\141\164\151\156\165\155", "\143\157\160\160\145\162", 
"\163\151\154\166\145\162", "\147\157\154\144", "\172\151\156\143", "\143\141\144\155\151\165\155", 
"\155\145\162\143\165\162\171", "\141\154\165\155\151\156\151\165\155", "\147\141\154\154\151\165\155", 
"\151\156\144\151\165\155", "\164\150\141\154\154\151\165\155", 
"\147\145\162\155\141\151\156\151\165\155", "\164\151\156", "\154\145\141\144", "\141\162\163\145\156\151\143", 
"\141\156\164\151\155\157\156\171", "\142\151\163\155\165\164\150", "\163\145\154\145\156\151\165\155", 
"\164\145\154\154\165\162\151\165\155", "\160\157\154\157\156\151\165\155", "\143\145\162\151\165\155", 
"\160\162\141\163\145\157\144\171\155\151\165\155", "\156\145\157\144\171\155\151\165\155", 
"\160\162\157\155\145\164\150\151\165\155", "\163\141\156\141\162\151\165\155", "\145\165\162\157\160\151\165\155", 
"\147\141\144\157\154\151\156\151\165\155", "\164\145\162\142\151\165\155", "\144\171\163\160\162\157\163\151\165\155", 
"\150\157\154\155\151\165\155", "\145\162\142\151\165\155", "\164\150\165\154\151\165\155", 
"\171\164\164\145\162\142\151\165\155", "\154\165\164\145\164\151\165\155", "\164\150\157\162\151\165\155", 
"\160\162\157\164\141\143\164\151\156\151\165\155", "\165\162\141\156\151\165\155", "\156\145\160\164\165\156\151\165\155", 
"\160\154\165\164\157\156\151\165\155", "\141\155\145\162\143\151\165\155", "\143\165\162\151\165\155", 
"\142\145\162\153\145\154\151\165\155", "\143\141\154\151\146\157\162\156\151\165\155", 
"\145\151\156\163\164\145\151\156\151\165\155", "\146\145\162\155\151\165\155", 
"\155\145\156\144\145\154\145\166\151\165\155", "\156\157\142\145\154\151\165\155", 
"\154\141\167\162\145\156\143\151\165\155", };
public static final String[] lexStateNames = {
   "DEFAULT", 
};
static final long[] jjtoToken = {
   0xfffffffff9fffff7L, 0xffffffffffffffffL, 0xffffL, 
};
static final long[] jjtoSkip = {
   0x6000000L, 0x0L, 0x0L, 
};
protected SimpleCharStream input_stream;
private final int[] jjrounds = new int[10];
private final int[] jjstateSet = new int[20];
protected char curChar;
public NomParserTokenManager(SimpleCharStream stream)
{
   if (SimpleCharStream.staticFlag)
      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
   input_stream = stream;
}
public NomParserTokenManager(SimpleCharStream stream, int lexState)
{
   this(stream);
   SwitchTo(lexState);
}
public void ReInit(SimpleCharStream stream)
{
   jjmatchedPos = jjnewStateCnt = 0;
   curLexState = defaultLexState;
   input_stream = stream;
   ReInitRounds();
}
private final void ReInitRounds()
{
   int i;
   jjround = 0x80000001;
   for (i = 10; i-- > 0;)
      jjrounds[i] = 0x80000000;
}
public void ReInit(SimpleCharStream stream, int lexState)
{
   ReInit(stream);
   SwitchTo(lexState);
}
public void SwitchTo(int lexState)
{
   if (lexState >= 1 || lexState < 0)
      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
   else
      curLexState = lexState;
}

protected Token jjFillToken()
{
   Token t = Token.newToken(jjmatchedKind);
   t.kind = jjmatchedKind;
   String im = jjstrLiteralImages[jjmatchedKind];
   t.image = (im == null) ? input_stream.GetImage() : im;
   t.beginLine = input_stream.getBeginLine();
   t.beginColumn = input_stream.getBeginColumn();
   t.endLine = input_stream.getEndLine();
   t.endColumn = input_stream.getEndColumn();
   return t;
}

int curLexState = 0;
int defaultLexState = 0;
int jjnewStateCnt;
int jjround;
int jjmatchedPos;
int jjmatchedKind;

public Token getNextToken() 
{
  int kind;
  Token specialToken = null;
  Token matchedToken;
  int curPos = 0;

  EOFLoop :
  for (;;)
  {   
   try   
   {     
      curChar = input_stream.BeginToken();
   }     
   catch(java.io.IOException e)
   {        
      jjmatchedKind = 0;
      matchedToken = jjFillToken();
      return matchedToken;
   }

   try { input_stream.backup(0);
      while (curChar <= 32 && (0x100000000L & (1L << curChar)) != 0L)
         curChar = input_stream.BeginToken();
   }
   catch (java.io.IOException e1) { continue EOFLoop; }
   jjmatchedKind = 0x7fffffff;
   jjmatchedPos = 0;
   curPos = jjMoveStringLiteralDfa0_0();
   if (jjmatchedKind != 0x7fffffff)
   {
      if (jjmatchedPos + 1 < curPos)
         input_stream.backup(curPos - jjmatchedPos - 1);
      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
      {
         matchedToken = jjFillToken();
         return matchedToken;
      }
      else
      {
         continue EOFLoop;
      }
   }
   int error_line = input_stream.getEndLine();
   int error_column = input_stream.getEndColumn();
   String error_after = null;
   boolean EOFSeen = false;
   try { input_stream.readChar(); input_stream.backup(1); }
   catch (java.io.IOException e1) {
      EOFSeen = true;
      error_after = curPos <= 1 ? "" : input_stream.GetImage();
      if (curChar == '\n' || curChar == '\r') {
         error_line++;
         error_column = 0;
      }
      else
         error_column++;
   }
   if (!EOFSeen) {
      input_stream.backup(1);
      error_after = curPos <= 1 ? "" : input_stream.GetImage();
   }
   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
  }
}

}
