Blame


1 d1f529f4 2005-10-29 devnull /*
2 d1f529f4 2005-10-29 devnull * Deterministic regexp program.
3 d1f529f4 2005-10-29 devnull */
4 d1f529f4 2005-10-29 devnull typedef struct Dreprog Dreprog;
5 d1f529f4 2005-10-29 devnull typedef struct Dreinst Dreinst;
6 d1f529f4 2005-10-29 devnull typedef struct Drecase Drecase;
7 d1f529f4 2005-10-29 devnull
8 d1f529f4 2005-10-29 devnull struct Dreinst
9 d1f529f4 2005-10-29 devnull {
10 d1f529f4 2005-10-29 devnull int isfinal;
11 d1f529f4 2005-10-29 devnull int isloop;
12 d1f529f4 2005-10-29 devnull Drecase *c;
13 d1f529f4 2005-10-29 devnull int nc;
14 d1f529f4 2005-10-29 devnull };
15 d1f529f4 2005-10-29 devnull
16 d1f529f4 2005-10-29 devnull struct Dreprog
17 d1f529f4 2005-10-29 devnull {
18 d1f529f4 2005-10-29 devnull Dreinst *start[4];
19 d1f529f4 2005-10-29 devnull int ninst;
20 d1f529f4 2005-10-29 devnull Dreinst inst[1];
21 d1f529f4 2005-10-29 devnull };
22 d1f529f4 2005-10-29 devnull
23 d1f529f4 2005-10-29 devnull struct Drecase
24 d1f529f4 2005-10-29 devnull {
25 d1f529f4 2005-10-29 devnull uint start;
26 d1f529f4 2005-10-29 devnull Dreinst *next;
27 d1f529f4 2005-10-29 devnull };
28 d1f529f4 2005-10-29 devnull
29 d1f529f4 2005-10-29 devnull Dreprog* dregcvt(Reprog*);
30 d1f529f4 2005-10-29 devnull int dregexec(Dreprog*, char*, int);
31 d1f529f4 2005-10-29 devnull Dreprog* Breaddfa(Biobuf *b);
32 d1f529f4 2005-10-29 devnull void Bprintdfa(Biobuf*, Dreprog*);
33 d1f529f4 2005-10-29 devnull