Exemple #1
0
NODE *xlxgetvalue(NODE *sym)
{
register NODE *fp,*ep;
NODE *val;
if (((self)->n_info.n_xsym.xsy_value) && xlobgetvalue(sym,&val))
return (val);
for (fp = xlenv; fp; fp = ((fp)->n_info.n_xlist.xl_cdr))
for (ep = ((fp)->n_info.n_xlist.xl_car); ep; ep = ((ep)->n_info.n_xlist.xl_cdr))
if (sym == ((((ep)->n_info.n_xlist.xl_car))->n_info.n_xlist.xl_car))
return (((((ep)->n_info.n_xlist.xl_car))->n_info.n_xlist.xl_cdr));
return (((sym)->n_info.n_xsym.xsy_value));
}
Exemple #2
0
/* xlxgetvalue - get the value of a symbol */
NODE *xlxgetvalue(NODE *sym)
{
    register NODE *fp,*ep;
    NODE *val;

    /* check for this being an instance variable */
    if (getvalue(self) && xlobgetvalue(sym,&val))
	return (val);

    /* check the environment list */
    for (fp = xlenv; fp; fp = cdr(fp))
	for (ep = car(fp); ep; ep = cdr(ep))
	    if (sym == car(car(ep)))
		return (cdr(car(ep)));

    /* return the global value */
    return (getvalue(sym));
}
Exemple #3
0
/* xlxgetvalue - get the value of a symbol */
LVAL xlxgetvalue(LVAL sym)
{
    register LVAL fp,ep;
    LVAL val;

    /* check the environment list */
    for (fp = xlenv; fp; fp = cdr(fp))

        /* check for an instance variable */
        if ((ep = car(fp)) && objectp(car(ep))) {
            if (xlobgetvalue(ep,sym,&val))
                return (val);
        }

        /* check an environment stack frame */
        else {
            for (; ep; ep = cdr(ep))
                if (sym == car(car(ep)))
                    return (cdr(car(ep)));
        }

    /* return the global value */
    return (getvalue(sym));
}