Mercurial > hg > Applications > Grep
comparison regexParser/CeriumGrep.cc @ 312:c9ac6f06e706
add loop
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 09 Feb 2016 10:59:22 +0900 |
parents | bdfe0a32c48f |
children | a4484c02cba5 |
comparison
equal
deleted
inserted
replaced
311:1d79e61a9365 | 312:c9ac6f06e706 |
---|---|
6 #include "subsetConstruction.h" | 6 #include "subsetConstruction.h" |
7 #include "node.h" | 7 #include "node.h" |
8 #include "grepWalk.h" | 8 #include "grepWalk.h" |
9 #include "fileread.h" | 9 #include "fileread.h" |
10 #include "threadedSearch.h" | 10 #include "threadedSearch.h" |
11 #include "generateSequentialSearch.h" | |
11 | 12 |
12 Search grep(int argc,char **argv,bool parallel) | 13 Search grep(int argc,char **argv,bool parallel) |
13 { | 14 { |
14 bool generate = true; | 15 bool generate = true; |
15 bool subset = false; | 16 bool subset = false; |
16 bool generateSequentialSearch = false; | 17 void (*generateSequentialSearch)(TransitionGeneratorPtr) = NULL; |
17 bool ts = false; | 18 bool ts = false; |
18 char *filename = NULL; | 19 char *filename = NULL; |
19 Search s; | 20 Search s; |
20 s.filename = 0; | 21 s.filename = 0; |
21 s.tg = NULL; | 22 s.tg = NULL; |
28 } else if (strcmp(argv[i],"-noGeneration") == 0) { | 29 } else if (strcmp(argv[i],"-noGeneration") == 0) { |
29 generate = false; | 30 generate = false; |
30 } else if (strcmp(argv[i],"-subset") == 0) { | 31 } else if (strcmp(argv[i],"-subset") == 0) { |
31 subset = true; | 32 subset = true; |
32 } else if (strcmp(argv[i],"-seq") == 0) { | 33 } else if (strcmp(argv[i],"-seq") == 0) { |
33 generateSequentialSearch = true; | 34 generateSequentialSearch = exportState; |
35 } else if (strcmp(argv[i],"-loop") == 0) { | |
36 generateSequentialSearch = exportStateLoop; | |
37 } else if (strcmp(argv[i],"-cbc") == 0) { | |
38 generateSequentialSearch = exportStateCbC; | |
34 } else if (strcmp(argv[i],"-file") == 0) { | 39 } else if (strcmp(argv[i],"-file") == 0) { |
35 s.filename = filename = argv[i+1]; i++; | 40 s.filename = filename = argv[i+1]; i++; |
36 } else if (strcmp(argv[i],"-ts") == 0) { | 41 } else if (strcmp(argv[i],"-ts") == 0) { |
37 ts = true; | 42 ts = true; |
38 } | 43 } |
54 } else if (subset) { | 59 } else if (subset) { |
55 tgv = generateTransitionList(n); | 60 tgv = generateTransitionList(n); |
56 subsetConstruction(tgv.tg); // Determinization | 61 subsetConstruction(tgv.tg); // Determinization |
57 printState(tgv.tg); | 62 printState(tgv.tg); |
58 if (generateSequentialSearch) { | 63 if (generateSequentialSearch) { |
59 exportState(tgv.tg); | 64 generateSequentialSearch(tgv.tg); |
60 } | 65 } |
61 } | 66 } |
62 | 67 |
63 if (filename != NULL && !parallel) { | 68 if (filename != NULL && !parallel) { |
64 int fd = 0; | 69 int fd = 0; |