--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ProgramNodeEnumerator.st Thu Jun 19 16:56:42 1997 +0200
@@ -0,0 +1,139 @@
+Object subclass:#ProgramNodeEnumerator
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'System-Compiler ST-80-compatibility'
+!
+
+!ProgramNodeEnumerator class methodsFor:'documentation'!
+
+documentation
+"
+ This is a pure mimicri class.
+ It is not used by ST/X, but provided to support limited
+ compatibility for applications which walk codetrees,
+ knowing internals of ST-80's compiler class hierarchy.
+ This classes protocol is not (not meant to be) fully covering
+ the corresponding ST-80's classes protocol. It maps ST-80 messages
+ to corresponding ST/X messages (as far as possible).
+
+ This class was added to allow for the PD goody CodeReview to be filed
+ into ST/X.
+
+ NO WARRANTY and GUARANTEE; this class may be removed without notice.
+"
+
+! !
+
+!ProgramNodeEnumerator class methodsFor:'instance creation'!
+
+new
+ ^ super new initialize
+
+ "Created: 19.6.1997 / 16:52:06 / cg"
+! !
+
+!ProgramNodeEnumerator methodsFor:'enumeratiion 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"
+!
+
+doBlock:aNode arguments:args body:seq
+ ^ self subclassResponsibility
+
+ "Created: 19.6.1997 / 16:50:12 / cg"
+ "Modified: 19.6.1997 / 16:52:16 / cg"
+!
+
+doCascade:aNode receiver:rcvr messages:msgs
+ ^ self subclassResponsibility
+
+ "Created: 19.6.1997 / 16:50:22 / cg"
+ "Modified: 19.6.1997 / 16:52:24 / cg"
+!
+
+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"
+!
+
+doMethod:aNode selector:sel primitive:prim block:block
+ ^ self subclassResponsibility
+
+ "Created: 19.6.1997 / 16:50:45 / cg"
+ "Modified: 19.6.1997 / 16:52:54 / cg"
+!
+
+doParameter:aNode variable:var type:type
+ ^ self subclassResponsibility
+
+ "Created: 19.6.1997 / 16:50:50 / cg"
+ "Modified: 19.6.1997 / 16:53:01 / cg"
+!
+
+doReturn:aNode value:value
+ ^ self subclassResponsibility
+
+ "Created: 19.6.1997 / 16:50:54 / cg"
+ "Modified: 19.6.1997 / 16:53:07 / cg"
+!
+
+doSequence:aNode temporaries:temps statements:stats
+ ^ self subclassResponsibility
+
+ "Created: 19.6.1997 / 16:50:59 / cg"
+ "Modified: 19.6.1997 / 16:53:15 / cg"
+!
+
+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'!
+
+collectNodes:nodeList
+ ^ nodeList collect:[:node | self doNode:node]
+
+ "Created: 19.6.1997 / 16:51:31 / cg"
+ "Modified: 19.6.1997 / 16:53:32 / cg"
+!
+
+doNode:aNode
+ ^ aNode nodeDo:self
+
+ "Modified: 19.6.1997 / 16:53:47 / cg"
+!
+
+doNodes:nodeList
+ ^ nodeList do:[:node | self doNode:node]
+
+ "Created: 19.6.1997 / 16:51:41 / cg"
+ "Modified: 19.6.1997 / 16:53:55 / cg"
+!
+
+doType:aType
+ ^ aType
+
+ "Modified: 19.6.1997 / 16:54:05 / cg"
+! !
+
+!ProgramNodeEnumerator class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libcomp/ProgramNodeEnumerator.st,v 1.1 1997-06-19 14:56:42 cg Exp $'
+! !