/* consume all initial off-channel tokens */
 protected void consumeInitialHiddenTokens() {
   int firstOnChannelTokenIndex = input.index();
   for (int i = 0; i < firstOnChannelTokenIndex; i++) {
     dbg.consumeHiddenToken(input.get(i));
   }
   initialStreamState = false;
 }
 @Override
 public void consume() {
   if (initialStreamState) {
     consumeInitialHiddenTokens();
   }
   int a = input.index();
   Token t = input.LT(1);
   input.consume();
   int b = input.index();
   dbg.consumeToken(t);
   if (b > a + 1) {
     // then we consumed more than one token; must be off channel tokens
     for (int i = a + 1; i < b; i++) {
       dbg.consumeHiddenToken(input.get(i));
     }
   }
 }
    public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
      TokenStream input = (TokenStream) _input;
      int _s = s;
      switch (s) {
        case 0:
          int LA5_1 = input.LA(1);

          int index5_1 = input.index();
          input.rewind();
          s = -1;
          if ((LA5_1 == 8) && ((input.LT(1).getText().charAt(0) == 'D'))) {
            s = 2;
          } else if ((LA5_1 == WS)
              && ((CLASSPATH.equals(input.LT(1).getText())
                  || CLASSPATH_LONG.equals(input.LT(1).getText())))) {
            s = 3;
          } else if (((switchOptions.contains(input.LT(1).getText())))) {
            s = 4;
          } else if (((VERBOSE.equals(input.LT(1).getText())
              || input.LT(1).getText().startsWith(VERBOSE + ':')))) {
            s = 5;
          } else if (((VERSION.equals(input.LT(1).getText())
              || input.LT(1).getText().startsWith(VERSION + ':')))) {
            s = 6;
          } else if (((input.LT(1).getText().startsWith(XSHARE + ':')))) {
            s = 7;
          } else if (((input.LT(1).getText().startsWith(XCJNI + ':')))) {
            s = 8;
          } else if (((isParamOption(input.LT(1).getText())))) {
            s = 9;
          } else if (((memOptions.matcher(input.LT(1).getText()).matches()))) {
            s = 10;
          } else if ((true)) {
            s = 11;
          }

          input.seek(index5_1);
          if (s >= 0) return s;
          break;
      }
      NoViableAltException nvae = new NoViableAltException(getDescription(), 5, _s, input);
      error(nvae);
      throw nvae;
    }
 @Override
 public int index() {
   return input.index();
 }