Mercurial > hg > Applications > Grep
diff regexParser/subsetConstruction.cc @ 277:7b4bcc7b5ae6
nextTState implemented
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 30 Jan 2016 20:44:37 +0900 |
parents | 6640b0d5bf13 |
children | 2f3e7bba038e |
line wrap: on
line diff
--- a/regexParser/subsetConstruction.cc Sat Jan 30 19:08:01 2016 +0900 +++ b/regexParser/subsetConstruction.cc Sat Jan 30 20:44:37 2016 +0900 @@ -235,6 +235,7 @@ s->bitState = bi; s->cc = NULL; s->node = NULL; + s->tState = NULL; return s; } @@ -364,8 +365,10 @@ void createAnyState(TransitionGeneratorPtr tg) { BitVector anyBi = createBitVector(tg->totalBasicState); - anyBi.bitContainer = anyBi.bitContainer * 2 - 1; // all bit 1 state + anyBi.bitContainer = anyBi.bitContainer - 1; // all bit 1 state + anyBi.bitContainer ^= 2; // exclude Accept State tg->anyState = createState(tg,anyBi); + determinize(tg->anyState,tg); tg->stateArray[tg->anyState->bitState.bitContainer] = tg->anyState; } @@ -412,6 +415,7 @@ } StatePtr base = tg->stateArray[baseNum]; if (base == NULL) { + fprintf(stderr,"baseNum=%lx ",baseNum); errorMassege("No base state",__LINE__,__FILE__); break; } CharClassPtr merge = mergeTransition(s,base->cc);