comparison regexParser/TODO @ 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 1b75546ff65f
children 0c663f46954d
comparison
equal deleted inserted replaced
292:868f01f1ba8e 293:948428caf616
1 Tue Feb 2 09:55:40 JST 2016
2
3 % ./regexParser -subst -regex '(a|b)*a(a|b)(a|b)'
4 ---Print Node----
5 a(1)->(1)
6 |
7 b(1)->(1)
8 *
9 +
10 a(4)->(4)
11 +
12 a(4)->(8)
13 |
14 b(4)->(8)
15 +
16 a(8)->(2)
17 |
18 b(8)->(2)
19 -----------------
20 state : 1
21 node : + 1 -> 1
22 [a-a] (5)
23 [b-b] (1)
24
25 state : 2*
26 node : e 2 -> 1
27
28 state : 4
29 node : | 4 -> 1
30 [a-a] (8)
31 [b-b] (8)
32
33 state : 8
34 node : | 8 -> 1
35 [a-a] (2)
36 [b-b] (2)
37
38 state : 5
39 [a-a] (1)
40 [b-b] (9)
41
42 state : 9
43 [a-a] (1) <---- 間違い 2 とmergeしているはずだが...
44 [b-b] (3)
45
46 state : 3*
47 [a-a] (5)
48 [b-b] (1)
49
50 やはり charClassMerge のbugだった。
51
52 createCharClassRangeで、同じものだったら新しく作らないってのがあると良い
53 charClassMerg が同じものを返す場合があるってことね
54
55
1 Mon Feb 1 01:51:10 JST 2016 kono 56 Mon Feb 1 01:51:10 JST 2016 kono
2 57
3 非決定性がある時の maxmum match がよろしくない 58 非決定性がある時の maxmum match がよろしくない
4 これ以上拡張できないという終了条件の実現は? 59 これ以上拡張できないという終了条件の実現は?
5 60