comparison regexParser/subsetConstraction.h @ 180:d97bcab546e8 pairPro

implement getNext
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 24 Dec 2015 17:56:28 +0900
parents 3be0fbcd4b52
children 3c4db09b8581
comparison
equal deleted inserted replaced
179:6cf8252f3912 180:d97bcab546e8
5 BitVector state; 5 BitVector state;
6 struct stateStack *next; 6 struct stateStack *next;
7 } StateStack, *StateStackPtr; 7 } StateStack, *StateStackPtr;
8 8
9 typedef struct transitionGenerator { 9 typedef struct transitionGenerator {
10 TransitionPtr ts;
11 long stateMax; 10 long stateMax;
12 StateStack stack; 11 StateStack stack;
13 StatePtr state; 12 StatePtr state;
14 TransitionPtr transitionList;
15 StatePtr stateArray; 13 StatePtr stateArray;
16 StatePtr stateArrayLast; 14 StatePtr stateArrayLast;
17 StatePtr currentState; 15 StatePtr currentState;
18 StatePtr nextState; 16 StatePtr nextState;
19 } TransitionGenerator, *TransitionGeneratorPtr; 17 } TransitionGenerator, *TransitionGeneratorPtr;
20 18
21 typedef struct tgValue { 19 typedef struct tgValue {
22 TransitionPtr ts;
23 bool asterisk; 20 bool asterisk;
24 TransitionGeneratorPtr tg; 21 TransitionGeneratorPtr tg;
25 } TGValue, *TGValuePtr; 22 } TGValue, *TGValuePtr;
26 23
24 enum charClassStackState {
25 LEFT,
26 SELF,
27 RIGHT
28 }
29
27 typedef struct charClassStack { 30 typedef struct charClassStack {
28 bool left; 31 charClassStackState turn;
29 CharClassPtr cc; 32 CharClassPtr cc;
30 struct charClassStack *next; 33 struct charClassStack *next;
31 } CharClassStack, *CharClassStackPtr; 34 } CharClassStack, *CharClassStackPtr;
32 35
33 typedef struct charClassWalker { 36 typedef struct charClassWalker {
34 CharClassStack stack; 37 CharClassStackPtr stack;
35 CharClassPtr next; 38 CharClassPtr next;
36 } CharClassWalker, *CharClassWalkerPtr; 39 } CharClassWalker, *CharClassWalkerPtr;
37 40
38 CharClassPtr charClassMerge(CharClassPtr cc,unsigned long begin, unsigned long end, BitVector nextState); 41 CharClassPtr charClassMerge(CharClassPtr cc,unsigned long begin, unsigned long end, BitVector nextState);