comparison regexParser/subsetConstruction.cc @ 261:2b36dde3ffb7

add cond.range image above charClassMerge
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 26 Jan 2016 14:35:34 +0900
parents ebb429c2b6a7
children 157f6886ba55
comparison
equal deleted inserted replaced
260:3f3c9902bb6d 261:2b36dde3ffb7
29 } else { 29 } else {
30 cc1 = createCharClassRange(mBegin,mEnd,nextState.bitContainer,NULL,NULL); 30 cc1 = createCharClassRange(mBegin,mEnd,nextState.bitContainer,NULL,NULL);
31 } 31 }
32 return cc1; 32 return cc1;
33 } 33 }
34
35 /*
36 cond.range.begin cond.range.end
37 |----------------|
38 1.b---e
39 2.b------e
40 3.b------------e
41 4.b-----------------------e
42 5.b----------------------------e
43
44 |----------------|
45 6. b---------e
46 7. b----------------e
47 8. b---------------------e
48
49 |----------------|
50 9. b-----e
51 10. b--------e
52 11. b-------------e
53
54 |----------------|
55 12. b-----e
56
57 |----------------|
58 13. b--e
59
60 */
34 61
35 CharClassPtr charClassMerge(CharClassPtr cc,unsigned long begin, unsigned long end, BitVector nextState) { 62 CharClassPtr charClassMerge(CharClassPtr cc,unsigned long begin, unsigned long end, BitVector nextState) {
36 // 重なっているccの領域を分割する 63 // 重なっているccの領域を分割する
37 // 必要ならばnextStateを重ねあわせる 64 // 必要ならばnextStateを重ねあわせる
38 // 変更があった場合は新しくリストを作って返す 65 // 変更があった場合は新しくリストを作って返す