jj_la1[46] = jj_gen;
jj_la1[47] = jj_gen;
  final public void statement() throws ParseException {        Token ident, module, iend;    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {    case IDENT:      ident = identifier();      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case COLON:        jj_consume_token(COLON);                             beginStatement();        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case ENTITY:        case IDENT:          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {          case ENTITY:            jj_consume_token(ENTITY);            break;          default:            jj_la1[36] = jj_gen;            ;          }          module = identifier();          iend = skipTo(EOS);                                        addInstance( ident.beginLine, iend.endLine, module.image, ident.image );          break;        case FOR:        case IF:          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {          case IF:            jj_consume_token(IF);            break;          case FOR:            jj_consume_token(FOR);            break;          default:            jj_la1[37] = jj_gen;            jj_consume_token(-1);            throw new ParseException();          }          skipTo(GENERATE);          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {          case BEGIN:            jj_consume_token(BEGIN);            label_12:            while (true) {              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {              case PROCESS:              case BLOCK:              case ASSERT:              case WITH:              case IDENT:                ;                break;              default:                jj_la1[38] = jj_gen;                break label_12;              }              statement();            }            break;          case PROCESS:          case BLOCK:          case ASSERT:          case WITH:          case IDENT:            label_13:            while (true) {              statement();              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {              case PROCESS:              case BLOCK:              case ASSERT:              case WITH:              case IDENT:                ;                break;              default:                jj_la1[39] = jj_gen;                break label_13;              }            }            break;          default:            jj_la1[40] = jj_gen;            jj_consume_token(-1);            throw new ParseException();          }          jj_consume_token(END);          jj_consume_token(GENERATE);          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {          case IDENT:            identifier();            break;          default:            jj_la1[41] = jj_gen;            ;          }          jj_consume_token(EOS);          break;        case PROCESS:          jj_consume_token(PROCESS);          process();          break;        default:          jj_la1[42] = jj_gen;          jj_consume_token(-1);          throw new ParseException();        }                         endStatement();        break;      default:        jj_la1[44] = jj_gen;                         beginStatement();        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {        case LPAREN:          jj_consume_token(LPAREN);          skipParen();          jj_consume_token(RPAREN);          break;        default:          jj_la1[43] = jj_gen;          ;        }        skipTo(EOS);                         endStatement();      }      break;    case WITH:      jj_consume_token(WITH);                        beginStatement();      skipTo(EOS);                                                          endStatement();      break;    case PROCESS:      jj_consume_token(PROCESS);                           beginStatement();      process();                                                         endStatement();      break;    case BLOCK:      jj_consume_token(BLOCK);                         beginStatement();      skipTo2(END, BLOCK);      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case IDENT:        identifier();        break;      default:        jj_la1[45] = jj_gen;        ;      }      jj_consume_token(EOS);                                                                      endStatement();      break;    case ASSERT:      jj_consume_token(ASSERT);                          beginStatement();      skipTo(EOS);                                                            endStatement();      break;    default:      jj_la1[46] = jj_gen;      jj_consume_token(-1);      throw new ParseException();    }  }