diff c/regexParser/subsetConstraction.cc @ 142:de0f332d560c pairPro

insert charClassMerge function
author masa
date Fri, 11 Dec 2015 14:54:00 +0900
parents 71f36a59cf6a
children 32977f5a2ed0
line wrap: on
line diff
--- a/c/regexParser/subsetConstraction.cc	Fri Dec 11 13:12:42 2015 +0900
+++ b/c/regexParser/subsetConstraction.cc	Fri Dec 11 14:54:00 2015 +0900
@@ -12,13 +12,17 @@
     }
 }
 
-TGValuePtr generateTransition(NodePtr n,TransitionGeneratorPtr tg) {
-    TGValuePtr tgv0 = NULL;
-    TGValuePtr tgv1 = NULL;
+TGValue generateTransition(NodePtr n,TransitionGenerator tg) {
 
     if (n->tokenType == '+') {
-        tgv0 = generateTransition(n->left,tg);
-        tgv1 = generateTransition(n->right,tg);
+        TGValue tgv = generateTransition(n->left,tg);
+        if (tgv.asterisk) {
+            TGValue tgv1 = generateTransition(n->right,tg);
+            tgv.state |= tgv1.state;
+            return tgv;
+        }
+        tgv.state = n->right->nodeNumber;
+        return tgv;
     } else if (n->tokenType == '|') {
         tgv0 = generateTransition(n->left,tg);
         tgv1 = generateTransition(n->right,tg);