Metropoli BBS
VIEWER: execdyan.c MODE: TEXT (ASCII)
/* Copyright (C) 1993 by Thomas Glen Smith.  All Rights Reserved. */
/* execdyan APL2 V1.0.0 ************************************************
* Called from execdotf, execdyad, nreduces, and nwised,                          *
* to do a APL dyadic function, returning Aplcb.                        *
***********************************************************************/
#define INCLUDES APLCHDEF+FUNSTRUC+APLCB+TREE+APLTOKCD
#include "includes.h"
Aplcb execdyan(code,func,left,rite)
int code; /* token type */
void *func; /* function description */
Aplcb left,rite; /* arguments */
{
     Derived; Errstop; Execdyaj; Funcmain;
     extern Treelist treehdr;
     Aplcb (*dyad_func)(void *, Aplcb, Aplcb);

     if (code >= DEFINED_FUNCTION) {
          dyad_func = funcmain; /* user defined function */
          treehdr->lastfun = 2; /* last done was user defined */
     }
     else if (code == FUNCTION_TOKEN)
          dyad_func = execdyaj; /* builtin dyadics */
     else if (code == DERIVED_FUNCTION)
          dyad_func = derived;
     else return(errstop(65,left,rite,NULL)); /* unknown dyadic */
     return(dyad_func(func,left,rite));
}
[ RETURN TO DIRECTORY ]