--- 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 $'
+! !