21 kenter(int type, char *name)
23 int h = hash(name, NKW);
24 struct kw *p = new(struct kw);
36 kenter(WHILE, "while");
41 kenter(SUBSHELL, "@");
42 kenter(SWITCH, "switch");
50 tree *t = token(name, WORD);
51 for(p = kw[hash(name, NKW)];p;p = p->next)
52 if(strcmp(p->name, name)==0){
63 int h = hash(name, NVAR);
65 for(v = gvar[h];v;v = v->next) if(strcmp(v->name, name)==0) return v;
66 return gvar[h] = newvar(strdup(name), gvar[h]);
74 for(v = runq->local;v;v = v->next)
75 if(strcmp(v->name, name)==0) return v;
80 setvar(char *name, word *val)
82 struct var *v = vlook(name);