dfa.h 457 B

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