55 |
|
#endif |
56 |
|
|
57 |
|
#ifdef FUNCTION |
58 |
< |
EPNODE *curfunc; |
58 |
> |
EPNODE *curfunc = NULL; |
59 |
|
#define dname(ep) ((ep)->v.kid->type == SYM ? \ |
60 |
|
(ep)->v.kid->v.name : \ |
61 |
|
(ep)->v.kid->v.kid->v.name) |
299 |
|
incontext(qn) /* is qualified name in current context? */ |
300 |
|
register char *qn; |
301 |
|
{ |
302 |
+ |
if (!context[0]) /* global context accepts all */ |
303 |
+ |
return(1); |
304 |
|
while (*qn && *qn != CNTXMARK) /* find context mark */ |
305 |
|
qn++; |
306 |
|
return(!strcmp(qn, context)); |
329 |
|
/* if context is global, clear all */ |
330 |
|
for (i = 0; i < NHASH; i++) |
331 |
|
for (vp = hashtbl[i]; vp != NULL; vp = vp->next) |
332 |
< |
if (!context[0] || incontext(vp->name)) |
332 |
> |
if (incontext(vp->name)) |
333 |
|
if (lvl >= 2) |
334 |
|
dremove(vp->name); |
335 |
|
else |
620 |
|
syntax("')' expected"); |
621 |
|
scan(); |
622 |
|
curfunc = ep1; |
623 |
< |
} else |
622 |
< |
curfunc = NULL; |
623 |
> |
} |
624 |
|
#endif |
625 |
|
|
626 |
|
if (nextc != '=' && nextc != ':') |
645 |
|
ep1->type = NUM; |
646 |
|
addekid(ep2, ep1); |
647 |
|
} |
648 |
+ |
|
649 |
+ |
#ifdef FUNCTION |
650 |
+ |
curfunc = NULL; |
651 |
+ |
#endif |
652 |
|
|
653 |
|
return(ep2); |
654 |
|
} |