Mercurial > hg > Applications > Grep
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"); |