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