public static Cons cppTranslateMethodCall(Cons tree, boolean referencedP) {
    { Symbol methodname = ((Symbol)(tree.rest.value));
      Surrogate owner = ((Surrogate)(tree.value));
      Cons arguments = tree.rest.rest;

      if ((methodname == Stella.SYM_STELLA_DEFINEDp) ||
          (methodname == Stella.SYM_STELLA_NULLp)) {
        return (Surrogate.cppTranslateDefinedPMethodCall(owner, arguments.value, methodname == Stella.SYM_STELLA_NULLp));
      }
      else if ((methodname == Stella.SYM_STELLA_NTH) ||
          (methodname == Stella.SYM_STELLA_NTH_SETTER)) {
        return (Symbol.cppTranslateNthMethodCall(methodname, owner, arguments));
      }
      else if ((methodname == Stella.SYM_STELLA_AREF) ||
          (methodname == Stella.SYM_STELLA_AREF_SETTER)) {
        return (Symbol.cppTranslateArefMethodCall(methodname, owner, arguments));
      }
      else {
        if ((owner == Stella.SGT_STELLA_ARGUMENT_LIST) ||
            (owner == Stella.SGT_STELLA_ARGUMENT_LIST_ITERATOR)) {
          return (Symbol.cppTranslateArgumentListTree(methodname, owner, arguments.value));
        }
      }
      return (Symbol.cppTranslateNormalMethodCall(methodname, owner, arguments, referencedP));
    }
  }