static final public Engine program() throws ParseException {
                    Engine engine = new Engine(); ActorType at; CreateActorStatement createStmt; SendMessageStatement sendStmt;
    label_1:
    while (true) {
      at = actor_type();
                       engine.addActorType(at);
      if (jj_2_1(4)) {
        ;
      } else {
        break label_1;
      }
    }
    label_2:
    while (true) {
      createStmt = create_actor_stmt();
                                      engine.getCreates().add(createStmt);
      if (jj_2_2(4)) {
        ;
      } else {
        break label_2;
      }
    }
    label_3:
    while (true) {
      sendStmt = msg_send_stmt();
                                  engine.addMessage(sendStmt);
      if (jj_2_3(4)) {
        ;
      } else {
        break label_3;
      }
    }
     {if (true) return engine;}
    throw new Error("Missing return statement in function");
  }