Blame


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