public static Cons cppTranslateIfTree(Cons tree) {
    { Stella_Object test = Stella_Object.cppTranslateATree(tree.rest.value);
      Cons truebody = ((Cons)(Stella_Object.cppTranslateATree(tree.rest.rest.value)));
      Cons falsebody = ((Cons)(Stella_Object.cppTranslateATree(tree.fourth())));

      if (Stella_Object.consP(truebody.value) &&
          (!(truebody.rest == Stella.NIL))) {
        truebody = Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_PROGN, Cons.cons(Cons.cons(Stella.SYM_STELLA_CPP_STATEMENTS, truebody.concatenate(Stella.NIL, Stella.NIL)), Cons.cons(Stella.NIL, Stella.NIL))));
      }
      else {
        truebody = Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_PROGN, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_STATEMENTS, Cons.cons(truebody, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))));
      }
      if (Stella_Object.consP(falsebody.value) &&
          (!(falsebody.rest == Stella.NIL))) {
        falsebody = Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_PROGN, Cons.cons(Cons.cons(Stella.SYM_STELLA_CPP_STATEMENTS, falsebody.concatenate(Stella.NIL, Stella.NIL)), Cons.cons(Stella.NIL, Stella.NIL))));
      }
      else {
        falsebody = Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_PROGN, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_STATEMENTS, Cons.cons(falsebody, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))));
      }
      return (Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_IF, Cons.cons(test, Cons.cons(Cons.cons(truebody, Cons.cons(falsebody, Stella.NIL)), Stella.NIL)))));
    }
  }