format aperture in backtrack trace master
Matt S Trout [Sun, 22 Apr 2018 18:35:13 +0000 (18:35 +0000)]
fragment.output/btdemo
lib/DX/Step/Backtrack.pm

index e0a5ff3..681eb96 100644 (file)
@@ -134,9 +134,15 @@ recheck eq ?X {{ a 1 b 2 c 3 }} {
 }
 backtrack {
     failure_dependencies { CONTENTS_OF 0.X; CONTENTS_OF 0.XValue }
-    decision { for member_at Y ?YKey ?YValue }
+    decision {
+        for member_at Y ?YKey ?YValue
+        aperture { VALUE_SET 0.YKey; VALUE_SET 0.YValue }
+    }
     non_relevant
-    decision { for member_at X ?XKey ?XValue }
+    decision {
+        for member_at X ?XKey ?XValue
+        aperture { VALUE_SET 0.XKey; VALUE_SET 0.XValue }
+    }
     found_alternative
 }
 resolve {
@@ -218,9 +224,12 @@ recheck eq ?Y {{ d 1 e 2 f 3 }} {
 }
 backtrack {
     failure_dependencies { CONTENTS_OF 0.Y; CONTENTS_OF 0.YValue }
-    decision { for eq XValue 2 }
+    decision { for eq XValue 2 aperture { VALUE_SET 0.XValue; VALUE_SET 0.X.b } }
     non_relevant
-    decision { for member_at Y ?YKey ?YValue }
+    decision {
+        for member_at Y ?YKey ?YValue
+        aperture { VALUE_SET 0.YKey; VALUE_SET 0.YValue }
+    }
     found_alternative
 }
 resolve {
@@ -318,23 +327,29 @@ recheck eq ?Y {{ d 1 e 2 f 3 }} {
 }
 backtrack {
     failure_dependencies { CONTENTS_OF 0.Y; CONTENTS_OF 0.YValue }
-    decision { for eq XValue 2 }
+    decision { for eq XValue 2 aperture { VALUE_SET 0.XValue; VALUE_SET 0.X.b } }
     non_relevant
-    decision { for member_at Y ?YKey ?YValue }
+    decision {
+        for member_at Y ?YKey ?YValue
+        aperture { VALUE_SET 0.YKey; VALUE_SET 0.YValue }
+    }
     failure_dependencies {
         CONTENTS_OF 0.Y
         TYPE_OF 0.YKey
         CONTENTS_OF 0.YValue
     }
-    decision { for member_at X ?XKey ?XValue }
+    decision {
+        for member_at X ?XKey ?XValue
+        aperture { VALUE_SET 0.XKey; VALUE_SET 0.XValue }
+    }
     non_relevant
-    decision { for eq ?Y {{ d 1 e 2 f 3 }} }
+    decision { for eq ?Y {{ d 1 e 2 f 3 }} aperture { VALUE_SET 0.Y } }
     failure_dependencies {
         CONTENTS_OF 0.Y
         TYPE_OF 0.YKey
         CONTENTS_OF 0.YValue
     }
-    decision { for eq ?X {{ a 1 b 2 c 3 }} }
+    decision { for eq ?X {{ a 1 b 2 c 3 }} aperture { VALUE_SET 0.X } }
     non_relevant
     exhaustion
 }
index 81335ac..0da00a6 100644 (file)
@@ -28,8 +28,13 @@ sub apply_to {
     trace backtrack => [ statement => [
       [ symbol => 'decision' ],
       [ pairs => [
-        [ for => $rspace_was->proposition, ]
-          #aperture => 
+        [ for => $rspace_was->proposition, ],
+        [ aperture => [ block => [
+            map [ statement => [
+              [ symbol => (split '::', ${$_->[0]})[-1] ],
+              [ value_path => [ @{$_}[1..$#$_] ] ],
+            ] ], @{$rspace_was->aperture}
+          ] ] ]
       ] ]
     ] ];
     foreach my $event (@{$rspace_was->aperture}) {