/* Copyright (C) 1997 by Thomas Glen Smith. All Rights Reserved. */
/* execdyav APL2 V1.0.1 ************************************************
* Called from execdyas to check for a dyadic routine of type *
* (*oper)(Aplcb, Aplcb, Aplcb). *
***********************************************************************/
#define INCLUDES APLCB+APLDERIV+FUNSTRUC+FUNCODES
#include "includes.h"
sub_dyad execdyav(fun)
void *fun;
{
Mixed_dyadics *mdp;
sub_dyad ret;
switch (((Codes *)fun)->funky_flags) {
case DIXE: /* drop */
mdp = &(((Dmxo *)fun)->dyad);
ret = mdp->epdixe;
break;
case MIXE: /* partition */
case MIXG: /* pick */
case UPAR: /* take */
mdp = &(((Mixa *)fun)->dyad);
ret = mdp->epdixe;
break;
default:
ret=NULL; /* no match */
break;
}
return(ret);
}