comparison regexParser/subsetConstruction.cc @ 293:948428caf616

NFA maximum match worked
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 02 Feb 2016 10:38:45 +0900
parents 20ed7536784f
children 3e78631a6222
comparison
equal deleted inserted replaced
292:868f01f1ba8e 293:948428caf616
105 CharClassPtr cc2 = createCharClassRange(begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,NULL,cc->right); 105 CharClassPtr cc2 = createCharClassRange(begin,cc->cond.range.end,cc->nextState.bitContainer | nextState.bitContainer,NULL,cc->right);
106 return createCharClassRange(cc->cond.range.begin,begin-1,cc->nextState.bitContainer,cc->left,cc2); 106 return createCharClassRange(cc->cond.range.begin,begin-1,cc->nextState.bitContainer,cc->left,cc2);
107 } 107 }
108 if (begin > cc->cond.range.end ) { // 13 108 if (begin > cc->cond.range.end ) { // 13
109 if (cc->right) { 109 if (cc->right) {
110 return createCharClassRange(cc->cond.range.begin,cc->cond.range.end,nextState.bitContainer,cc->left,charClassMerge(cc->right,begin,end,nextState)); 110 return createCharClassRange(cc->cond.range.begin,cc->cond.range.end,cc->nextState.bitContainer,cc->left,charClassMerge(cc->right,begin,end,nextState));
111 } else { 111 } else {
112 return createCharClassRange(begin,end,nextState.bitContainer,cc,NULL); 112 return createCharClassRange(begin,end,nextState.bitContainer,cc,NULL);
113 } 113 }
114 } 114 }
115 if (begin >= cc->cond.range.begin && begin <= cc->cond.range.end) { 115 if (begin >= cc->cond.range.begin && begin <= cc->cond.range.end) {