1 #include	"mk.h"
2 
3 Arc *
newarc(Node * n,Rule * r,char * stem,Resub * match)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 	rcopy(a->match, match, NREGEXP);
13 	a->next = 0;
14 	a->flag = 0;
15 	a->prog = r->prog;
16 	return(a);
17 }
18 
19 void
dumpa(char * s,Arc * a)20 dumpa(char *s, Arc *a)
21 {
22 	char buf[1024];
23 
24 	Bprint(&bout, "%sArc@%p: n=%p r=%p flag=0x%x stem='%s'",
25 		s, a, a->n, a->r, a->flag, a->stem);
26 	if(a->prog)
27 		Bprint(&bout, " prog='%s'", a->prog);
28 	Bprint(&bout, "\n");
29 
30 	if(a->n){
31 		snprint(buf, sizeof(buf), "%s    ", (*s == ' ')? s:"");
32 		dumpn(buf, a->n);
33 	}
34 }
35 
36 void
nrep(void)37 nrep(void)
38 {
39 	Symtab *sym;
40 	Word *w;
41 
42 	sym = symlook("NREP", S_VAR, 0);
43 	if(sym){
44 		w = sym->u.ptr;
45 		if (w && w->s && *w->s)
46 			nreps = atoi(w->s);
47 	}
48 	if(nreps < 1)
49 		nreps = 1;
50 	if(DEBUG(D_GRAPH))
51 		Bprint(&bout, "nreps = %d\n", nreps);
52 }
53