Mercurial > hg > Applications > Grep
comparison regexParser/main.cc @ 228:399380ad95b7
fix generateTransitionGenerator
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 15 Jan 2016 19:48:53 +0900 |
parents | c38a7b2dd996 |
children | d67649929e96 |
comparison
equal
deleted
inserted
replaced
227:8be58af605da | 228:399380ad95b7 |
---|---|
7 | 7 |
8 int main(int argc, char **argv) | 8 int main(int argc, char **argv) |
9 { | 9 { |
10 bool generate = true; | 10 bool generate = true; |
11 bool subset = false; | 11 bool subset = false; |
12 bool generateSequentialSearch = false; | |
12 | 13 |
13 RegexInfo ri; | 14 RegexInfo ri; |
14 ri.stateNumber = 1; | 15 ri.stateNumber = 1; |
15 for (int i = 1; i < argc; i++) { | 16 for (int i = 1; i < argc; i++) { |
16 if (strcmp(argv[i],"-regex") == 0) { | 17 if (strcmp(argv[i],"-regex") == 0) { |
17 ri.ptr = (unsigned char*)argv[i+1]; i++; | 18 ri.ptr = (unsigned char*)argv[i+1]; i++; |
18 } else if (strcmp(argv[i],"-noGeneration") == 0) { | 19 } else if (strcmp(argv[i],"-noGeneration") == 0) { |
19 generate = false; | 20 generate = false; |
20 } else if (strcmp(argv[i],"-subset") == 0) { | 21 } else if (strcmp(argv[i],"-subset") == 0) { |
21 subset = true; | 22 subset = true; |
23 } else if (strcmp(argv[i],"-seq") == 0) { | |
24 generateSequentialSearch = true; | |
22 } | 25 } |
23 } | 26 } |
24 if (!ri.ptr) return 0; | 27 if (!ri.ptr) return 0; |
25 | 28 |
26 printf("regex : %s\n",ri.ptr); | 29 printf("regex : %s\n",ri.ptr); |
29 | 32 |
30 if (generate && !subset) { // NFA generation | 33 if (generate && !subset) { // NFA generation |
31 TGValue tgv = generateTransitionList(n); | 34 TGValue tgv = generateTransitionList(n); |
32 printTree(n); | 35 printTree(n); |
33 printState(tgv.tg); | 36 printState(tgv.tg); |
34 exportState(tgv.tg); | 37 if (generateSequentialSearch) { |
38 exportState(tgv.tg); | |
39 } | |
35 } else if (subset) { | 40 } else if (subset) { |
36 TGValue tgv = generateTransitionList(n); | 41 TGValue tgv = generateTransitionList(n); |
37 SCValue scv = createSCValue(tgv); | 42 SCValue scv = createSCValue(tgv); |
38 subsetConstruction(scv); // Determinization | 43 subsetConstruction(scv); // Determinization |
39 printState(tgv.tg); | 44 printState(tgv.tg); |
40 exportState(tgv.tg); | 45 if (generateSequentialSearch) { |
46 exportState(tgv.tg); | |
47 } | |
41 } | 48 } |
42 return 0; | 49 return 0; |
43 } | 50 } |