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) {