comparison regexParser/subsetConstraction.cc @ 170:de2438d4146a pairPro

fix
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Sat, 19 Dec 2015 20:14:42 +0900
parents 313f1c176328
children 684363c44d6f
comparison
equal deleted inserted replaced
169:313f1c176328 170:de2438d4146a
174 } 174 }
175 175
176 TGValue generateTransition(NodePtr n,TransitionGenerator tg) { 176 TGValue generateTransition(NodePtr n,TransitionGenerator tg) {
177 TGValue tgv2; 177 TGValue tgv2;
178 if (n->tokenType == '+') { 178 if (n->tokenType == '+') {
179 TGValue tgv = generateTransition(n->left,tg); 179 TGValue tgv = generateTransition(n->right,tg);
180 TGValue tgv1 = generateTransition(n->left,tgv.tg);
180 if (tgv.asterisk) { 181 if (tgv.asterisk) {
181 TGValue tgv1 = generateTransition(n->right,tg);
182 tgv1.ts = mergeTransition(tgv.ts,tgv1.ts); 182 tgv1.ts = mergeTransition(tgv.ts,tgv1.ts);
183 return tgv1; 183 return tgv1;
184 } 184 }
185 return tgv; 185 return tgv;
186 } else if (n->tokenType == '|') { 186 } else if (n->tokenType == '|') {
187 TGValue tgv = generateTransition(n->left,tg); 187 TGValue tgv = generateTransition(n->left,tg);
188 TGValue tgv1 = generateTransition(n->right,tg); 188 TGValue tgv1 = generateTransition(n->right,tgv.tg);
189 tgv.tg = tgv1.tg;
189 tgv.ts = mergeTransition(tgv.ts,tgv1.ts); 190 tgv.ts = mergeTransition(tgv.ts,tgv1.ts);
190 tgv.asterisk |= tgv1.asterisk; 191 tgv.asterisk |= tgv1.asterisk;
191 return tgv; 192 return tgv;
192 } else if (n->tokenType == '*') { 193 } else if (n->tokenType == '*') {
193 TGValue tgv = generateTransition(n->left,tg); 194 TGValue tgv = generateTransition(n->left,tg);