public static Cons javaTranslateSpecialTree(Cons tree) {
    { Cons savedeclarations = Stella.NIL;
      Cons setforms = Stella.NIL;
      Cons restoreforms = Stella.NIL;
      Cons otree = null;

      { Stella_Object declaration = null;
        Cons iter000 = ((Cons)(tree.rest.value));

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          declaration = iter000.value;
          { Cons d = ((Cons)(declaration));
            Symbol specialvariablename = ((Symbol)(d.value));
            Stella_Object oldvaluevariable = Stella_Object.javaTranslateATree(Stella.localGensym("OLD-" + specialvariablename.symbolName));

            savedeclarations = Cons.cons(Cons.cons(StringWrapper.wrapString("Object"), Cons.cons(oldvaluevariable, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_METHOD_CALL, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_IDENT, Cons.cons(StringWrapper.wrapString(""), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_IDENT, Cons.cons(StringWrapper.wrapString("get"), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_IDENT, Cons.cons(Symbol.javaTranslateGlobalName(specialvariablename, false), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.cons(Stella.SYM_STELLA_JAVA_ACTUALS, Stella.NIL), Cons.cons(Stella.NIL, Stella.NIL))))))), Stella.NIL))), savedeclarations);
            setforms = Cons.cons(Stella_Object.javaTranslateATree(Cons.list$(Cons.cons(Stella.SYM_STELLA_SETQ, Cons.cons(d.value, Cons.cons(Cons.cons(d.rest.rest.value, Stella.NIL), Stella.NIL))))), setforms);
            restoreforms = Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_METHOD_CALL, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_IDENT, Cons.cons(StringWrapper.wrapString(""), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_IDENT, Cons.cons(StringWrapper.wrapString("set"), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_IDENT, Cons.cons(Symbol.javaTranslateGlobalName(specialvariablename, false), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_ACTUALS, Cons.cons(oldvaluevariable, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))))))), restoreforms);
          }
        }
      }
      otree = Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_BLOCK, Cons.cons(savedeclarations.reverse(), Cons.cons(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_STATEMENTS, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_JAVA_UNWIND_PROTECT, Cons.cons(Cons.cons(Stella.SYM_STELLA_JAVA_STATEMENTS, setforms.reverse().concatenate(Cons.javaTranslateListOfTrees(tree.rest.rest).concatenate(Stella.NIL, Stella.NIL), Stella.NIL)), Cons.cons(restoreforms.concatenate(Stella.NIL, Stella.NIL), Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Stella.NIL))));
      return (otree);
    }
  }