/* * Deterministic regexp program. */ typedef struct Dreprog Dreprog; typedef struct Dreinst Dreinst; typedef struct Drecase Drecase; struct Dreinst { int isfinal; int isloop; Drecase *c; int nc; }; struct Dreprog { Dreinst *start[4]; int ninst; Dreinst inst[1]; }; struct Drecase { uint start; Dreinst *next; }; Dreprog* dregcvt(Reprog*); int dregexec(Dreprog*, char*, int); Dreprog* Breaddfa(Biobuf *b); void Bprintdfa(Biobuf*, Dreprog*);