/* Generated By:JavaCC: Do not edit this line. DSigParserTokenManager.java */
package w3c.pics.parser;
import java.io.*;
import java.util.*;

public class DSigParserTokenManager implements DSigParserConstants
{
  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 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 0:
                  if ((0x3ff000000000000L & l) != 0L)
                  {
                     if (jjcurKind > 7)
                        jjcurKind = 7;
                     return;
                  }
                  else continue;
               default : continue;
            }
         } while(i != 0);
      }
      else if (curChar < 128)
      {
         int i = jjnewStateCnt;
         jjnewStateCnt = 0;
         jjround++;
         long l = 1L << (curChar & 077);
         do
         {
            switch(oldStates[--i])
            {
               case 1:
                  if ((0x7fffffe07fffffeL & l) != 0L)
                  {
                     if (jjcurKind > 5)
                        jjcurKind = 5;
                     return;
                  }
                  else continue;
               default : continue;
            }
         } while(i != 0);
      }
      else
      {
         jjnewStateCnt = 0;
         return;
      }
      return;
   }
}
static int[] StopStringLiteralDfa_0(int pos, long active0)
{
   switch (pos)
   {
      case 0:
         if ((active0 & 0x30000000000L) != 0L)
         {
            matchedToken.kind = 5;
            return jjstates2;
         }
         return null;
      case 1:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 2:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 3:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 4:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 5:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 6:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 7:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 8:
         if ((active0 & 0x30000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      case 9:
         if ((active0 & 0x10000000000L) != 0L)
         {
            if (jjmatchedPos == 0)
            {
               matchedToken.kind = 5;
               jjmatchedPos = 0;
            }
            return jjstates2;
         }
         return null;
      default : 
         return null;
   }
}
static 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;
}
static long jjnewActive_00 = 0L, jjoldActive_00 = 0L;
static private final void jjMoveStringLiteralDfa0_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
         switch(curChar)
         {
            case 65: 
            case 97: 
               jjoldActive_00 = 0x10000000000L;
               break;
            case 96: 
               matchedToken.kind = 14;
               break ReturnLoop;
            case 95: 
               matchedToken.kind = 22;
               break ReturnLoop;
            case 94: 
               matchedToken.kind = 12;
               break ReturnLoop;
            case 93: 
               matchedToken.kind = 35;
               break ReturnLoop;
            case 92: 
               matchedToken.kind = 11;
               break ReturnLoop;
            case 91: 
               matchedToken.kind = 34;
               break ReturnLoop;
            case 64: 
               matchedToken.kind = 15;
               break ReturnLoop;
            case 63: 
               matchedToken.kind = 26;
               break ReturnLoop;
            case 62: 
               matchedToken.kind = 37;
               break ReturnLoop;
            case 61: 
               matchedToken.kind = 29;
               break ReturnLoop;
            case 60: 
               matchedToken.kind = 36;
               break ReturnLoop;
            case 59: 
               matchedToken.kind = 25;
               break ReturnLoop;
            case 58: 
               matchedToken.kind = 27;
               break ReturnLoop;
            case 47: 
               matchedToken.kind = 16;
               break ReturnLoop;
            case 46: 
               matchedToken.kind = 23;
               break ReturnLoop;
            case 45: 
               matchedToken.kind = 21;
               break ReturnLoop;
            case 44: 
               matchedToken.kind = 33;
               break ReturnLoop;
            case 43: 
               matchedToken.kind = 24;
               break ReturnLoop;
            case 42: 
               matchedToken.kind = 31;
               break ReturnLoop;
            case 41: 
               matchedToken.kind = 18;
               break ReturnLoop;
            case 40: 
               matchedToken.kind = 17;
               break ReturnLoop;
            case 39: 
               matchedToken.kind = 32;
               break ReturnLoop;
            case 38: 
               matchedToken.kind = 28;
               break ReturnLoop;
            case 37: 
               matchedToken.kind = 39;
               break ReturnLoop;
            case 36: 
               matchedToken.kind = 20;
               break ReturnLoop;
            case 35: 
               matchedToken.kind = 38;
               break ReturnLoop;
            case 34: 
               matchedToken.kind = 19;
               break ReturnLoop;
            case 33: 
               matchedToken.kind = 30;
               break ReturnLoop;
            case 32: 
               matchedToken.kind = 4;
               break ReturnLoop;
            case 126: 
               matchedToken.kind = 13;
               break ReturnLoop;
            case 125: 
               matchedToken.kind = 9;
               break ReturnLoop;
            case 124: 
               matchedToken.kind = 10;
               break ReturnLoop;
            case 123: 
               matchedToken.kind = 8;
               break ReturnLoop;
            case 83: 
            case 115: 
               jjoldActive_00 = 0x20000000000L;
               break;
            case 13: 
               matchedToken.kind = 3;
               break ReturnLoop;
            case 10: 
               matchedToken.kind = 2;
               break ReturnLoop;
            case 9: 
               matchedToken.kind = 1;
               break ReturnLoop;
            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;
}
static private final void jjMoveStringLiteralDfa1_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 84: 
            case 116: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x10000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 73: 
            case 105: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x20000000000L)) == 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;
    }
   }
}
static private final void jjMoveStringLiteralDfa2_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 84: 
            case 116: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x10000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 71: 
            case 103: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x20000000000L)) == 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;
    }
   }
}
static private final void jjMoveStringLiteralDfa3_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 82: 
            case 114: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x10000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 78: 
            case 110: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x20000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            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;
    }
   }
}
static private final void jjMoveStringLiteralDfa4_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 65: 
            case 97: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x20000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 73: 
            case 105: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x10000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            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;
    }
   }
}
static private final void jjMoveStringLiteralDfa5_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 66: 
            case 98: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x10000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 84: 
            case 116: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x20000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            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;
    }
   }
}
static private final void jjMoveStringLiteralDfa6_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 85: 
            case 117: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x20000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 73: 
            case 105: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x10000000000L)) == 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;
    }
   }
}
static private final void jjMoveStringLiteralDfa7_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 82: 
            case 114: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x20000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 78: 
            case 110: 
               if (((jjnewActive_00 = jjoldActive_00 & 0x10000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(7, jjnewActive_00); 
            curPos = 8;
            throw e;
         }
         jjMoveStringLiteralDfa8_0();
         return;
      }
      jjStartNfa_0(6, jjoldActive_00); 
      curPos = 8;
      return;
    }
   }
}
static private final void jjMoveStringLiteralDfa8_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 70: 
            case 102: 
               if (((jjoldActive_00 = jjnewActive_00 & 0x10000000000L)) == 0L)
                  break StartNfaLoop;
               break;
            case 69: 
            case 101: 
               if ((jjnewActive_00 & 0x20000000000L) != 0L)
               {
                  matchedToken.kind = 41;
                  break ReturnLoop;
               }
               break StartNfaLoop;
            default : 
               break StartNfaLoop;
         }
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) {
            StopStringLiteralDfa_0(8, jjoldActive_00); 
            curPos = 9;
            throw e;
         }
         jjMoveStringLiteralDfa9_0();
         return;
      }
      jjStartNfa_0(7, jjnewActive_00); 
      curPos = 9;
      return;
    }
   }
   jjmatchedPos = 8;
   curPos = 9;
   return;
}
static private final void jjMoveStringLiteralDfa9_0() throws java.io.IOException
{
   ReturnLoop:
   for (;;)
   {
    MainLoop:
    for (;;)
    {
      StartNfaLoop:
      for (;;)
      { 
         switch(curChar)
         {
            case 79: 
            case 111: 
               if ((jjoldActive_00 & 0x10000000000L) != 0L)
               {
                  matchedToken.kind = 40;
                  break ReturnLoop;
               }
               break StartNfaLoop;
            default : 
               break StartNfaLoop;
         }
      }
      jjStartNfa_0(8, jjoldActive_00); 
      curPos = 10;
      return;
    }
   }
   jjmatchedPos = 9;
   curPos = 10;
   return;
}
static final int[] jjallInitStates_0 = { 0, 1, };
static final int[] jjstates0 = { 0, };
static final int[] jjstates1 = { 1, };
static final int[] jjstates2 = null;
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, null, null, 
null, null, null, null, null, 
null, null, null, null, null, 
null, null, jjstates0, jjstates0, jjstates0, 
jjstates0, jjstates0, jjstates0, jjstates0, jjstates0, 
jjstates0, jjstates0, null, null, null, 
null, null, null, null, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
null, null, null, null, null, 
null, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, jjstates1, jjstates1, jjstates1, 
jjstates1, jjstates1, null, null, null, 
null, null, };

