Metropoli BBS
VIEWER: execdyal.c MODE: TEXT (ASCII)
/* Copyright (C) 1993 by Thomas Glen Smith.  All Rights Reserved. */
/* execdyal APL2 V1.0.0 ************************************************
* The entry point to execdyal is returned by execdyap to execdyas when *
* the function is type EQNE.  Execdyas stores the entry point to       *
* execdyal in dp->deriv_left.func, the address of which is passed to   *
* execdyas by slashtrc.  Redscan tests for dp->deriv_left.func being   *
* equal to either execdyal or execdyam, and if so, and the data type   *
* is other than APLAPL, it processes the current operation as a        *
* primitive dyadic scalar.                                             *
***********************************************************************/
#define INCLUDES APLCB+FUNSTRUC
#include "includes.h"
Aplcb execdyal(pfun,left,rite)
void *pfun; /* function structure - see funstruc.h */
Aplcb left,rite; /* function arguments */
{
     Dyadicp; Execdyat;
     int lefttype,ritetype;

     lefttype = left->aplflags & (APLMASK + APLAPL); /* data type */
     ritetype = rite->aplflags & (APLMASK + APLAPL); /* data type */
     if (lefttype == APLAPL || ritetype == APLAPL)
     	return(execdyat(pfun,left,rite,execdyal));
     else return(dyadicp(pfun,left,rite));
}
[ RETURN TO DIRECTORY ]