*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 20 Apr 2005 21:47:05 +0200
changeset 1591 dd892bb6efa6
parent 1590 3dba10712c38
child 1592 413a9144fc03
*** empty log message ***
ProgramNodeEnumerator.st
--- a/ProgramNodeEnumerator.st	Wed Apr 20 16:45:21 2005 +0200
+++ b/ProgramNodeEnumerator.st	Wed Apr 20 21:47:05 2005 +0200
@@ -61,40 +61,32 @@
     "Created: 19.6.1997 / 16:52:06 / cg"
 ! !
 
-!ProgramNodeEnumerator methodsFor:'enumeratiion callbacks'!
+!ProgramNodeEnumerator methodsFor:'enumeration callbacks'!
 
 doAssignment:aNode variable:var value:val
-    ^ self subclassResponsibility
-
-    "Created: 19.6.1997 / 16:49:48 / cg"
-    "Modified: 19.6.1997 / 16:52:12 / cg"
+    self doNode:val.
 !
 
 doBlock:aNode arguments:args body:seq
-    ^ self subclassResponsibility
-
-    "Created: 19.6.1997 / 16:50:12 / cg"
-    "Modified: 19.6.1997 / 16:52:16 / cg"
+    seq notNil ifTrue:[
+        self doNode:seq.
+    ]
 !
 
 doCascade:aNode receiver:rcvr messages:msgs
-    ^ self subclassResponsibility
-
-    "Created: 19.6.1997 / 16:50:22 / cg"
-    "Modified: 19.6.1997 / 16:52:24 / cg"
+    msgs do:[:eachMessage | 
+        self doNode:eachMessage
+    ].
 !
 
 doLiteral:aNode value:lit
-    ^ self subclassResponsibility
-
-    "Created: 19.6.1997 / 16:50:34 / cg"
-    "Modified: 19.6.1997 / 16:52:31 / cg"
 !
 
 doMessage:aNode receiver:rcvr selector:sel arguments:args
-    ^ self subclassResponsibility
-
-    "Modified: 19.6.1997 / 16:52:42 / cg"
+    self doNode:rcvr.
+    args do:[:eachArg |
+        self doNode:eachArg
+    ].
 !
 
 doMethod:aNode selector:sel primitive:prim block:block
@@ -112,28 +104,17 @@
 !
 
 doPrimitive:aNode code:code primitiveIndex:primNumber
-    ^ self subclassResponsibility
 !
 
 doReturn:aNode value:value
-    ^ self subclassResponsibility
-
-    "Created: 19.6.1997 / 16:50:54 / cg"
-    "Modified: 19.6.1997 / 16:53:07 / cg"
+    self doNode:value
 !
 
 doSequence:aNode temporaries:temps statements:stats
-    ^ self subclassResponsibility
-
-    "Created: 19.6.1997 / 16:50:59 / cg"
-    "Modified: 19.6.1997 / 16:53:15 / cg"
+    stats do:[:each | self doNode:each ].
 !
 
 doVariable:aNode name:nameString
-    ^ self subclassResponsibility
-
-    "Created: 19.6.1997 / 16:51:06 / cg"
-    "Modified: 19.6.1997 / 16:53:21 / cg"
 ! !
 
 !ProgramNodeEnumerator methodsFor:'private'!
@@ -151,6 +132,16 @@
     "Modified: 19.6.1997 / 16:53:47 / cg"
 !
 
+doNodeList:firstNode
+    |node|
+
+    node := firstNode.
+    [ node notNil ] whileTrue:[
+        self doNode:node.
+        node := node nextStatement.
+    ]
+!
+
 doNodes:nodeList
     ^ nodeList do:[:node | self doNode:node]
 
@@ -167,5 +158,5 @@
 !ProgramNodeEnumerator class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/ProgramNodeEnumerator.st,v 1.5 2005-04-19 14:30:56 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/ProgramNodeEnumerator.st,v 1.6 2005-04-20 19:47:05 cg Exp $'
 ! !