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