Metropoli BBS
VIEWER: execasgn.c MODE: TEXT (ASCII)
/*Copyright (C) 1992, 1994 by Thomas Glen Smith.  All Rights Reserved.*/
/* execasgn APL2 V1.0.0 ************************************************
* Called from execdyad when the current operator is a left arrow.      *
***********************************************************************/
#define INCLUDES APLCHDEF+APLTOKEN+APLCB
#include "includes.h"
Aplcb execasgn(lefttok,rite)
Apltoken lefttok; /* token for left operand */
Aplcb rite;
{
	Aplnewl; Aplsrand; Assign; Execfree; Qquadout; Quadout;
#include "quadext.h"
	extern int aplerr;
	Aplcb out=NULL;

	switch (lefttok->token_code) {
		case OPERAND_TOKEN:
			out = assign(lefttok->token_ptr.token_string,rite);
			break;
		case QUAD_AV:
			out = assign(quadav,rite);
			break;
		case QUAD_CT:
			out = assign(quadct,rite);
			break;
		case QUAD_FC:
			out = assign(quadfc,rite);
			break;
		case QUAD_IO:
			out = assign(quadio,rite);
			break;
		case QUAD_LX:
			out = assign(quadlx,rite);
			break;
		case QUAD_PP:
			out = assign(quadpp,rite);
			break;
		case QUAD_RL:
			out = assign(quadrl,rite);
			aplsrand(out); /* Set random number seed. */
			break;
		case QUAD_TS:
			out = assign(quadts,rite);
			break;
		case QUAD_TT:
			out = assign(quadtt,rite);
			break;
		case QUAD_TZ:
			out = assign(quadtz,rite);
			break;
		case QUAD:
			out = quadout(rite);
			aplnewl();
			break;
		case QUOTE_QUAD:
			out = qquadout(rite);
			break;
		default:
			aplerr = 66; /* missing variable name */
			endoper(rite);
			out = NULL;
	}
	execfree(lefttok); /* free storage for left token */
	return(out);
}
[ RETURN TO DIRECTORY ]