Mercurial > hg > Applications > Grep
diff regexParser/threadedSearch.cc @ 266:e51cac73e42a
CeriumGrep start
author | masa |
---|---|
date | Thu, 28 Jan 2016 21:14:34 +0900 |
parents | ef95a7f1bc03 |
children | 0e423d9f9647 |
line wrap: on
line diff
--- a/regexParser/threadedSearch.cc Wed Jan 27 18:00:25 2016 +0900 +++ b/regexParser/threadedSearch.cc Thu Jan 28 21:14:34 2016 +0900 @@ -25,7 +25,7 @@ return tsv; } -TStatePtr generateTState(StatePtr state) { +TStatePtr generateTState(StatePtr state, TransitionGeneratorPtr tg) { TStatePtr tState = NEW(TState); tState->state = state; state->tState = tState; @@ -53,11 +53,11 @@ } free(ccw); if (state->accept) { - tState->stateSkip = stateMatch; - tState->stateContinue = stateNothing; + tState->stateSkip = tg->stateMatch; + tState->stateContinue = tg->stateNothing; } else { - tState->stateSkip = stateSkip; - tState->stateContinue = stateNothing; + tState->stateSkip = tg->stateSkip; + tState->stateContinue = tg->stateNothing; } return tState; } @@ -106,6 +106,10 @@ TSValue tsv; tsv.buff = buff; tsv.tg = tg; + tsv.result = NULL; tsv.current = generateTState(tg->stateList); + tsv.tg->stateSkip = stateSkip; + tsv.tg->stateMatch = stateMatch; + tsv.tg->stateNothing = stateNothing; tSearch(tsv); }