/*Copyright (C) 1992, 1995 by Thomas Glen Smith. All Rights Reserved.*/ /* execnila APL2 V1.0.0 ************************************************ * Called by execexei when the current token is for a user-defined * * niladic function. It is executed, and the result, if any, is * * returned. * ***********************************************************************/ #define INCLUDES APLCB+APLFUNCI+APLTOKEN+TREE #include "includes.h" Apltoken execnila(tok) Apltoken tok; /* current token */ { Endoper; Execfree; Exectok; Funcmain; extern Treelist treehdr; extern int aplerr; Apltoken op; Aplfunc func; Aplcb out; int off; func = tok->token_work; /* save function pointer */ off = tok->token_offset; /* save offset */ execfree(tok); /* free token */ out = funcmain(func,NULL,NULL); if (func->functype & RETVAL) return(exectok(out,off)); /* niladic w/result */ if (treehdr->avltokhd != NULL || treehdr->avlexec->avlfunst != NULL || treehdr->avlexec->avloprst != NULL) aplerr = 94; /* niladic in bad context */ endoper(out); return(NULL); /* ignore result */ }