/* Copyright (C) 1992 by Thomas Glen Smith. All Rights Reserved. */ /* execopck APL2 V1.0.0 ************************************************ * Called by execexee when it has an operand. Execopck will take care * * of any operand indexing indicated on the operand stack, and will * * invoke execdyad if a dyadic function is available to perform. * ***********************************************************************/ #define INCLUDES STDIO+APLTOKEN+APLCB+TREE #include "includes.h" Apltoken execopck(op) Apltoken op; /* current token */ { Axistest; Execdyad; Execindx; Popnest; extern Treelist treehdr; extern int aplerr; Apltoken ritetok; while (axistest(treehdr->avlexec->avloprst)) op = execindx(op); /* indexing */ if (NULL != treehdr->avlexec->avlfunst && NULL != (ritetok = popnest(&(treehdr->avlexec->avloprst)))) op = execdyad(op,ritetok); return(op); }