public static Cons cppTranslateArgumentListTree(Symbol operator, Surrogate owner, Stella_Object argument) {
    owner = owner;
    if (operator == Stella.SYM_STELLA_ALLOCATE_ITERATOR) {
      { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

        try {
          Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
          Stella.signalTranslationError();
          if (!(Stella.suppressWarningsP())) {
            Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
            {
              Stella.STANDARD_ERROR.nativeStream.println();
              Stella.STANDARD_ERROR.nativeStream.println(" Cannot handle explicit calls to `ARGUMENT-LIST.ALLOCATE-ITERATOR' in C++.");
            }
;
          }

        } finally {
          Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
        }
      }
      return (((Cons)(Stella_Object.cppTranslateATree(argument))));
    }
    else if (operator == Stella.SYM_STELLA_LENGTH) {
      return (((Cons)(Stella_Object.cppTranslateATree(MethodSlot.variableArgumentsName(((MethodSlot)(Stella.$METHODBEINGWALKED$.get())))))));
    }
    else if (operator == Stella.SYM_STELLA_NEXTp) {
      return (Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_BINARY_OP, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_UNARY_OP, Cons.cons(Stella_Object.cppTranslateATree(Symbol.cppYieldVaIteratorHelperVariable(((Symbol)(argument)))), Cons.cons(Symbol.cppLookupOperatorTable(Stella.SYM_STELLA___).concatenate(Stella.NIL, Stella.NIL), Stella.NIL)))), Cons.cons(Symbol.cppLookupOperatorTable(Stella.SYM_STELLA_g).concatenate(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_LITERAL, Cons.cons(IntegerWrapper.wrapInteger(0), Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Stella.NIL), Stella.NIL)))));
    }
    else if (operator == Stella.SYM_STELLA_ARGUMENT) {
      return (Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_FUNCTION_CALL, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_IDENT, Cons.cons(Symbol.cppTranslateName(Stella.SYM_STELLA_VA_ARG), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_ACTUALS, Cons.cons(Stella_Object.cppTranslateATree(argument), Cons.cons(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_IDENT, Cons.cons(StandardObject.cppTranslateAndPointerizeTypeSpec(MethodSlot.variableArgumentsType(((MethodSlot)(Stella.$METHODBEINGWALKED$.get())))), Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))))));
    }
    else {
      { Object old$PrintreadablyP$001 = Stella.$PRINTREADABLYp$.get();

        try {
          Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
          Stella.signalTranslationError();
          if (!(Stella.suppressWarningsP())) {
            Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
            {
              Stella.STANDARD_ERROR.nativeStream.println();
              Stella.STANDARD_ERROR.nativeStream.println(" Cannot translate call to `" + Stella_Object.deUglifyParseTree(operator) + "' on an `ARGUMENT-LIST'.");
            }
;
          }

        } finally {
          Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
        }
      }
      return (Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_FUNCTION_CALL, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_IDENT, Cons.cons(Symbol.cppTranslateName(operator), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_ACTUALS, Cons.cons(Stella_Object.cppTranslateATree(argument), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL))))));
    }
  }