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;