# HG changeset patch # User Masataka Kohagura # Date 1453175651 -32400 # Node ID d67649929e969bd59dc9a3c9adbd3b2bc6fc5418 # Parent 2081b9d6a17977670a9d148ffef7a59a309d0a14 add grepWalk diff -r 2081b9d6a179 -r d67649929e96 regexParser/grepWalk.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/regexParser/grepWalk.cc Tue Jan 19 12:54:11 2016 +0900 @@ -0,0 +1,9 @@ +#include + +#include "regexParser.h" +#include "sequentialSearch.h" +#include "grepWalk.h" + +void grepWalk(TransitionGeneratorPtr tg) { + +} diff -r 2081b9d6a179 -r d67649929e96 regexParser/grepWalk.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/regexParser/grepWalk.h Tue Jan 19 12:54:11 2016 +0900 @@ -0,0 +1,1 @@ +extern void grepWalk(TransitionGeneratorPtr tg); diff -r 2081b9d6a179 -r d67649929e96 regexParser/main.cc --- a/regexParser/main.cc Mon Jan 18 16:41:17 2016 +0900 +++ b/regexParser/main.cc Tue Jan 19 12:54:11 2016 +0900 @@ -4,6 +4,7 @@ #include "regexParser.h" #include "subsetConstruction.h" #include "node.h" +#include "grepWalk.h" int main(int argc, char **argv) { @@ -30,15 +31,16 @@ NodePtr n = regex(&ri); // parse only printTree(n); + TGValue tgv; if (generate && !subset) { // NFA generation - TGValue tgv = generateTransitionList(n); + tgv = generateTransitionList(n); printTree(n); printState(tgv.tg); if (generateSequentialSearch) { exportState(tgv.tg); } } else if (subset) { - TGValue tgv = generateTransitionList(n); + tgv = generateTransitionList(n); SCValue scv = createSCValue(tgv); subsetConstruction(scv); // Determinization printState(tgv.tg); @@ -46,5 +48,7 @@ exportState(tgv.tg); } } + + grepWalk(tgv.tg); return 0; } diff -r 2081b9d6a179 -r d67649929e96 regexParser/sequentialSearch.cc --- a/regexParser/sequentialSearch.cc Mon Jan 18 16:41:17 2016 +0900 +++ b/regexParser/sequentialSearch.cc Tue Jan 19 12:54:11 2016 +0900 @@ -4,19 +4,8 @@ #include #include #include -#include -typedef struct buffer { - unsigned char *buff; - unsigned char *buffptr; - unsigned char *buffend; - unsigned char *matchBegin; -} Buffer, *BufferPtr; - -typedef struct { - caddr_t file_mmap; - off_t size; -} st_mmap_t; +#include "sequentialSearch.h" void state1(Buffer buff); @@ -31,19 +20,10 @@ stateSkip(buff); } -#include "state.cc" -int main(int argc, char **argv) { - char *filename; - for (int i = 1; i < argc; i++) { - if (strcmp(argv[i],"-file") == 0) { - filename = argv[i+1]; i++; - } - } - +st_mmap_t createSt_mmap(char* filename,int fd) { + st_mmap_t st_mmap; int map = MAP_PRIVATE; - st_mmap_t st_mmap; struct stat sb; - int fd; if ((fd=open(filename,O_RDONLY,0666))==0) { perror(""); fprintf(stderr,"can't open %s\n",filename); @@ -59,10 +39,29 @@ perror(""); fprintf(stderr,"cannot mmap %s\n",filename); } + st_mmap.file_mmap = file_mmap; + return st_mmap; +} +Buffer createBuffer(st_mmap_t st_mmap) { Buffer buff; - buff.buff = buff.buffptr = buff.matchBegin = file_mmap; + buff.buff = buff.buffptr = buff.matchBegin = st_mmap.file_mmap; buff.buffend = buff.buff + st_mmap.size; + return buff; +} + +#include "state.cc" +int main(int argc, char **argv) { + char *filename; + for (int i = 1; i < argc; i++) { + if (strcmp(argv[i],"-file") == 0) { + filename = argv[i+1]; i++; + } + } + + int fd; + st_mmap_t st_mmap = createSt_mmap(filename,fd); + Buffer buff = createBuffer(st_mmap); stateSkip(buff); close(fd); return 0; diff -r 2081b9d6a179 -r d67649929e96 regexParser/sequentialSearch.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/regexParser/sequentialSearch.h Tue Jan 19 12:54:11 2016 +0900 @@ -0,0 +1,16 @@ +#include + +typedef struct buffer { + unsigned char *buff; + unsigned char *buffptr; + unsigned char *buffend; + unsigned char *matchBegin; +} Buffer, *BufferPtr; + +typedef struct { + unsigned char* file_mmap; + off_t size; +} st_mmap_t; + +extern st_mmap_t createSt_mmap(char* filename, int fd); +extern Buffer createBuffer(st_mmap_t st_mmap);