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 }