annotate regexParser/mergeTest.cc @ 167:3bf2c6d6d53e pairPro

move regexparser dir
author masa
date Sat, 19 Dec 2015 15:38:45 +0900
parents c/regexParser/mergeTest.cc@93d3ad1d20ed
children 109d22faf7b5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
164
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdlib.h>
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include <string.h>
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "subsetConstraction.h"
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 extern NodePtr regex(RegexInfoPtr);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 extern void printTree(NodePtr);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 int main(int argc, char **argv)
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 {
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 RegexInfoPtr ri = (RegexInfoPtr)malloc(sizeof(RegexInfo));
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 ri->nodeNumber = 1;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 unsigned char* merge = NULL;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 for (int i = 1; i < argc; i++) {
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 if (strcmp(argv[i],"-regex") == 0) {
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 ri->ptr = (unsigned char*)argv[i+1]; i++;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 } else if (strcmp(argv[i],"-merge") == 0) {
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 merge = (unsigned char*)argv[i+1]; i++;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 }
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 }
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 printf("regex : %s\n",ri->ptr);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 printf("merge : %s\n",merge);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 unsigned char begin, end;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 if (merge[0] == '[') merge++;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 begin = *merge;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 end = *merge;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 for (; *merge && *merge != ']'; merge++) {
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 if (*merge == '-') {
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 end = *(merge + 1);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 merge++;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 continue;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 }
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 if (merge[0] == 0 || merge[0] == ']') break;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 begin = *merge;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 end = *merge;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 }
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 NodePtr n = regex(ri);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 printTree(n);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 BitVector nextState;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 charClassMerge(n->cc,begin,end,nextState);
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 return 0;
93d3ad1d20ed add mergeTest.cc
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 }