| #include "mk.h" |
| |
| Arc * |
| newarc(Node *n, Rule *r, char *stem, Resub *match) |
| { |
| Arc *a; |
| |
| a = (Arc *)Malloc(sizeof(Arc)); |
| a->n = n; |
| a->r = r; |
| a->stem = strdup(stem); |
| rcopy(a->match, match, NREGEXP); |
| a->next = 0; |
| a->flag = 0; |
| a->prog = r->prog; |
| return(a); |
| } |
| |
| void |
| dumpa(char *s, Arc *a) |
| { |
| char buf[1024]; |
| |
| Bprint(&bout, "%sArc@%p: n=%p r=%p flag=0x%x stem='%s'", |
| s, a, a->n, a->r, a->flag, a->stem); |
| if(a->prog) |
| Bprint(&bout, " prog='%s'", a->prog); |
| Bprint(&bout, "\n"); |
| |
| if(a->n){ |
| snprint(buf, sizeof(buf), "%s ", (*s == ' ')? s:""); |
| dumpn(buf, a->n); |
| } |
| } |
| |
| void |
| nrep(void) |
| { |
| Symtab *sym; |
| Word *w; |
| |
| sym = symlook("NREP", S_VAR, 0); |
| if(sym){ |
| w = sym->u.ptr; |
| if (w && w->s && *w->s) |
| nreps = atoi(w->s); |
| } |
| if(nreps < 1) |
| nreps = 1; |
| if(DEBUG(D_GRAPH)) |
| Bprint(&bout, "nreps = %d\n", nreps); |
| } |