final public IndexList IndexList() throws ParseException {
    NodeList list = new NodeList();
    Token implied_t;
    Identifier identifier;
    Token comma_t;
    boolean implied;
      implied = false;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IMPLIED_T:
      implied_t = jj_consume_token(IMPLIED_T);
      break;
    default:
      jj_la1[58] = jj_gen;
      ;
    }
    identifier = ValueIdentifier();
      list.addNode(new Index(identifier, implied));
    label_12:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case COMMA_T:
        ;
        break;
      default:
        jj_la1[59] = jj_gen;
        break label_12;
      }
      comma_t = jj_consume_token(COMMA_T);
          implied = false;
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case IMPLIED_T:
        implied_t = jj_consume_token(IMPLIED_T);
              implied = true;
        break;
      default:
        jj_la1[60] = jj_gen;
        ;
      }
      identifier = ValueIdentifier();
          list.addNode(new Index(identifier, implied));
    }
      list.nodes.trimToSize();
      {if (true) return new IndexList(list);}
    throw new Error("Missing return statement in function");
  }