/* Copyright (C) 1994 by Thomas Glen Smith. All Rights Reserved. */ /* execute APL2 V1.0.0 ************************************************* * Called by aplload and funcsusq. * * Implements the APL EXECUTE function. Accepts as argument a character * * vector or scalar containing the representation of an APL statement. * ***********************************************************************/ #define INCLUDES APLCB+APLCHDEF+TREE #include "includes.h" Aplcb execute(rite) Aplcb rite; { Errstop; Executf; Quadout; extern int aplerr; extern Treelist treehdr; Aplcb out; if (0 == rite->aplcount) return(errstop(0,NULL,rite,NULL)); if (aplerr) /* out of memory? */ return(errstop(0,NULL,rite,NULL)); treehdr->lastfun = treehdr->avloff = 0; out = executf(rite); if (out != NULL && treehdr->lastfun != LEFT_ARROW) out = quadout(out); /* print result */ return(out); }