Mercurial > hg > Applications > Grep
comparison regexParser/test/ccMerge.cc @ 206:e5302c2f6e00
implement printCCTree
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 27 Dec 2015 16:00:19 +0900 |
parents | b7b8f0c03fe3 |
children | 2ec95755238e |
comparison
equal
deleted
inserted
replaced
205:b7b8f0c03fe3 | 206:e5302c2f6e00 |
---|---|
2 #include <stdlib.h> | 2 #include <stdlib.h> |
3 #include <string.h> | 3 #include <string.h> |
4 #include "regexParser.h" | 4 #include "regexParser.h" |
5 #include "node.h" | 5 #include "node.h" |
6 #include "subsetConstraction.h" | 6 #include "subsetConstraction.h" |
7 | |
8 void printCCTree(CharClassPtr cc) { | |
9 if (cc->left != NULL) { | |
10 printCCTree(cc->left); | |
11 } | |
12 | |
13 printf("range : [%c-%c] NextState : %lu\n",(unsigned char)cc->cond.range.begin,(unsigned char)cc->cond.range.end, cc->nextState.bitContainer); | |
14 | |
15 if (cc->right != NULL) { | |
16 printCCTree(cc->right); | |
17 } | |
18 } | |
7 | 19 |
8 int main(int argc, char **argv) | 20 int main(int argc, char **argv) |
9 { | 21 { |
10 RegexInfo ri; | 22 RegexInfo ri; |
11 unsigned char* merge = NULL; | 23 unsigned char* merge = NULL; |
32 begin = *merge; | 44 begin = *merge; |
33 end = *merge; | 45 end = *merge; |
34 } | 46 } |
35 NodePtr n = regex(&ri); | 47 NodePtr n = regex(&ri); |
36 TransitionGeneratorPtr tg = generateTransitionList(n); | 48 TransitionGeneratorPtr tg = generateTransitionList(n); |
37 printTree(n); | |
38 BitVector nextState; | 49 BitVector nextState; |
39 nextState.bitContainer = 8; | 50 nextState.bitContainer = 8; |
40 CharClassPtr cc = charClassMerge(n->cc,begin,end,nextState); | 51 CharClassPtr cc = charClassMerge(n->cc,begin,end,nextState); |
41 printf("type : %c range : [%c-%c] NextState : %lu\n",cc->type,(unsigned char)cc->cond.range.begin,(unsigned char)cc->cond.range.end, cc->nextState.bitContainer); | 52 printCCTree(cc); |
42 return 0; | 53 return 0; |
43 } | 54 } |