public static final String[] jjstrLiteralImages = {
null, null, null, null, null, null, null, null, "\173", "\175", "\174", 
"\134", "\136", "\176", "\140", "\100", "\57", "\50", "\51", "\42", "\44", "\55", 
"\137", "\56", "\53", "\73", "\77", "\72", "\46", "\75", "\41", "\52", "\47", "\54", 
"\133", "\135", "\74", "\76", "\43", "\45", null, null, };
public static final String[] lexStateNames = {
   "DEFAULT", 
};
static final long[] jjtoToken = 
{
0x3ffffffffe0L,
};
static final long[] jjtoSkip = 
{
0x1eL,
};
static final long[] jjtoSpecial = 
{
0x10L,
};
static private ASCII_CharStream input_stream;
static private int[] jjrounds = new int[2];
static private int[] jjstateSet1 = new int[2];
static private int[] jjstateSet2 = new int[2];
static private int[] jjnextStates;
static int curPos;
static protected char curChar;
static int jjcurKind = 2147483647;
static DSigParserTokenManager jjme;
public DSigParserTokenManager(ASCII_CharStream stream)
{
if (input_stream != null)
{
   System.err.println("ERROR: Second call to constructor of static lexer.  You must");
   System.err.println("       either use ReInit() or set the JavaCC option STATIC to false");
   System.err.println("       during lexer generation.");
   throw new Error();
}
input_stream = stream;
jjme = this;
}
public DSigParserTokenManager(ASCII_CharStream stream, int lexState)
{
if (input_stream != null)
{
   System.err.println("ERROR: Second call to constructor of static lexer.  You must");
   System.err.println("       either use ReInit() or set the JavaCC option STATIC to false");
   System.err.println("       during lexer generation.");
   throw new Error();
}
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;
}
static public void ReInit(ASCII_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 = 2; i-- > 0;)
   jjrounds[i] = 0;
}
static public void ReInit(ASCII_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 = 2; i-- > 0;)
   jjrounds[i] = 0;
}
static public void SwitchTo(int lexState)
{
   if (lexState >= 1 || lexState < 0)
      System.out.println("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.");
   else
      curLexState = lexState;
}


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

static 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 = "";
      matchedToken.specialToken = jjspecialToken;
      jjspecialToken = null;
      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();
            matchedToken.specialToken = jjspecialToken;
            jjspecialToken = null;
            return matchedToken;
         }
         else
         {
            if ((jjtoSpecial[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();
               if (jjspecialToken == null)
                  jjspecialToken = matchedToken;
               else
               {
                  matchedToken.specialToken = jjspecialToken;
                  jjspecialToken = (jjspecialToken.next = matchedToken);
               }
               matchedToken = new Token();
            }
            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();
            matchedToken.specialToken = jjspecialToken;
            jjspecialToken = null;
            return matchedToken;
         }
         else
         {
            if ((jjtoSpecial[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();
               if (jjspecialToken == null)
                  jjspecialToken = matchedToken;
               else
               {
                  matchedToken.specialToken = jjspecialToken;
                  jjspecialToken = (jjspecialToken.next = matchedToken);
               }
               matchedToken = new Token();
            }
            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 + "\"");
}
}
