diff 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
line wrap: on
line diff
--- a/regexParser/TODO	Mon Feb 01 21:52:57 2016 +0900
+++ b/regexParser/TODO	Tue Feb 02 10:38:45 2016 +0900
@@ -1,3 +1,58 @@
+Tue Feb  2 09:55:40 JST 2016
+
+    % ./regexParser -subst -regex '(a|b)*a(a|b)(a|b)'
+    ---Print Node----
+                        a(1)->(1)
+                    |
+                        b(1)->(1)
+                *
+            +
+                a(4)->(4)
+        +
+                a(4)->(8)
+            |
+                b(4)->(8)
+     +
+            a(8)->(2)
+        |
+            b(8)->(2)
+    -----------------
+    state : 1 
+    node : + 1 -> 1
+                        [a-a] (5)
+                    [b-b] (1)
+
+    state : 2*
+    node : e 2 -> 1
+
+    state : 4 
+    node : | 4 -> 1
+                    [a-a] (8)
+                        [b-b] (8)
+
+    state : 8 
+    node : | 8 -> 1
+                    [a-a] (2)
+                        [b-b] (2)
+
+    state : 5 
+                    [a-a] (1)
+                        [b-b] (9)
+
+    state : 9 
+                    [a-a] (1)          <---- 間違い  2 とmergeしているはずだが...
+                        [b-b] (3)
+
+    state : 3*
+                        [a-a] (5)
+                    [b-b] (1)
+
+    やはり charClassMerge のbugだった。
+
+    createCharClassRangeで、同じものだったら新しく作らないってのがあると良い
+    charClassMerg が同じものを返す場合があるってことね
+
+
 Mon Feb  1 01:51:10 JST 2016 kono
 
     非決定性がある時の maxmum match がよろしくない