MethodNode.st
changeset 1105 b743f8f5ca66
parent 135 aa4f7b8f121e
child 1106 97e2a6840142
--- a/MethodNode.st	Thu Oct 26 22:03:25 2000 +0200
+++ b/MethodNode.st	Mon Oct 30 13:43:24 2000 +0100
@@ -10,14 +10,16 @@
  hereby transferred.
 "
 
-ParseNode subclass:#MethodNode
-       instanceVariableNames:'selector arguments locals statements'
-       classVariableNames:''
-       poolDictionaries:''
-       category:'System-Compiler ST-80-compatibility'
+"{ Package: 'newScanner' }"
+
+NewMethodOrBlockNode subclass:#NewMethodNode
+	instanceVariableNames:'selector'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'System-Compiler-New-ParseNodes'
 !
 
-!MethodNode class methodsFor:'documentation'!
+!NewMethodNode class methodsFor:'documentation'!
 
 copyright
 "
@@ -33,10 +35,6 @@
 "
 !
 
-version
-    ^ '$Header: /cvs/stx/stx/libcomp/MethodNode.st,v 1.7 1995-11-11 15:30:39 cg Exp $'
-!
-
 documentation
 "
     This is a pure mimicri class.
@@ -51,20 +49,17 @@
 "
 ! !
 
-!MethodNode methodsFor:'accessing'!
-
-selector:sel arguments:argVars locals:localVars statements:stats
-    selector := sel. 
-    arguments := argVars. 
-    locals := localVars. 
-    statements := stats.
-!
+!NewMethodNode methodsFor:'accessing'!
 
 selector
     ^ selector
+!
+
+selector:sel
+    selector := sel. 
 ! !
 
-!MethodNode methodsFor:'code generation'!
+!NewMethodNode methodsFor:'code generation'!
 
 emitEffect:aStream
     statements do:[:stat |
@@ -72,28 +67,48 @@
     ].
 ! !
 
-!MethodNode methodsFor:'printing'!
+!NewMethodNode methodsFor:'evaluation'!
+
+evaluate
+    "evaluate as a doIt expression"
+
+    ^ statements evaluate
+! !
+
+!NewMethodNode methodsFor:'printing'!
 
 printOn:aStream indent:i
     |n parts|
 
     n := selector numArgs.
     n == 0 ifTrue:[
-	aStream nextPutAll:selector printString.
+        aStream nextPutAll:selector printString.
     ] ifFalse:[
-	parts := selector partsIfSelector.
-	parts with:arguments do:[:part :arg |
-	    aStream nextPutAll:part.
-	    aStream space.
-	    aStream nextPutAll:arg name
-	]
+        parts := selector partsIfSelector.
+        parts with:arguments do:[:part :arg |
+            aStream nextPutAll:part.
+            aStream space.
+            aStream nextPutAll:arg name.
+            aStream space.
+        ]
     ].
     aStream cr.
 
-    statements do:[:stat |
-	aStream spaces:i+4.
-	stat printOn:aStream indent:i+4.
-	aStream nextPut:$..
-	aStream cr.
-    ].
+    super printOn:aStream indent:i
 ! !
+
+!NewMethodNode methodsFor:'queries'!
+
+isMethodScope
+    ^ true
+!
+
+outerScope
+    ^ nil
+! !
+
+!NewMethodNode class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libcomp/MethodNode.st,v 1.8 2000-10-30 12:43:24 cg Exp $'
+! !