Lines Matching defs:ref
117 deref(register Ftw_t* ftw, Exid_t* sym, register Exref_t* ref)
122 while (ref)
124 if (!ftw || ref->symbol->index != F_parent)
126 if (ftw && !ref->next && MEMINDEX(sym->index)) break;
127 error(3, "%s: invalid %s.%s reference", path, ref->symbol->name, sym->name);
129 ref = ref->next;
201 getval(Expr_t* pgm, Exnode_t* node, Exid_t* sym, Exref_t* ref, void* env, int elt, Exdisc_t* disc)
220 if (ref && !(ftw = deref(ftw, sym, ref)))
431 refval(Expr_t* pgm, Exnode_t* node, Exid_t* sym, Exref_t* ref, char* str, int elt, Exdisc_t* disc)
444 return getval(pgm, node, sym, ref, &ftwbuf, elt, disc);
450 while (ref)
452 switch (ref->symbol->index)
457 if (!ref->next)
459 sym->index = MEMMAKE(ref->symbol->index, state.localmem++);
464 if (!ref->next)
468 sym->index = MEMMAKE(ref->symbol->index, state.visitmem++);
473 error(3, "invalid %s.%s reference", ref->symbol->name, sym->name);
476 ref = ref->next;
594 setval(Expr_t* pgm, Exnode_t* node, Exid_t* sym, Exref_t* ref, void* env, int elt, Extype_t val, Exdisc_t* disc)
606 if (!(ftw = (Ftw_t*)env) || ref && !(ftw = deref(ftw, sym, ref))) return -1;