diff regexParser/generateSequentialSearch.cc @ 312:c9ac6f06e706

add loop
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 09 Feb 2016 10:59:22 +0900
parents 1188debbef10
children 879dc5d1cb6a
line wrap: on
line diff
--- a/regexParser/generateSequentialSearch.cc	Mon Feb 08 22:12:14 2016 +0900
+++ b/regexParser/generateSequentialSearch.cc	Tue Feb 09 10:59:22 2016 +0900
@@ -5,9 +5,9 @@
 #include "CharClass.h"
 #include "subsetConstruction.h"
 
-void
+static void
 generateState1(StatePtr state,long stateNum, bool accept, FILE *fp, TransitionGeneratorPtr tg) {
-    fprintf(fp,"TSValue state%lx(TSValue tsv) {\n",stateNum);
+    fprintf(fp,"static TSValue state%lx(TSValue tsv) {\n",stateNum);
     if (accept && state->accept) {
         fputs("    tsv=tsv.tg->stateMatch(tsv);\n",fp);
     }
@@ -30,7 +30,7 @@
     free(ccw);
     fprintf(fp,"    else { tsv=tsv.tg->stateSkip(tsv); return state0(tsv);}\n");
     fputs("}\n\n",fp);
-}
+} 
 
 void
 exportState(TransitionGeneratorPtr tg) {
@@ -42,13 +42,17 @@
         exit(1);
     }
     for (;state;state = state->next) {
-        fprintf(fp,"TSValue state%lx(TSValue tsv);\n",state->bitState.bitContainer);
+        if (state->bitState.bitContainer!=1)  // state1 always unused but state0
+            fprintf(fp,"static TSValue state%lx(TSValue tsv);\n",state->bitState.bitContainer);
     }
     fputs("\n",fp);
     // initial state must not accept empty string
     generateState1(tg->stateList,0L,false,fp,tg);
     for (state = tg->stateList;state;state = state->next) {
-        generateState1(state,state->bitState.bitContainer,true,fp,tg);
+        if (state->bitState.bitContainer!=1)  // state1 always unused but state0
+            generateState1(state,state->bitState.bitContainer,true,fp,tg);
     }
     fclose(fp);
 }
+
+