#ifndef _NodeEdgeList
struct _NodeEdgeList
{
struct _NFANode *edge;
struct _NodeEdgeList *next;
};
#endif
#ifndef _NodeCharList
struct _NodeCharList
{
unsigned int ch;
struct _NodeCharList *next;
};
#endif
#ifndef _NFANode
struct _NFANode
{
struct hashlist *edgetable;
struct _NodeCharList *validchar;
};
#endif
#ifndef _NFAType
struct _NFAType
{
struct _NFANode *begin;
struct _NFANode *end;
};
#endif
struct _NFAType *doConcatenation(struct _NFAType *arg1,struct _NFAType *arg2);
struct _NFAType *doChoice(struct _NFAType *arg1,struct _NFAType *arg2);
struct _NFAType *doKleenStar(struct _NFAType *arg);
struct _NFAType *doPositiveClosure(struct _NFAType *arg);
struct _NFAType *doQuestion(struct _NFAType *arg);
struct _NFAType *buildNFAFromChar(unsigned int ch);
struct _NFAType *buildNFAFromGen(unsigned int gen);
struct _NFAType *buildNFAFromRange(struct _rangeValue range);
extern struct _NFAType *NFARes;
extern int nodecount;