Mercurial > hg > Applications > Grep
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 } |