Metropoli BBS
VIEWER: execmonk.c MODE: TEXT (ASCII)
/* Copyright (C) 1994 by Thomas Glen Smith.  All Rights Reserved. */
/* execmonk - APL2 V1.0.0 **********************************************
* Called from execmonj when rite is of type APLAPL, and it's a scalar. *
***********************************************************************/
#define INCLUDES APLCB+APLDERIV
#include "includes.h"
Aplcb execmonk(ptype,arg,ep,rite,axisp)
deriv_type ptype;
void *arg;
sub_dyad ep;
Aplcb rite;
int *axisp;
{
	Aplcopy; Errstop; Getcb; Temp;
     extern int aplerr;
     Aplcb *ib,*ob,out,tb;
     int i;

	i = rite->aplcount;
     if (0 == i)
     	return(errstop(0,NULL,rite,temp(aplcopy(rite))));
     out = getcb(NULL,rite->aplcount,APLAPL+APLTEMP,rite->aplrank,NULL);
     if (out) {
     	ib = rite->aplptr.aplapl;
     	ob = out->aplptr.aplapl;
     	while (i-- && aplerr == 0) {
     		*ob++ = tb = (axisp == NULL) ?
               	ep.moa(arg,*ib++) :
                    ep.mox(*ib++,*axisp);
               if (tb != NULL) tb->aplflags -= APLTEMP;
          }
     }
     return(errstop(0,NULL,rite,out));
}
[ RETURN TO DIRECTORY ]