diff regexParser/test/ccMerge.cc @ 208:2ec95755238e

fix mergetest
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Sun, 27 Dec 2015 18:46:08 +0900
parents e5302c2f6e00
children 11b6332f0a42
line wrap: on
line diff
--- a/regexParser/test/ccMerge.cc	Sun Dec 27 16:51:14 2015 +0900
+++ b/regexParser/test/ccMerge.cc	Sun Dec 27 18:46:08 2015 +0900
@@ -19,36 +19,27 @@
 
 int main(int argc, char **argv)
 {
-    RegexInfo ri;
-    unsigned char* merge = NULL;
+    RegexInfo riRegex;
+    NodePtr n = NULL;
+    StatePtr s = NULL;
+    TGValue tgv = createTGValue();
     for (int i = 1; i < argc; i++) {
         if (strcmp(argv[i],"-regex") == 0) {
-            ri.ptr = (unsigned char*)argv[i+1]; i++;
-        } else if (strcmp(argv[i],"-merge") == 0) {
-            merge = (unsigned char*)argv[i+1]; i++;
+            riRegex.ptr = (unsigned char*)argv[i+1]; i++;
+            printf("regex : %s\n",riRegex.ptr);
+            NodePtr nMerge = regex(&riRegex);
+            StatePtr sMerge = createState(tgv,nMerge);
+            setState(sMerge->cc,sMerge->bitState);
+            if (s == NULL) {
+                s = sMerge;
+                n = nMerge;
+                printCCTree(s->cc);
+                continue;
+            }
+            CharClassPtr cc = mergeTransition(s,sMerge->cc);
+            s->cc = cc;
+            printCCTree(s->cc);
         }
     }
-    printf("regex : %s\n",ri.ptr);
-    printf("merge : %s\n",merge);
-    unsigned char begin, end;
-    if (merge[0] == '[') merge++;
-    begin = *merge;
-    end = *merge;
-    for (; *merge && *merge != ']'; merge++) {
-        if (*merge == '-') {
-            end = *(merge + 1);
-            merge++;
-            continue;
-        }
-        if (merge[0] == 0 || merge[0] == ']') break;
-        begin = *merge;
-        end = *merge;
-    }
-    NodePtr n = regex(&ri);
-    TransitionGeneratorPtr tg = generateTransitionList(n);
-    BitVector nextState;
-    nextState.bitContainer = 8;
-    CharClassPtr cc = charClassMerge(n->cc,begin,end,nextState);
-    printCCTree(cc);
     return 0;
 }