intitial checkin
authorClaus Gittinger <cg@exept.de>
Thu, 19 Jun 1997 16:56:42 +0200
changeset 538 54f8491a9ea3
parent 537 09d4c2fd07cc
child 539 69a1cd05c7d6
intitial checkin
ProgramNodeEnumerator.st
--- /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 $'
+! !