public static Cons clTranslateConditionalTree(Cons tree) {
    { Stella_Object operator = tree.value;
      Stella_Object test = tree.rest.value;
      Cons body = tree.rest.rest;

      tree.rest.rest = Stella.NIL;
      { GeneralizedSymbol testValue000 = ((GeneralizedSymbol)(operator));

        if ((testValue000 == Stella.SYM_STELLA_IF) ||
            (testValue000 == Stella.SYM_STELLA_CHOOSE)) {
          return (Cons.list$(Cons.cons(Stella.internCommonLispSymbol("IF"), Cons.cons(Stella_Object.clTranslateBooleanTest(test, false), Cons.cons(Cons.cons(Stella_Object.clTranslateATree(body.value), Cons.cons(Stella_Object.clTranslateATree(body.rest.value), Stella.NIL)), Stella.NIL)))));
        }
        else if (testValue000 == Stella.SYM_STELLA_WHEN) {
          return (Cons.list$(Cons.cons(Stella.internCommonLispSymbol("WHEN"), Cons.cons(Stella_Object.clTranslateBooleanTest(test, false), Cons.cons(Cons.clTranslateListOfTrees(body).concatenate(Stella.NIL, Stella.NIL), Stella.NIL)))));
        }
        else if (testValue000 == Stella.SYM_STELLA_UNLESS) {
          return (Cons.list$(Cons.cons(Stella.internCommonLispSymbol("WHEN"), Cons.cons(Stella_Object.clTranslateBooleanTest(test, true), Cons.cons(Cons.clTranslateListOfTrees(body).concatenate(Stella.NIL, Stella.NIL), Stella.NIL)))));
        }
        else {
          { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

            stream000.nativeStream.print("`" + testValue000 + "' is not a valid case option");
            throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
          }
        }
      }
    }
  }