/* Copyright (C) 1994 by Thomas Glen Smith. All Rights Reserved. */
/* execgetq APL2 V1.0.0 ************************************************
* Called by execgetr to determine if token is for a system variable *
* other than QUAD_CT or QUAD_IO, and return its value if so. *
***********************************************************************/
#define INCLUDES APLTOKEN+APLCB+TREE
#include "includes.h"
Aplcb execgetq(tok)
Apltoken tok; /* operand token */
{
Execqts; Getcb; Quadnami; Treesrch;
extern int aplerr;
extern Treelist treehdr;
Treelist hdr;
int code,i,*ip;
char *c;
Aplcb out;
code = tok->token_code;
if (code > QUAD_AI || code < QUAD_ZZ) return(NULL);
if (NULL != (c = quadnami(code)))
if (NULL != (out = treesrch(c)))
return(out); /* value assigned */
out = NULL;
switch (code) { /* determine default */
case QUAD_AV: /* atomic vector */
out = getcb(NULL,256,APLCHAR + APLTEMP,1,NULL);
c = out->aplptr.aplchar;
for (i=0; i<256; i++) *c++ = i;
break;
case QUAD_AI: /* account information */
case QUAD_LX: /* latent expression */
out = getcb(NULL,0,APLCHAR + APLTEMP,1,NULL); /* null */
break;
case QUAD_HT: /* horizontal tab settings */
out = getcb(NULL,0,APLINT + APLTEMP,1,NULL); /* null */
break;
case QUAD_PP:
case QUAD_PW:
case QUAD_RL:
case QUAD_TS:
out = execqts();
break;
case QUAD_TC:
case QUAD_TT:
case QUAD_UL:
case QUAD_WA:
aplerr = 88; /* not yet implemented */
break;
} /* end switch */
return(out);
}