Mercurial > hg > Applications > Grep
comparison regexParser/subsetConstraction.cc @ 177:8de9a33f6ae5 pairPro
change createState aug
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 23 Dec 2015 17:28:59 +0900 |
parents | c092dd0e1ae0 |
children | 5e8c6857934c |
comparison
equal
deleted
inserted
replaced
176:c092dd0e1ae0 | 177:8de9a33f6ae5 |
---|---|
146 if (walk->next->left && current->right) { | 146 if (walk->next->left && current->right) { |
147 walk->stack.left = true; | 147 walk->stack.left = true; |
148 CharClassPtr next = findLeftMost(current->right,walk)->next; | 148 CharClassPtr next = findLeftMost(current->right,walk)->next; |
149 walk->next = next; | 149 walk->next = next; |
150 } else { | 150 } else { |
151 /* | |
152 TransitionPtr tsOld = ts; | 151 TransitionPtr tsOld = ts; |
153 ts = ts->next; | 152 ts = ts->next; |
154 free(tsOld); | 153 free(tsOld); |
155 CharClassPtr ret; | 154 CharClassPtr ret; |
156 if (ts) ret = ts->cc; | 155 if (ts) ret = ts->cc; |
157 else ret = NULL; | 156 else ret = NULL; |
158 walk->next = ret; | 157 walk->next = ret; |
159 */ | |
160 } | 158 } |
161 return current; | 159 return current; |
162 } | 160 } |
163 | 161 |
164 TransitionPtr mergeTransition(TransitionPtr x,TransitionPtr y) { | 162 TransitionPtr mergeTransition(TransitionPtr x,TransitionPtr y) { |
225 tg.state = NEW(State); | 223 tg.state = NEW(State); |
226 tg.transitionList = NEW(Transition); | 224 tg.transitionList = NEW(Transition); |
227 // Init State : 00...00(64bit) | 225 // Init State : 00...00(64bit) |
228 BitVectorPtr initStateBi = NEW(BitVector); | 226 BitVectorPtr initStateBi = NEW(BitVector); |
229 bitSet(initStateBi,INIT_STATE_BIT); | 227 bitSet(initStateBi,INIT_STATE_BIT); |
230 StatePtr initState = createState(tg.stateArray,*initStateBi); | 228 StatePtr initState = createState(*initStateBi); |
231 // Last State : 10...00(64bit) | 229 // Last State : 10...00(64bit) |
232 BitVectorPtr lastStateBi = NEW(BitVector); | 230 BitVectorPtr lastStateBi = NEW(BitVector); |
233 bitSet(lastStateBi,END_STATE_BIT); | 231 bitSet(lastStateBi,END_STATE_BIT); |
234 StatePtr lastState = createState(tg.stateArray,*lastStateBi); | 232 StatePtr lastState = createState(*lastStateBi); |
235 tg.stateArray = appendState(initState,lastState); | 233 tg.stateArray = appendState(initState,lastState); |
236 tg.stateArrayLast = lastState; | 234 tg.stateArrayLast = lastState; |
237 tg.currentState = NEW(State); | 235 tg.currentState = initState; |
238 tg.nextState = NEW(State); | 236 tg.nextState = NEW(State); |
239 return tg; | 237 return tg; |
240 } | 238 } |
241 | 239 |
242 TransitionGenerator generateTransitionList(NodePtr n) { | 240 TransitionGenerator generateTransitionList(NodePtr n) { |