# HG changeset patch # User Masataka Kohagura # Date 1451285007 -32400 # Node ID bc596e357a52944bd46a8eb2fdda963d78266cce # Parent e8aa8a1ea749a63ea83fa33d29995f65d4d4b38c delete conditional branch in charClassMerge() (pattern 12) diff -r e8aa8a1ea749 -r bc596e357a52 regexParser/subsetConstraction.cc --- a/regexParser/subsetConstraction.cc Sun Dec 27 19:50:05 2015 +0900 +++ b/regexParser/subsetConstraction.cc Mon Dec 28 15:43:27 2015 +0900 @@ -88,21 +88,12 @@ return createCharClassRange(cc->cond.range.begin,cc->cond.range.end, cc->nextState.bitContainer | nextState.bitContainer,cc->left,cc1); } - if (begin > cc->cond.range.begin) { // 11 + if (begin > cc->cond.range.begin) { // 11,12 CharClassPtr cc1 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState); CharClassPtr cc3 = createCharClassRange(cc->cond.range.begin,begin-1,cc->nextState.bitContainer,cc->left,NULL); return createCharClassRange(begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc3,cc1); } } - // begin != end && end != cc->cond.range.end - if (begin == cc->cond.range.end) { // 12 - CharClassPtr cc1 = mergeCCTree(cc->right,begin+1,end,nextState); - if (cc->cond.range.begin == cc->cond.range.end) { - return createCharClassRange(cc->cond.range.begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc1,cc->right); - } - CharClassPtr cc3 = createCharClassRange(cc->cond.range.begin,cc->cond.range.end-1,cc->nextState.bitContainer,cc->left,NULL); - return createCharClassRange(cc->cond.range.end,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc1,cc3); - } } else if (begin < cc->cond.range.begin) { // 5 CharClassPtr cc1 = mergeCCTree(cc->left,begin,cc->cond.range.begin-1,nextState); CharClassPtr cc3 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState);