mirror of https://github.com/acidanthera/audk.git
31 lines
667 B
C
31 lines
667 B
C
|
#define Atom 256 /* token Atom (an impossible char value) */
|
||
|
#define Epsilon 257 /* epsilon arc (an impossible char value) */
|
||
|
|
||
|
/* track field must be same for all node types */
|
||
|
typedef struct _a {
|
||
|
struct _a *track; /* track mem allocation */
|
||
|
int label;
|
||
|
struct _a *next;
|
||
|
struct _n *target;
|
||
|
} Arc, *ArcPtr;
|
||
|
|
||
|
typedef struct _n {
|
||
|
struct _n *track;
|
||
|
ArcPtr arcs, arctail;
|
||
|
} Node, *NodePtr;
|
||
|
|
||
|
typedef struct {
|
||
|
NodePtr left,
|
||
|
right;
|
||
|
} Graph, *GraphPtr;
|
||
|
|
||
|
#ifdef __USE_PROTOS
|
||
|
int rexpr( char *expr, char *s );
|
||
|
int match( NodePtr automaton, char *s );
|
||
|
#else
|
||
|
int rexpr();
|
||
|
int match();
|
||
|
#endif
|
||
|
|
||
|
|