Fix various node enumeration methods for `BreakpointNode` jv
authorJan Vrany <jan.vrany@labware.com>
Sat, 08 Aug 2020 08:47:17 +0100
branchjv
changeset 4656 a5dfa5a9cbca
parent 4655 0e104f727335
child 4657 fceb50f108b6
Fix various node enumeration methods for `BreakpointNode`
BreakpointNode.st
--- a/BreakpointNode.st	Mon Jun 29 22:39:06 2020 +0100
+++ b/BreakpointNode.st	Sat Aug 08 08:47:17 2020 +0100
@@ -1,5 +1,6 @@
 "
  COPYRIGHT (c) 2006 by eXept Software AG
+ COPYRIGHT (c) 2020 LabWare
 	      All Rights Reserved
 
  This software is furnished under a license and may be used
@@ -25,6 +26,7 @@
 copyright
 "
  COPYRIGHT (c) 2006 by eXept Software AG
+ COPYRIGHT (c) 2020 LabWare
 	      All Rights Reserved
 
  This software is furnished under a license and may be used
@@ -126,6 +128,44 @@
     "Modified: / 26-03-2018 / 15:38:22 / stefan"
 ! !
 
+!BreakpointNode methodsFor:'enumeration'!
+
+allSubNodesDo:aBlock
+    aBlock value: expression.
+    expression allSubNodesDo:aBlock.
+
+    "Created: / 08-08-2020 / 08:45:51 / Jan Vrany <jan.vrany@labware.com>"
+!
+
+blockNodesDo:aBlock recursively: aBoolean
+    "
+    Evaluate `aBlock` for each `BlockNode` in receicer's subtree. 
+
+    If, `aBoolean` is true, then recurse into block nodes themselves, 
+    evaluating `aBlock` for (all) nested blocks.
+    If `aBoolean` is false, stop at any block node.
+    " 
+    ^ expression blockNodesDo:aBlock recursively: aBoolean
+
+    "Created: / 08-08-2020 / 08:46:44 / Jan Vrany <jan.vrany@labware.com>"
+!
+
+messagesDo:aBlock
+    "evaluate aBlock for each message-node here and in subnodes"
+
+    ^ expression messagesDo:aBlock
+
+    "Created: / 08-08-2020 / 08:46:12 / Jan Vrany <jan.vrany@labware.com>"
+!
+
+variableNodesDo:aBlock
+    "evaluate aBlock for each variable-node here and in subnodes"
+
+    ^ expression variableNodesDo:aBlock
+
+    "Created: / 08-08-2020 / 08:46:24 / Jan Vrany <jan.vrany@labware.com>"
+! !
+
 !BreakpointNode methodsFor:'node protocol forwarding'!
 
 arg1
@@ -212,6 +252,11 @@
     ^ '$Header$'
 !
 
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+!
+
 version_SVN
     ^ '$ Id $'
 ! !