public static Cons yieldOnCursorClauses(Cons ontree, Object [] MV_returnarray) {
    { Stella_Object iteratorvar = ontree.rest.value;

      if (!Stella_Object.symbolP(iteratorvar)) {
        { 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(" Illegal ON clause with non-atomic variable: `" + Stella_Object.deUglifyParseTree(ontree) + "'.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
          }
        }
        { Cons _return_temp = Stella.NIL;

          MV_returnarray[0] = Stella.NIL;
          MV_returnarray[1] = Stella.NIL;
          MV_returnarray[2] = Stella.SYM_STELLA_FALSE;
          return (_return_temp);
        }
      }
      { Stella_Object collectiontree = null;
        StandardObject collectiontype = null;

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

          collectiontree = Stella_Object.walkCollectionTree(ontree.rest.rest.value, true, caller_MV_returnarray);
          collectiontype = ((StandardObject)(caller_MV_returnarray[0]));
        }
        if (StandardObject.subTypeSpecOfP(collectiontype, Stella.SGT_STELLA_ARGUMENT_LIST)) {
          { 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(" ON iteration not supported for ARGUMENT-LISTs: `" + Stella_Object.deUglifyParseTree(ontree) + "'.");
                }
;
              }

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
            }
          }
          { Cons _return_temp = Stella.NIL;

            MV_returnarray[0] = Stella.NIL;
            MV_returnarray[1] = Stella.NIL;
            MV_returnarray[2] = Stella.SYM_STELLA_FALSE;
            return (_return_temp);
          }
        }
        ontree.thirdSetter(null);
        if (!Surrogate.safeSubtypeOfP(StandardObject.typeSpecToBaseType(collectiontype), Stella.SGT_STELLA_ABSTRACT_ITERATOR)) {
          collectiontree = Cons.list$(Cons.cons(Stella.SYM_STELLA_ALLOCATE_ITERATOR, Cons.cons(collectiontree, Cons.cons(Stella.NIL, Stella.NIL))));
        }
        { Cons _return_temp = Cons.cons(Cons.cons(iteratorvar, Cons.list$(Cons.cons(Stella.SGT_STELLA_ABSTRACT_ITERATOR, Cons.cons(collectiontree, Cons.cons(Stella.NIL, Stella.NIL))))), Stella.NIL);

          MV_returnarray[0] = Stella.NIL;
          MV_returnarray[1] = Stella.NIL;
          MV_returnarray[2] = Cons.list$(Cons.cons(Stella.SYM_STELLA_NEXTp, Cons.cons(iteratorvar, Cons.cons(Stella.NIL, Stella.NIL))));
          return (_return_temp);
        }
      }
    }
  }