Mercurial > hg > Applications > Grep
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); |