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