/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */
/* execdyah APL2 V1.0.0 ************************************************
* Called by execexed and execsped to perform dyadic processing. *
***********************************************************************/
#define INCLUDES STDIO+APLTOKEN+APLCB+TREE
#include "includes.h"
int execdyah(op)
Apltoken op; /* token for argument to assign to */
{
Execdyad; Execexeh; Lifo; Pop;
extern Treelist treehdr;
extern int aplerr;
Apltoken rtok;
int noexit=1;
if (aplerr) return(!noexit);
if (NULL != (rtok = pop(&(treehdr->avlexec->avloprst)))) {
op = execdyad(op,rtok); /* do dyadic */
if (execexeh(op) /* test for defined function w/o return */
|| aplerr)
return(!noexit); /* func w/o return */
}
op = lifo(&(treehdr->avlexec->avloprst),op);
return(aplerr == 0);
}