Mercurial > hg > Applications > Grep
diff regexParser/regexParser.h @ 184:1da1b2eacb84 pairPro
gather struct
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 24 Dec 2015 20:09:21 +0900 |
parents | 7ae0a3070647 |
children | 3e8aae8beba9 |
line wrap: on
line diff
--- a/regexParser/regexParser.h Thu Dec 24 20:02:09 2015 +0900 +++ b/regexParser/regexParser.h Thu Dec 24 20:09:21 2015 +0900 @@ -7,6 +7,45 @@ unsigned long bitContainer; }BitVector,*BitVectorPtr; +typedef struct stateStack { + BitVector state; + struct stateStack *next; +} StateStack, *StateStackPtr; + +typedef struct transitionGenerator { + long stateMax; + StateStack stack; + StatePtr state; + StatePtr stateArray; + StatePtr stateArrayLast; + StatePtr currentState; + StatePtr nextState; +} TransitionGenerator, *TransitionGeneratorPtr; + +typedef struct tgValue { + bool asterisk; + int stateBegin; + int stateEnd; + TransitionGeneratorPtr tg; +} TGValue, *TGValuePtr; + +enum charClassStackState { + LEFT, + SELF, + RIGHT +}; + +typedef struct charClassStack { + charClassStackState turn; + CharClassPtr cc; + struct charClassStack *next; +} CharClassStack, *CharClassStackPtr; + +typedef struct charClassWalker { + CharClassStackPtr stack; + CharClassPtr next; +} CharClassWalker, *CharClassWalkerPtr; + typedef struct word { unsigned char *word; int length; @@ -42,6 +81,13 @@ struct node *right; } Node, *NodePtr; +typedef struct state { + BitVector bitState; + CharClassPtr cc; + NodePtr node; + struct state *next; +} State, *StatePtr; + typedef struct regexInfo { unsigned char *ptr; unsigned char tokenType;