1 #include "mk.h" 2 3 Arc * 4 newarc(Node *n, Rule *r, char *stem, Resub *match) 5 { 6 Arc *a; 7 8 a = (Arc *)Malloc(sizeof(Arc)); 9 a->n = n; 10 a->r = r; 11 a->stem = strdup(stem); 12 memmove((char *)a->match, (char *)match, (COUNT)sizeof a->match); 13 a->next = 0; 14 a->flag = 0; 15 a->prog = r->prog; 16 return(a); 17 } 18 19 void 20 dumpa(char *s, Arc *a) 21 { 22 char buf[1024]; 23 24 sprint(buf, "%s ", (*s == ' ')? s:""); 25 Bprint(&stdout, "%sArc@%ld: n=%ld r=%ld flag=0x%x stem='%s'", 26 s, a, a->n, a->r, a->flag, a->stem); 27 if(a->prog) 28 Bprint(&stdout, " prog='%s'", a->prog); 29 Bprint(&stdout, "\n"); 30 if(a->n) 31 dumpn(buf, a->n); 32 } 33 34 void 35 nrep(void) 36 { 37 Symtab *sym; 38 Word *w; 39 40 if(sym = symlook("NREP", S_VAR, (char *)0)) { 41 w = (Word *) sym->value; 42 if (w && w->s && *w->s) 43 nreps = atoi(w->s); 44 } 45 if(nreps < 1) 46 nreps = 1; 47 if(DEBUG(D_GRAPH)) 48 Bprint(&stdout, "nreps = %d\n", nreps); 49 } 50