annotate regexParser/subsetConstraction.h @ 183:7ae0a3070647 pairPro

implement generateTransitionList
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 24 Dec 2015 20:02:09 +0900
parents dbe004d03ef0
children 1da1b2eacb84
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
139
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
1 #include "transition.h"
175
3be0fbcd4b52 implement createTransitionGenerator
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
2 #define INIT_STATE_BIT 0
3be0fbcd4b52 implement createTransitionGenerator
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
3 #define END_STATE_BIT 63
170
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
4 typedef struct stateStack {
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
5 BitVector state;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
6 struct stateStack *next;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
7 } StateStack, *StateStackPtr;
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
8
139
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
9 typedef struct transitionGenerator {
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
10 long stateMax;
170
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
11 StateStack stack;
173
masa
parents: 171
diff changeset
12 StatePtr state;
masa
parents: 171
diff changeset
13 StatePtr stateArray;
masa
parents: 171
diff changeset
14 StatePtr stateArrayLast;
masa
parents: 171
diff changeset
15 StatePtr currentState;
masa
parents: 171
diff changeset
16 StatePtr nextState;
139
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
17 } TransitionGenerator, *TransitionGeneratorPtr;
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
18
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
19 typedef struct tgValue {
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
20 bool asterisk;
182
dbe004d03ef0 implement stateAllocate()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
21 int stateBegin;
dbe004d03ef0 implement stateAllocate()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
22 int stateEnd;
183
7ae0a3070647 implement generateTransitionList
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 182
diff changeset
23 StatePtr state;
170
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 169
diff changeset
24 TransitionGeneratorPtr tg;
139
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
25 } TGValue, *TGValuePtr;
6c258910cacb remove some warning and error
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 117
diff changeset
26
180
d97bcab546e8 implement getNext
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 175
diff changeset
27 enum charClassStackState {
d97bcab546e8 implement getNext
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 175
diff changeset
28 LEFT,
d97bcab546e8 implement getNext
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 175
diff changeset
29 SELF,
d97bcab546e8 implement getNext
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 175
diff changeset
30 RIGHT
181
3c4db09b8581 change return value findLeftMost()
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 180
diff changeset
31 };
180
d97bcab546e8 implement getNext
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 175
diff changeset
32
169
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
33 typedef struct charClassStack {
180
d97bcab546e8 implement getNext
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 175
diff changeset
34 charClassStackState turn;
169
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
35 CharClassPtr cc;
171
684363c44d6f remove some warning and error (not working)
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 170
diff changeset
36 struct charClassStack *next;
169
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
37 } CharClassStack, *CharClassStackPtr;
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
38
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
39 typedef struct charClassWalker {
180
d97bcab546e8 implement getNext
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 175
diff changeset
40 CharClassStackPtr stack;
169
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
41 CharClassPtr next;
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
42 } CharClassWalker, *CharClassWalkerPtr;
313f1c176328 implement mergeTransition
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 167
diff changeset
43
164
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 144
diff changeset
44 CharClassPtr charClassMerge(CharClassPtr cc,unsigned long begin, unsigned long end, BitVector nextState);