Metropoli BBS
VIEWER: execsped.c MODE: TEXT (ASCII)
/* Copyright (C) 1993 by Thomas Glen Smith.	All Rights Reserved. */
/* execsped APL2 V1.0.0 ************************************************
* Called by execspec to perform specification (left arrow)             *
* when it is not selective specification.                              *
***********************************************************************/
#define INCLUDES APLCHDEF+APLTOKEN+APLCB+TREE
#include "includes.h"
int execsped(tok, op)
Apltoken tok; /* token for next operator */
Apltoken op;  /* token for next operand  */
{
	Axistest; Execdyah; Execfree; Execindx; Lifo;
	extern Treelist treehdr;
	extern int aplerr;
	int noexit=1;

	if (tok != NULL /* no function? */ || op == NULL /* no operand? */) {
		execfree(tok);
		execfree(op);
		aplerr = 66; /* object to assign to not found */
		return(!noexit);
	}
	if (axistest(treehdr->avlexec->avloprst)) {
		op = execindx(op); /* do indexed assignment */
		if (aplerr) return(!noexit);
		op = lifo(&(treehdr->avlexec->avloprst),op);
		return(aplerr == 0);
	}
	else return(execdyah(op)); /* do non-indexed assignment */
}
[ RETURN TO DIRECTORY ]