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