comparison c/regexParser/mergeTest.cc @ 164:93d3ad1d20ed pairPro

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