Metropoli BBS
VIEWER: execspec.c MODE: TEXT (ASCII)
/* Copyright (C) 1993 by Thomas Glen Smith.	All Rights Reserved. */
/* execspec APL2 V1.0.0 ************************************************
* Called by execexed to perform specification (left) arrow.			 *
***********************************************************************/
#define INCLUDES APLCHDEF+APLTOKEN+APLCB+TREE
#include "includes.h"
int execspec(ptok)
Apltoken *ptok; /* token for next operator */
{
	Execmona; Execsped; Execspex;
	extern int aplerr;
     extern Treelist treehdr;
	Apltoken op,tok;
	int code,noexit=1;

	tok = *ptok;
	if (aplerr || tok == NULL) return(!noexit);
	code = tok->token_code; /* save for later test */
	execmona(tok); /* do monadic, stack left arrow or other function */
	*ptok = NULL; /* token has been handled */
	if (code != LEFT_ARROW) return(noexit); /* quit if not assignment */
	if (execspex())
     	return(aplerr == 0); /* selective specification */
	if ((noexit != execexee(&tok,&op)) || aplerr) 
     	return(!noexit);
     treehdr->lastfun = LEFT_ARROW;
     return(execsped(tok,op)); /* finish assignment */
}
[ RETURN TO DIRECTORY ]