public static Cons cppTranslateArefMethodCall(Symbol operator, Surrogate owner, Cons arguments) {
    if (owner == Stella.SGT_STELLA_ARRAY) {
      { boolean setterP = operator == Stella.SYM_STELLA_AREF_SETTER;
        Cons otree = Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_ARRAY_REFERENCE, Cons.cons(Stella_Object.cppTranslateATree(arguments.value), Cons.cons(Cons.cppTranslateListOfTrees((setterP ? arguments.rest.rest : arguments.rest)).concatenate(Stella.NIL, Stella.NIL), Stella.NIL))));

        if (setterP) {
          otree = Cons.list$(Cons.cons(Stella.SYM_STELLA_CPP_ASSIGN, Cons.cons(otree, Cons.cons(Cons.cons(Stella_Object.cppTranslateATree(arguments.rest.value), Stella.NIL), Stella.NIL))));
        }
        return (otree);
      }
    }
    else {
      { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

        stream000.nativeStream.print("`" + owner + "' is not a valid case option");
        throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
      }
    }
  }