Mercurial > hg > Applications > Grep
comparison regexParser/subsetConstraction.cc @ 211:bc596e357a52
delete conditional branch in charClassMerge() (pattern 12)
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 28 Dec 2015 15:43:27 +0900 |
parents | 959f8c00da17 |
children | b0ae5273925c |
comparison
equal
deleted
inserted
replaced
210:e8aa8a1ea749 | 211:bc596e357a52 |
---|---|
86 if (begin == cc->cond.range.begin) { // 8 | 86 if (begin == cc->cond.range.begin) { // 8 |
87 CharClassPtr cc1 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState); | 87 CharClassPtr cc1 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState); |
88 return createCharClassRange(cc->cond.range.begin,cc->cond.range.end, | 88 return createCharClassRange(cc->cond.range.begin,cc->cond.range.end, |
89 cc->nextState.bitContainer | nextState.bitContainer,cc->left,cc1); | 89 cc->nextState.bitContainer | nextState.bitContainer,cc->left,cc1); |
90 } | 90 } |
91 if (begin > cc->cond.range.begin) { // 11 | 91 if (begin > cc->cond.range.begin) { // 11,12 |
92 CharClassPtr cc1 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState); | 92 CharClassPtr cc1 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState); |
93 CharClassPtr cc3 = createCharClassRange(cc->cond.range.begin,begin-1,cc->nextState.bitContainer,cc->left,NULL); | 93 CharClassPtr cc3 = createCharClassRange(cc->cond.range.begin,begin-1,cc->nextState.bitContainer,cc->left,NULL); |
94 return createCharClassRange(begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc3,cc1); | 94 return createCharClassRange(begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc3,cc1); |
95 } | 95 } |
96 } | |
97 // begin != end && end != cc->cond.range.end | |
98 if (begin == cc->cond.range.end) { // 12 | |
99 CharClassPtr cc1 = mergeCCTree(cc->right,begin+1,end,nextState); | |
100 if (cc->cond.range.begin == cc->cond.range.end) { | |
101 return createCharClassRange(cc->cond.range.begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc1,cc->right); | |
102 } | |
103 CharClassPtr cc3 = createCharClassRange(cc->cond.range.begin,cc->cond.range.end-1,cc->nextState.bitContainer,cc->left,NULL); | |
104 return createCharClassRange(cc->cond.range.end,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc1,cc3); | |
105 } | 96 } |
106 } else if (begin < cc->cond.range.begin) { // 5 | 97 } else if (begin < cc->cond.range.begin) { // 5 |
107 CharClassPtr cc1 = mergeCCTree(cc->left,begin,cc->cond.range.begin-1,nextState); | 98 CharClassPtr cc1 = mergeCCTree(cc->left,begin,cc->cond.range.begin-1,nextState); |
108 CharClassPtr cc3 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState); | 99 CharClassPtr cc3 = mergeCCTree(cc->right,cc->cond.range.end+1,end,nextState); |
109 return createCharClassRange(cc->cond.range.begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc1,cc3); | 100 return createCharClassRange(cc->cond.range.begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,cc1,cc3); |