# HG changeset patch # User Shinji KONO # Date 1454290255 -32400 # Node ID 20ed7536784f634110be290716506757bab04c62 # Parent f2491681914e66dd26bf4aec09d5067fb1f02302 add test file diff -r f2491681914e -r 20ed7536784f regexParser/Makefile --- a/regexParser/Makefile Mon Feb 01 01:35:12 2016 +0900 +++ b/regexParser/Makefile Mon Feb 01 10:30:55 2016 +0900 @@ -10,6 +10,12 @@ OBJS = $(SRCS:.cc=.o) REGEX = '[A-Z][A-Za-z0-9_]*' +# REGEX = '(a|b)*a(a|b)(a|b)' +# REGEX = '(mil|have)' + +SUBST = -subset + +TESTFILE = test/c.txt .cc.o: $(CC) $(CFLAGS) -c $< -o $@ @@ -25,12 +31,6 @@ test/ccMerge: test/ccMerge.o subsetConstruction.o regexParser.o node.o error.o bitVector.o $(CC) $(CFLAGS) $< subsetConstruction.o regexParser.o node.o error.o bitVector.o -o $@ -sequentialSearch: sequentialSearch.cc regexParser fileread.o - ./regexParser -seq -subset -regex $(REGEX) - $(CC) $(CFLAGS) -c sequentialSearch.cc - $(CC) $(CFLAGS) sequentialSearch.o fileread.o -o $@ - ./$@ -file sequentialSearch.cc - parallelSearch: $(AR) cd cerium ; $(MAKE) -f Makefile.macosx CERIUM=../$(CERIUM) @@ -43,19 +43,39 @@ make merge_test gcov *.gcda +test/c.txt : test/c.txt.gz + gunzip < $< > $@ + clean: rm -f $(TARGET) $(OBJS) $(AR) rm -rf *~ \#* *.gcda *.gcno *.gcov state.cc sequentialSearch *.dSYM + cd test; rm -rf *.o *~ \#* *.gcda *.gcno *.gcov *.dSYM cd cerium; make clean touch state.cc .SUFFIXES: .cc .o -tSearch: regexParser - ./regexParser -seq -subset -regex '[A-Z][A-Za-z0-9_]*' -file sequentialSearch.cc -ts +tSearch: regexParser $(TESTFILE) + ./regexParser $(SUBSET) -regex $(REGEX) -ts -file $(TESTFILE) + +testParallel : parallelSearch $(TESTFILE) + ./cerium/ceriumGrep $(SUBSET) -regex $(REGEX) -file s$(TESTFILE) + +test2: regexParser $(TESTFILE) + ./regexParser $(SUBSET) -regex $(REGEX)-file s$(TESTFILE) -testParallel : parallelSearch - ./cerium/ceriumGrep -regex '[A-Z][a-z]*' -file subsetConstruction.cc +seqtest: sequentialSearch $(TESTFILE) + ./sequentialSearch -file $(TESTFILE) + +grepWalk: regexParser $(TESTFILE) + ./regexParser -$(SUBSET) -regex $(REGEX)-file $(TESTFILE) + +sequentialSearch: sequentialSearch.cc regexParser fileread.o + ./regexParser -seq -subset -regex $(REGEX) + $(CC) $(CFLAGS) -c sequentialSearch.cc + $(CC) -O sequentialSearch.o fileread.o -o $@ + ./$@ -file sequentialSearch.cc + test1: regexParser ./regexParser -regex 'a' @@ -102,12 +122,6 @@ ./regexParser -regex 'abcd' ./regexParser -regex '([a-c]x|[d-f]y)' -test2: regexParser - ./regexParser -subset -regex '(a|b)*a(a|b)(a|b)' - -grepWalk: regexParser - ./regexParser -subset -regex '([a-z])r' -file main.cc - merge_test: test/ccMerge ./test/ccMerge -regex '[f-i]' -regex 'e' ./test/ccMerge -regex '[f-i]' -regex 'f' diff -r f2491681914e -r 20ed7536784f regexParser/TODO --- a/regexParser/TODO Mon Feb 01 01:35:12 2016 +0900 +++ b/regexParser/TODO Mon Feb 01 10:30:55 2016 +0900 @@ -1,10 +1,21 @@ +Mon Feb 1 01:51:10 JST 2016 kono + + 非決定性がある時の maxmum match がよろしくない + これ以上拡張できないという終了条件の実現は? + + ./regexParser -ts -subset -regex '(a|b)*a' -file ahoaho.txt + + で、bの後にaが来なくなると、bの手前までをacceptする + + + Sun Jan 31 20:37:49 JST 2016 masa - 並列処理時のバグ - (mili|have) のsubset construction のミス - tSearch の segv + 並列処理時のバグ Ok + (mili|have) のsubset construction のミス Ok + tSearch の segv Ok - '(main|int) ' - '(main|int)\(' + '(main|int) ' .. Ok + '(main|int)\(' .. Ok とかが動かない。 diff -r f2491681914e -r 20ed7536784f regexParser/subsetConstruction.cc --- a/regexParser/subsetConstruction.cc Mon Feb 01 01:35:12 2016 +0900 +++ b/regexParser/subsetConstruction.cc Mon Feb 01 10:30:55 2016 +0900 @@ -374,10 +374,11 @@ } void printState(StatePtr state) { - printf("state : %lx\n",state->bitState.bitContainer); + printf("state : %lx%c\n",state->bitState.bitContainer,state->accept?'*':' '); long nodeNumber = 0; if (state->node) { - printf("node : %c %lx -> %d\n",state->node->tokenType,state->bitState.bitContainer,state->node->nextStateNum); + BitVector bi = createBitVector(state->node->nextStateNum); + printf("node : %c %lx -> %lx\n",state->node->tokenType,state->bitState.bitContainer,bi.bitContainer); if (state->node->state) nodeNumber = state->node->state->bitState.bitContainer; } diff -r f2491681914e -r 20ed7536784f regexParser/test/c.txt.gz Binary file regexParser/test/c.txt.gz has changed