Mercurial > hg > Applications > Grep
diff regexParser/subsetConstraction.cc @ 176:c092dd0e1ae0 pairPro
implement appendState() and serchState()
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 23 Dec 2015 15:41:27 +0900 |
parents | 3be0fbcd4b52 |
children | 8de9a33f6ae5 |
line wrap: on
line diff
--- a/regexParser/subsetConstraction.cc Tue Dec 22 20:27:26 2015 +0900 +++ b/regexParser/subsetConstraction.cc Wed Dec 23 15:41:27 2015 +0900 @@ -148,6 +148,7 @@ CharClassPtr next = findLeftMost(current->right,walk)->next; walk->next = next; } else { + /* TransitionPtr tsOld = ts; ts = ts->next; free(tsOld); @@ -155,6 +156,7 @@ if (ts) ret = ts->cc; else ret = NULL; walk->next = ret; + */ } return current; } @@ -222,13 +224,16 @@ tg.ts = NEW(Transition); tg.state = NEW(State); tg.transitionList = NEW(Transition); + // Init State : 00...00(64bit) BitVectorPtr initStateBi = NEW(BitVector); bitSet(initStateBi,INIT_STATE_BIT); - tg.stateArray = createState(tg.stateArray,*initStateBi); + StatePtr initState = createState(tg.stateArray,*initStateBi); + // Last State : 10...00(64bit) BitVectorPtr lastStateBi = NEW(BitVector); bitSet(lastStateBi,END_STATE_BIT); - tg.stateArray = createState(tg.stateArray,*lastStateBi); - tg.stateArrayLast = NEW(State); + StatePtr lastState = createState(tg.stateArray,*lastStateBi); + tg.stateArray = appendState(initState,lastState); + tg.stateArrayLast = lastState; tg.currentState = NEW(State); tg.nextState = NEW(State); return tg;