comparison regexParser/generateSequentialSearchCbC.cc @ 312:c9ac6f06e706

add loop
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 09 Feb 2016 10:59:22 +0900
parents 1d79e61a9365
children
comparison
equal deleted inserted replaced
311:1d79e61a9365 312:c9ac6f06e706
3 3
4 #include "generateSequentialSearch.h" 4 #include "generateSequentialSearch.h"
5 #include "subsetConstruction.h" 5 #include "subsetConstruction.h"
6 #include "CharClass.h" 6 #include "CharClass.h"
7 7
8 void 8 static void
9 generateState1(StatePtr state,long stateNum, bool accept, FILE *fp, TransitionGeneratorPtr tg) { 9 generateState1(StatePtr state,long stateNum, bool accept, FILE *fp, TransitionGeneratorPtr tg) {
10 fprintf(fp,"__code state%lx(TSValue tsv) {\n",stateNum); 10 fprintf(fp,"__code state%lx(TSValue tsv) {\n",stateNum);
11 if (accept && state->accept) { 11 if (accept && state->accept) {
12 fputs(" tsv=tsv.tg->stateMatch(tsv);\n",fp); 12 fputs(" tsv=tsv.tg->stateMatch(tsv);\n",fp);
13 } 13 }
31 fprintf(fp," else { tsv=tsv.tg->stateSkip(tsv); goto state0(tsv);}\n"); 31 fprintf(fp," else { tsv=tsv.tg->stateSkip(tsv); goto state0(tsv);}\n");
32 fputs("}\n\n",fp); 32 fputs("}\n\n",fp);
33 } 33 }
34 34
35 void 35 void
36 exportState(TransitionGeneratorPtr tg) { 36 exportStateCbC(TransitionGeneratorPtr tg) {
37 StatePtr state = tg->stateList; 37 StatePtr state = tg->stateList;
38 FILE *fp = fopen("stateCbC.cc","w"); 38 FILE *fp = fopen("stateCbC.cc","w");
39 if (fp==NULL) { 39 if (fp==NULL) {
40 perror(""); 40 perror("");
41 fprintf(stderr,"cannot write stateCbC.cc\n"); 41 fprintf(stderr,"cannot write stateCbC.cc\n");