public static Cons walkConditionalTree(Cons tree, Object [] MV_returnarray) {
    { Stella_Object operator = tree.value;
      Stella_Object test = Stella_Object.walkExpressionTree(tree.rest.value, Stella.SGT_STELLA_BOOLEAN, ((Symbol)(operator)), true, new Object[1]);

      tree.secondSetter(test);
      if (Stella_Object.proceduralExpressionP(test)) {
        { Cons _return_temp = Cons.transformBooleanProceduralExpression(tree, ((Cons)(test)), new Object[1]);

          MV_returnarray[0] = Stella.SGT_STELLA_VOID;
          return (_return_temp);
        }
      }
      { GeneralizedSymbol testValue000 = ((GeneralizedSymbol)(operator));

        if (testValue000 == Stella.SYM_STELLA_IF) {
          if (Cons.badArgumentCountP(tree, 3)) {
            return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_VOID, MV_returnarray));
          }
          tree.thirdSetter(Stella_Object.walkStatement(tree.rest.rest.value, true));
          tree.fourthSetter(Stella_Object.walkStatement(tree.fourth(), true));
        }
        else if ((testValue000 == Stella.SYM_STELLA_WHEN) ||
            (testValue000 == Stella.SYM_STELLA_UNLESS)) {
          tree.rest.rest = Cons.walkListOfStatements(tree.rest.rest);
        }
        else {
          { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

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

        MV_returnarray[0] = Stella.SGT_STELLA_VOID;
        return (_return_temp);
      }
    }
  }