--- a/MessageNd.st Thu Aug 21 15:41:42 1997 +0200
+++ b/MessageNd.st Tue Sep 02 20:17:10 1997 +0200
@@ -10,6 +10,8 @@
hereby transferred.
"
+'From Smalltalk/X, Version:3.1.9 on 29-aug-1997 at 8:24:43 pm' !
+
ParseNode subclass:#MessageNode
instanceVariableNames:'receiver selector argArray lineNr selectorPosition'
classVariableNames:''
@@ -306,6 +308,11 @@
receiver possiblyInlined:true
].
].
+ (selector == #repeat) ifTrue:[
+ receiver isBlock ifTrue:[
+ receiver possiblyInlined:true
+ ].
+ ].
].
numArgs == 1 ifTrue:[
@@ -372,7 +379,7 @@
^ self
"Created: 2.7.1997 / 17:01:10 / cg"
- "Modified: 2.7.1997 / 18:26:45 / cg"
+ "Modified: 29.8.1997 / 08:20:57 / cg"
!
plausibilityCheck
@@ -926,6 +933,13 @@
^ self codeWhileOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
]
].
+ (selector == #repeat) ifTrue:[
+ receiver isInlinable ifTrue:[
+ valueNeeded ifFalse:[
+ ^ self codeRepeatOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+ ]
+ ]
+ ].
].
isBuiltIn := aCompiler isBuiltInUnarySelector:selector forReceiver:receiver.
@@ -1173,7 +1187,7 @@
].
"Modified: 3.9.1995 / 12:55:42 / claus"
- "Modified: 2.7.1997 / 18:54:09 / cg"
+ "Modified: 29.8.1997 / 08:19:45 / cg"
!
codeOrIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
@@ -1376,6 +1390,18 @@
"Created: 10.11.1996 / 18:28:57 / cg"
!
+codeRepeatOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
+ "generate code for [ ... ] repeat"
+
+ |pos|
+
+ pos := aStream position.
+ receiver codeInlineOn:aStream inBlock:b valueNeeded:false for:aCompiler.
+ aStream nextPut:#jump; nextPut:pos.
+
+ "Created: 29.8.1997 / 08:14:58 / cg"
+!
+
codeSendOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
"like code on, but assumes that receiver has already been
coded onto stack - needed for cascade"
@@ -2231,5 +2257,5 @@
!MessageNode class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/Attic/MessageNd.st,v 1.80 1997-08-05 14:34:57 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/Attic/MessageNd.st,v 1.81 1997-09-02 18:17:10 cg Exp $'
! !
--- a/MessageNode.st Thu Aug 21 15:41:42 1997 +0200
+++ b/MessageNode.st Tue Sep 02 20:17:10 1997 +0200
@@ -10,6 +10,8 @@
hereby transferred.
"
+'From Smalltalk/X, Version:3.1.9 on 29-aug-1997 at 8:24:43 pm' !
+
ParseNode subclass:#MessageNode
instanceVariableNames:'receiver selector argArray lineNr selectorPosition'
classVariableNames:''
@@ -306,6 +308,11 @@
receiver possiblyInlined:true
].
].
+ (selector == #repeat) ifTrue:[
+ receiver isBlock ifTrue:[
+ receiver possiblyInlined:true
+ ].
+ ].
].
numArgs == 1 ifTrue:[
@@ -372,7 +379,7 @@
^ self
"Created: 2.7.1997 / 17:01:10 / cg"
- "Modified: 2.7.1997 / 18:26:45 / cg"
+ "Modified: 29.8.1997 / 08:20:57 / cg"
!
plausibilityCheck
@@ -926,6 +933,13 @@
^ self codeWhileOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
]
].
+ (selector == #repeat) ifTrue:[
+ receiver isInlinable ifTrue:[
+ valueNeeded ifFalse:[
+ ^ self codeRepeatOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+ ]
+ ]
+ ].
].
isBuiltIn := aCompiler isBuiltInUnarySelector:selector forReceiver:receiver.
@@ -1173,7 +1187,7 @@
].
"Modified: 3.9.1995 / 12:55:42 / claus"
- "Modified: 2.7.1997 / 18:54:09 / cg"
+ "Modified: 29.8.1997 / 08:19:45 / cg"
!
codeOrIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
@@ -1376,6 +1390,18 @@
"Created: 10.11.1996 / 18:28:57 / cg"
!
+codeRepeatOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
+ "generate code for [ ... ] repeat"
+
+ |pos|
+
+ pos := aStream position.
+ receiver codeInlineOn:aStream inBlock:b valueNeeded:false for:aCompiler.
+ aStream nextPut:#jump; nextPut:pos.
+
+ "Created: 29.8.1997 / 08:14:58 / cg"
+!
+
codeSendOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
"like code on, but assumes that receiver has already been
coded onto stack - needed for cascade"
@@ -2231,5 +2257,5 @@
!MessageNode class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.80 1997-08-05 14:34:57 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.81 1997-09-02 18:17:10 cg Exp $'
! !