public static Stella_Object clTranslateCallMethodTree(Cons tree) {
    { Symbol operator = null;
      Surrogate owner = null;
      Cons arguments = null;

      { Object [] caller_MV_returnarray = new Object[2];

        operator = Cons.destructureCallTree(tree, caller_MV_returnarray);
        owner = ((Surrogate)(caller_MV_returnarray[0]));
        arguments = ((Cons)(caller_MV_returnarray[1]));
      }
      if ((operator == Stella.SYM_STELLA_NTH) ||
          (operator == Stella.SYM_STELLA_NTH_SETTER)) {
        return (Cons.clTranslateNthTree(tree));
      }
      else if ((operator == Stella.SYM_STELLA_AREF) ||
          (operator == Stella.SYM_STELLA_AREF_SETTER)) {
        return (Cons.clTranslateArefTree(tree));
      }
      else if ((operator == Stella.SYM_STELLA_NULLp) ||
          (operator == Stella.SYM_STELLA_DEFINEDp)) {
        return (Stella_Object.clTranslatePlainBooleanTest(tree, false));
      }
      else {
      }
      if ((owner == Stella.SGT_STELLA_ARGUMENT_LIST) ||
          (owner == Stella.SGT_STELLA_ARGUMENT_LIST_ITERATOR)) {
        return (Cons.clTranslateArgumentListTree(tree));
      }
      if (Stella.$CL_OPERATOR_TABLE$.lookup(operator) != null) {
        return (Cons.clTranslateOperatorTree(tree));
      }
      return (Symbol.clTranslateNormalCallMethodTree(operator, owner, arguments));
    }
  }