/*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); }