annotate regexParser/test/ccMerge.cc @ 310:df27e6cab846

CharClassMerge with Word ( no match implementation )
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 08 Feb 2016 19:23:37 +0900
parents 1188debbef10
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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"
308
1188debbef10 separate CharClass
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 216
diff changeset
6 #include "CharClass.h"
216
4852bfa85db4 spell fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 213
diff changeset
7 #include "subsetConstruction.h"
205
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
206
e5302c2f6e00 implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
9 void printCCTree(CharClassPtr cc) {
e5302c2f6e00 implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
10 if (cc->left != NULL) {
e5302c2f6e00 implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
11 printCCTree(cc->left);
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
e5302c2f6e00 implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
14 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
15
e5302c2f6e00 implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
16 if (cc->right != NULL) {
e5302c2f6e00 implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
17 printCCTree(cc->right);
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 }
e5302c2f6e00 implement printCCTree
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 205
diff changeset
20
205
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 int main(int argc, char **argv)
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 {
213
11b6332f0a42 fix tgv.tg->totalStateCount increment
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 208
diff changeset
23 RegexInfo ri;
208
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
24 NodePtr n = NULL;
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
25 StatePtr s = NULL;
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
26 TGValue tgv = createTGValue();
310
df27e6cab846 CharClassMerge with Word ( no match implementation )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 308
diff changeset
27 State dummy;
df27e6cab846 CharClassMerge with Word ( no match implementation )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 308
diff changeset
28 tgv.tg->stateEnd = &dummy;
205
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 for (int i = 1; i < argc; i++) {
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 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
31 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
32 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
33 NodePtr nMerge = regex(&ri);
208
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
34 StatePtr sMerge = createState(tgv,nMerge);
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
35 setState(sMerge->cc,sMerge->bitState);
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
36 if (s == NULL) {
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
37 s = sMerge;
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
38 n = nMerge;
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
39 printCCTree(s->cc);
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
40 continue;
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
41 }
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
42 CharClassPtr cc = mergeTransition(s,sMerge->cc);
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
43 s->cc = cc;
2ec95755238e fix mergetest
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 206
diff changeset
44 printCCTree(s->cc);
205
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 }
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 }
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 return 0;
b7b8f0c03fe3 add test/ccMerge.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 }