--- /dev/null
+#define Atom 256 /* token Atom (an impossible char value) */\r
+#define Epsilon 257 /* epsilon arc (an impossible char value) */\r
+\r
+/* track field must be same for all node types */\r
+typedef struct _a {\r
+ struct _a *track; /* track mem allocation */\r
+ int label;\r
+ struct _a *next;\r
+ struct _n *target;\r
+ } Arc, *ArcPtr;\r
+\r
+typedef struct _n {\r
+ struct _n *track;\r
+ ArcPtr arcs, arctail;\r
+ } Node, *NodePtr;\r
+\r
+typedef struct {\r
+ NodePtr left,\r
+ right;\r
+ } Graph, *GraphPtr;\r
+\r
+#ifdef __USE_PROTOS\r
+int rexpr( char *expr, char *s );\r
+int match( NodePtr automaton, char *s );\r
+#else\r
+int rexpr();\r
+int match();\r
+#endif\r
+\r
+\r