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);
 }