final public Program PsyScript() throws ParseException {
        Procedure proc;
        Table table;
    label_1:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PROCEDURE:
        proc = Procedure();
                         p.add(proc);
        break;
      case TABLE:
        table = Table();
                         p.add(table);
        break;
      default:
        jj_la1[0] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TABLE:
      case PROCEDURE:
        ;
        break;
      default:
        jj_la1[1] = jj_gen;
        break label_1;
      }
    }
          {if (true) return p;}
    throw new Error("Missing return statement in function");
  }