comparison c/regexParser/regexParser.cc @ 143:32977f5a2ed0 pairPro

add charClassMerge
author masa
date Fri, 11 Dec 2015 15:04:58 +0900
parents de0f332d560c
children d8a4922eceae
comparison
equal deleted inserted replaced
142:de0f332d560c 143:32977f5a2ed0
50 ri->nodeNumber++; 50 ri->nodeNumber++;
51 51
52 return n; 52 return n;
53 } 53 }
54 54
55 CharClassPtr charClassMerge(CharClassPtr src, CharClassPtr add) { 55 CharClassPtr charClassMerge(CharClassPtr cc, unsigned char begin, unsigned char end, CharClassPtr next) {
56 // 重なっているccの領域を分割する
57 // 必要ならばnextStateを重ねあわせる
58 // 変更があった場合は新しくリストを作って返す
59 if (src->type == 'a') { 56 if (src->type == 'a') {
60 if (add->type == 'a') { 57 if (add->type == 'a') {
61 if (src->cond.w.word[0] > add->cond.w.word[0]) { 58 if (src->cond.w.word[0] > add->cond.w.word[0]) {
62 // add のほうが小さいので小さい順のccをつくる 59 // add のほうが小さいので小さい順のccをつくる
63 CharClassPtr left = charClassMerge(add->left.src); 60 CharClassPtr left = charClassMerge(add->left.src);