git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1676 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			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
 | 
						|
 | 
						|
 |