/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */
/* execdyas APL2 V1.0.0 ************************************************
* Called from dottran, eachdyad, execdyak, and slashtrc to determine *
* the dyadic derived function type, as described in aplderiv.h *
***********************************************************************/
#define INCLUDES APLDERIV
#include "includes.h"
int execdyas(fun,arg,pep)
void *fun; /* funstruct */
void **arg; /* possible derived function argument */
sub_dyad *pep; /* derived function entry point */
{
Execdyap; Execdyaq; Execdyar; Execdyau; Execdyav;
extern int aplerr;
sub_dyad ep;
*pep = ep = execdyap(fun,arg);
if (ep.flr)
return(FLR); /* FLR is described in aplderiv.h */
*pep = ep = execdyaq(fun);
if (ep.dix)
return(DIX); /* DIX is described in aplderiv.h */
*pep = ep = execdyau(fun);
if (ep.dnl)
return(DNL); /* DNL is described in aplderiv.h */
*pep = ep = execdyar(fun);
if (ep.wax)
return(WAX); /* WAX is described in aplderiv.h */
*pep = ep = execdyav(fun);
if (ep.dox)
return(DOX); /* DOX is described in aplderiv.h */
aplerr = 65; /* unknown dyadic */
return(NO_TYPE);
}