aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/upas/bayes/dfa.h
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-10-29 16:26:32 +0000
committerrsc <devnull@localhost>2005-10-29 16:26:32 +0000
commitd1f529f46f957c78a3db73b42c2fcd2d3c9f8a34 (patch)
treea4d6f28106cca984926b9dd5ecddd6053b654617 /src/cmd/upas/bayes/dfa.h
parent9f1fdc128738b2ed76258ac22a8574c681f3df3a (diff)
downloadplan9port-d1f529f46f957c78a3db73b42c2fcd2d3c9f8a34.tar.gz
plan9port-d1f529f46f957c78a3db73b42c2fcd2d3c9f8a34.tar.bz2
plan9port-d1f529f46f957c78a3db73b42c2fcd2d3c9f8a34.zip
Thanks to John Cummings.
Diffstat (limited to 'src/cmd/upas/bayes/dfa.h')
-rw-r--r--src/cmd/upas/bayes/dfa.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/cmd/upas/bayes/dfa.h b/src/cmd/upas/bayes/dfa.h
new file mode 100644
index 00000000..28c43dbc
--- /dev/null
+++ b/src/cmd/upas/bayes/dfa.h
@@ -0,0 +1,33 @@
+/*
+ * 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*);
+