Mercurial > hg > Applications > Grep
annotate regexParser/test/ccMerge.cc @ 213:11b6332f0a42
fix tgv.tg->totalStateCount increment
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 28 Dec 2015 19:02:14 +0900 |
parents | 2ec95755238e |
children | 4852bfa85db4 |
rev | line source |
---|---|
205
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 #include <stdio.h> |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 #include <stdlib.h> |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 #include <string.h> |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 #include "regexParser.h" |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 #include "node.h" |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 #include "subsetConstraction.h" |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 |
206
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
8 void printCCTree(CharClassPtr cc) { |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
9 if (cc->left != NULL) { |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
10 printCCTree(cc->left); |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
11 } |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
12 |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
13 printf("range : [%c-%c] NextState : %lu\n",(unsigned char)cc->cond.range.begin,(unsigned char)cc->cond.range.end, cc->nextState.bitContainer); |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
14 |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
15 if (cc->right != NULL) { |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
16 printCCTree(cc->right); |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
17 } |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
18 } |
e5302c2f6e00
implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
205
diff
changeset
|
19 |
205
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 int main(int argc, char **argv) |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 { |
213
11b6332f0a42
fix tgv.tg->totalStateCount increment
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
208
diff
changeset
|
22 RegexInfo ri; |
208
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
23 NodePtr n = NULL; |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
24 StatePtr s = NULL; |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
25 TGValue tgv = createTGValue(); |
205
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 for (int i = 1; i < argc; i++) { |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 if (strcmp(argv[i],"-regex") == 0) { |
213
11b6332f0a42
fix tgv.tg->totalStateCount increment
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
208
diff
changeset
|
28 ri.ptr = (unsigned char*)argv[i+1]; i++; |
11b6332f0a42
fix tgv.tg->totalStateCount increment
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
208
diff
changeset
|
29 printf("regex : %s\n",ri.ptr); |
11b6332f0a42
fix tgv.tg->totalStateCount increment
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
208
diff
changeset
|
30 NodePtr nMerge = regex(&ri); |
208
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
31 StatePtr sMerge = createState(tgv,nMerge); |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
32 setState(sMerge->cc,sMerge->bitState); |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
33 if (s == NULL) { |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
34 s = sMerge; |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
35 n = nMerge; |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
36 printCCTree(s->cc); |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
37 continue; |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
38 } |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
39 CharClassPtr cc = mergeTransition(s,sMerge->cc); |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
40 s->cc = cc; |
2ec95755238e
fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
206
diff
changeset
|
41 printCCTree(s->cc); |
205
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 } |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 } |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 return 0; |
b7b8f0c03fe3
add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 } |