|  | #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); | 
|  | } |