comparison regexParser/subsetConstraction.cc @ 175:3be0fbcd4b52 pairPro

implement createTransitionGenerator
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Dec 2015 20:27:26 +0900
parents cca8bb5aeded
children c092dd0e1ae0
comparison
equal deleted inserted replaced
174:b9e913030a47 175:3be0fbcd4b52
198 } else if (n->tokenType == 'c'){ 198 } else if (n->tokenType == 'c'){
199 tgv2.ts = createTransition(n->cc,0); 199 tgv2.ts = createTransition(n->cc,0);
200 return tgv2; 200 return tgv2;
201 } else if (n->tokenType == 'a'){ 201 } else if (n->tokenType == 'a'){
202 TGValue tgv; 202 TGValue tgv;
203 tgv.ts = (TransitionPtr)malloc(sizeof(Transition)); 203 tgv.ts = NEW(Transition);
204 tgv.ts->condition = n->cc; 204 tgv.ts->condition = n->cc;
205 bitSet(&tgv.ts->condition->nextState,n->nodeNumber); 205 bitSet(&tgv.ts->condition->nextState,n->nodeNumber);
206 tg.ts = appendTransition(tg.ts,tgv.ts); 206 tg.ts = appendTransition(tg.ts,tgv.ts);
207 return tgv; 207 return tgv;
208 } else { 208 } else {
215 for (;ts;ts = ts->next) { 215 for (;ts;ts = ts->next) {
216 printf("\n"); 216 printf("\n");
217 } 217 }
218 } 218 }
219 219
220 TransitionGenerator generateTransitionList(NodePtr n) { 220 TransitionGenerator createTransitionGenerator() {
221 TransitionGenerator tg; 221 TransitionGenerator tg;
222 tg.ts = NEW(Transition); 222 tg.ts = NEW(Transition);
223 tg.state = NEW(State);
224 tg.transitionList = NEW(Transition);
225 BitVectorPtr initStateBi = NEW(BitVector);
226 bitSet(initStateBi,INIT_STATE_BIT);
227 tg.stateArray = createState(tg.stateArray,*initStateBi);
228 BitVectorPtr lastStateBi = NEW(BitVector);
229 bitSet(lastStateBi,END_STATE_BIT);
230 tg.stateArray = createState(tg.stateArray,*lastStateBi);
231 tg.stateArrayLast = NEW(State);
232 tg.currentState = NEW(State);
233 tg.nextState = NEW(State);
234 return tg;
235 }
236
237 TransitionGenerator generateTransitionList(NodePtr n) {
238 TransitionGenerator tg = createTransitionGenerator();
223 generateTransition(n,tg); 239 generateTransition(n,tg);
224 printTransitionList(tg.ts); 240 printTransitionList(tg.ts);
225 return tg; 241 return tg;
226 } 242 }