public static void cppOutputVariableDefinition(Cons variable) {
    { Stella_Object kind = variable.value;
      String documentation = StringWrapper.unwrapString(((StringWrapper)(variable.rest.value)));
      Stella_Object type = variable.rest.rest.value;
      Stella_Object name = variable.fourth();
      Stella_Object initialvalue = variable.fifth();

      if (documentation != null) {
        StringWrapper.cppOutputComment(StringWrapper.wrapString(documentation));
      }
      if (((GeneralizedSymbol)(kind)) == Stella.SYM_STELLA_CPP_SPECIAL) {
        if (Stella.specialImplementationStyle() == Stella.KWD_UNBIND_WITH_DESTRUCTORS) {
          Stella_Object.cppOutputStatement(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_FUNCTION_CALL, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_IDENT, Cons.cons(StringWrapper.wrapString("DEFINE_STELLA_SPECIAL"), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_ACTUALS, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_IDENT, Cons.cons(name, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(type, Cons.cons(Cons.cons(initialvalue, Stella.NIL), Stella.NIL))))), Cons.cons(Stella.NIL, Stella.NIL))))));
        }
        else {
          Stella_Object.cppOutputTypedEntity(type, name, initialvalue);
        }
      }
      else {
        Stella_Object.cppOutputTypedEntity(type, name, initialvalue);
      }
      {
        ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.println(";");
        ((OutputStream)(Stella.$CURRENT_STREAM$.get())).nativeStream.println();
      }
;
    }
  }