public static Cons clTranslateSpecialTree(Cons tree) {
    { Cons translatedtree = Cons.clTranslateLetTree(tree, true);
      Cons specialvars = Stella.NIL;

      { Cons decl = null;
        Cons iter000 = ((Cons)(tree.rest.value));
        Cons collect000 = null;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          decl = ((Cons)(iter000.value));
          if (collect000 == null) {
            {
              collect000 = Cons.cons(decl.value, Stella.NIL);
              if (specialvars == Stella.NIL) {
                specialvars = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(specialvars, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(decl.value, Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      translatedtree.rest.rest = Cons.cons(Cons.list$(Cons.cons(Stella.internCommonLispSymbol("DECLARE"), Cons.cons(Cons.cons(Stella.internCommonLispSymbol("SPECIAL"), specialvars.concatenate(Stella.NIL, Stella.NIL)), Cons.cons(Stella.NIL, Stella.NIL)))), translatedtree.rest.rest);
      return (translatedtree);
    }
  }