changeset 289:20ed7536784f

add test file
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 01 Feb 2016 10:30:55 +0900
parents f2491681914e
children 7f320313f44e
files regexParser/Makefile regexParser/TODO regexParser/subsetConstruction.cc regexParser/test/c.txt.gz
diffstat 4 files changed, 49 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- 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'
--- 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
 
     とかが動かない。
 
--- 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;
     }
Binary file regexParser/test/c.txt.gz has changed