*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Sun, 07 Jan 1996 13:34:02 +0100
changeset 186 05a99f1bd747
parent 185 21ef5ceda838
child 187 8aa7dd9bb1e3
*** empty log message ***
MessageNd.st
MessageNode.st
--- a/MessageNd.st	Sat Jan 06 16:01:10 1996 +0100
+++ b/MessageNd.st	Sun Jan 07 13:34:02 1996 +0100
@@ -501,15 +501,15 @@
 self halt:'not yet implemented'.
     theReceiver := receiver.
     (selector == #and:) ifTrue:[
-        theByteCode := #falseJump
+	theByteCode := #falseJump
     ] ifFalse:[
-        theByteCode := #trueJump
+	theByteCode := #trueJump
     ].
 "
     (self canOptimizeConditionFor:receiver) ifTrue:[
-        theByteCode := self optimizedConditionFor:theReceiver
-                                             with:theByteCode.
-        theReceiver := theReceiver receiver
+	theByteCode := self optimizedConditionFor:theReceiver
+					     with:theByteCode.
+	theReceiver := theReceiver receiver
     ].
 "
     theReceiver codeOn:aStream inBlock:b for:aCompiler.
@@ -619,67 +619,67 @@
 
 "
     (theReceiver isMessage) ifTrue:[
-        subsel := theReceiver selector.
-        (subsel == #and:) ifTrue:[
-            self codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-            ^ self
-        ].
-        (subsel == #or:) ifTrue:[
-            self codeOrIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-            ^ self
-        ]
+	subsel := theReceiver selector.
+	(subsel == #and:) ifTrue:[
+	    self codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	    ^ self
+	].
+	(subsel == #or:) ifTrue:[
+	    self codeOrIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	    ^ self
+	]
     ].
 "
     (selector == #ifTrue:ifFalse:) ifTrue:[
-        theByteCode := #falseJump
+	theByteCode := #falseJump
     ] ifFalse:[
-        (selector == #ifFalse:ifTrue:) ifTrue:[
-            theByteCode := #trueJump
-        ]
+	(selector == #ifFalse:ifTrue:) ifTrue:[
+	    theByteCode := #trueJump
+	]
     ].
     optByteCode := self optimizedConditionFor:theReceiver
-                                         with:theByteCode.
+					 with:theByteCode.
     optByteCode notNil ifTrue:[
-        ((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
-            theArg := theReceiver arg1
-        ].
-        theReceiver := theReceiver receiver.
-        theByteCode := optByteCode
+	((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
+	    theArg := theReceiver arg1
+	].
+	theReceiver := theReceiver receiver.
+	theByteCode := optByteCode
     ].
     theByteCode notNil ifTrue:[
-        theReceiver codeOn:aStream inBlock:b for:aCompiler.
+	theReceiver codeOn:aStream inBlock:b for:aCompiler.
 
-        needLineNr := true.
-        theArg isNil ifTrue:[
-            theReceiver isMessage ifTrue:[
-                (self class hasLineNumber:(theReceiver selector)) ifTrue:[
-                    theReceiver lineNumber == lineNr ifTrue:[
-                        needLineNr := false
-                    ]
-                ]
-            ]
-        ].
-        theArg notNil ifTrue:[
-            theArg codeOn:aStream inBlock:b for:aCompiler
-        ].
+	needLineNr := true.
+	theArg isNil ifTrue:[
+	    theReceiver isMessage ifTrue:[
+		(self class hasLineNumber:(theReceiver selector)) ifTrue:[
+		    theReceiver lineNumber == lineNr ifTrue:[
+			needLineNr := false
+		    ]
+		]
+	    ]
+	].
+	theArg notNil ifTrue:[
+	    theArg codeOn:aStream inBlock:b for:aCompiler
+	].
 
-        needLineNr ifTrue:[
-            (lineNr between:1 and:255) ifTrue:[
-                aStream nextPut:#lineno; nextPut:lineNr.
-            ]
-        ].
+	needLineNr ifTrue:[
+	    (lineNr between:1 and:255) ifTrue:[
+		aStream nextPut:#lineno; nextPut:lineNr.
+	    ]
+	].
 
-        aStream nextPut:theByteCode.
-        pos := aStream position.
-        aStream nextPut:0.
-        (argArray at:1) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-        aStream nextPut:#jump.
-        pos2 := aStream position.
-        aStream nextPut:0.
-        code := aStream contents.
-        code at:pos put:(aStream position).
-        (argArray at:2) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-        code at:pos2 put:(aStream position)
+	aStream nextPut:theByteCode.
+	pos := aStream position.
+	aStream nextPut:0.
+	(argArray at:1) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	aStream nextPut:#jump.
+	pos2 := aStream position.
+	aStream nextPut:0.
+	code := aStream contents.
+	code at:pos put:(aStream position).
+	(argArray at:2) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	code at:pos2 put:(aStream position)
     ]
 
     "Modified: 13.12.1995 / 18:51:39 / cg"
@@ -1227,19 +1227,19 @@
     |pos pos2 theReceiver theArg theByteCode optByteCode needLineNr blockExpr|
 
     (selector == #whileTrue:) ifTrue:[
-        theByteCode := #falseJump
+	theByteCode := #falseJump
     ] ifFalse:[
-        theByteCode := #trueJump
+	theByteCode := #trueJump
     ].
 
     theReceiver := receiver.
     optByteCode := self optimizedConditionFor:theReceiver with:theByteCode.
     optByteCode notNil ifTrue:[
-        ((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
-            theArg := receiver statements expression arg1
-        ].
-        theReceiver := receiver statements expression receiver.
-        theByteCode := optByteCode
+	((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
+	    theArg := receiver statements expression arg1
+	].
+	theReceiver := receiver statements expression receiver.
+	theByteCode := optByteCode
     ].
 
 "/ OLD:
@@ -1249,18 +1249,18 @@
 
     pos := aStream position.
     optByteCode notNil ifTrue:[
-        theReceiver codeOn:aStream inBlock:b for:aCompiler.
-        theArg notNil ifTrue:[
-            theArg codeOn:aStream inBlock:b for:aCompiler
-        ]
+	theReceiver codeOn:aStream inBlock:b for:aCompiler.
+	theArg notNil ifTrue:[
+	    theArg codeOn:aStream inBlock:b for:aCompiler
+	]
     ] ifFalse:[
-        theReceiver codeInlineOn:aStream inBlock:b for:aCompiler.
+	theReceiver codeInlineOn:aStream inBlock:b for:aCompiler.
 
-        "/
-        "/ cannot enable code below 
-        "/ (tiny loops would not be debuggable with next, since lineNo remains the same)
-        "/ think about it ...
-        "/
+	"/
+	"/ cannot enable code below 
+	"/ (tiny loops would not be debuggable with next, since lineNo remains the same)
+	"/ think about it ...
+	"/
 "/        blockExpr := theReceiver simpleSendBlockReceiver.
 "/        blockExpr notNil ifTrue:[
 "/            blockExpr isMessage ifTrue:[
@@ -1274,9 +1274,9 @@
     ].
 
     needLineNr ifTrue:[
-        (lineNr between:1 and:255) ifTrue:[
-            aStream nextPut:#lineno; nextPut:lineNr.
-        ]
+	(lineNr between:1 and:255) ifTrue:[
+	    aStream nextPut:#lineno; nextPut:lineNr.
+	]
     ].
 
     aStream nextPut:theByteCode.
@@ -1298,12 +1298,14 @@
 !
 
 optimizedConditionFor:aReceiver with:aByteCode
-    |rec sel|
+    |rec sel stats|
 
     rec := aReceiver.
     (rec isBlock) ifTrue:[
-	rec statements nextStatement isNil ifTrue:[
-	    rec := rec statements expression
+	(stats := rec statements) notNil ifTrue:[
+	    stats nextStatement isNil ifTrue:[
+		rec := rec statements expression
+	    ]
 	]
     ].
     (rec isUnaryMessage) ifTrue:[
@@ -1562,5 +1564,5 @@
 !MessageNode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/Attic/MessageNd.st,v 1.36 1995-12-13 19:04:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Attic/MessageNd.st,v 1.37 1996-01-07 12:34:02 cg Exp $'
 ! !
--- a/MessageNode.st	Sat Jan 06 16:01:10 1996 +0100
+++ b/MessageNode.st	Sun Jan 07 13:34:02 1996 +0100
@@ -501,15 +501,15 @@
 self halt:'not yet implemented'.
     theReceiver := receiver.
     (selector == #and:) ifTrue:[
-        theByteCode := #falseJump
+	theByteCode := #falseJump
     ] ifFalse:[
-        theByteCode := #trueJump
+	theByteCode := #trueJump
     ].
 "
     (self canOptimizeConditionFor:receiver) ifTrue:[
-        theByteCode := self optimizedConditionFor:theReceiver
-                                             with:theByteCode.
-        theReceiver := theReceiver receiver
+	theByteCode := self optimizedConditionFor:theReceiver
+					     with:theByteCode.
+	theReceiver := theReceiver receiver
     ].
 "
     theReceiver codeOn:aStream inBlock:b for:aCompiler.
@@ -619,67 +619,67 @@
 
 "
     (theReceiver isMessage) ifTrue:[
-        subsel := theReceiver selector.
-        (subsel == #and:) ifTrue:[
-            self codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-            ^ self
-        ].
-        (subsel == #or:) ifTrue:[
-            self codeOrIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-            ^ self
-        ]
+	subsel := theReceiver selector.
+	(subsel == #and:) ifTrue:[
+	    self codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	    ^ self
+	].
+	(subsel == #or:) ifTrue:[
+	    self codeOrIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	    ^ self
+	]
     ].
 "
     (selector == #ifTrue:ifFalse:) ifTrue:[
-        theByteCode := #falseJump
+	theByteCode := #falseJump
     ] ifFalse:[
-        (selector == #ifFalse:ifTrue:) ifTrue:[
-            theByteCode := #trueJump
-        ]
+	(selector == #ifFalse:ifTrue:) ifTrue:[
+	    theByteCode := #trueJump
+	]
     ].
     optByteCode := self optimizedConditionFor:theReceiver
-                                         with:theByteCode.
+					 with:theByteCode.
     optByteCode notNil ifTrue:[
-        ((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
-            theArg := theReceiver arg1
-        ].
-        theReceiver := theReceiver receiver.
-        theByteCode := optByteCode
+	((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
+	    theArg := theReceiver arg1
+	].
+	theReceiver := theReceiver receiver.
+	theByteCode := optByteCode
     ].
     theByteCode notNil ifTrue:[
-        theReceiver codeOn:aStream inBlock:b for:aCompiler.
+	theReceiver codeOn:aStream inBlock:b for:aCompiler.
 
-        needLineNr := true.
-        theArg isNil ifTrue:[
-            theReceiver isMessage ifTrue:[
-                (self class hasLineNumber:(theReceiver selector)) ifTrue:[
-                    theReceiver lineNumber == lineNr ifTrue:[
-                        needLineNr := false
-                    ]
-                ]
-            ]
-        ].
-        theArg notNil ifTrue:[
-            theArg codeOn:aStream inBlock:b for:aCompiler
-        ].
+	needLineNr := true.
+	theArg isNil ifTrue:[
+	    theReceiver isMessage ifTrue:[
+		(self class hasLineNumber:(theReceiver selector)) ifTrue:[
+		    theReceiver lineNumber == lineNr ifTrue:[
+			needLineNr := false
+		    ]
+		]
+	    ]
+	].
+	theArg notNil ifTrue:[
+	    theArg codeOn:aStream inBlock:b for:aCompiler
+	].
 
-        needLineNr ifTrue:[
-            (lineNr between:1 and:255) ifTrue:[
-                aStream nextPut:#lineno; nextPut:lineNr.
-            ]
-        ].
+	needLineNr ifTrue:[
+	    (lineNr between:1 and:255) ifTrue:[
+		aStream nextPut:#lineno; nextPut:lineNr.
+	    ]
+	].
 
-        aStream nextPut:theByteCode.
-        pos := aStream position.
-        aStream nextPut:0.
-        (argArray at:1) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-        aStream nextPut:#jump.
-        pos2 := aStream position.
-        aStream nextPut:0.
-        code := aStream contents.
-        code at:pos put:(aStream position).
-        (argArray at:2) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
-        code at:pos2 put:(aStream position)
+	aStream nextPut:theByteCode.
+	pos := aStream position.
+	aStream nextPut:0.
+	(argArray at:1) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	aStream nextPut:#jump.
+	pos2 := aStream position.
+	aStream nextPut:0.
+	code := aStream contents.
+	code at:pos put:(aStream position).
+	(argArray at:2) codeInlineOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler.
+	code at:pos2 put:(aStream position)
     ]
 
     "Modified: 13.12.1995 / 18:51:39 / cg"
@@ -1227,19 +1227,19 @@
     |pos pos2 theReceiver theArg theByteCode optByteCode needLineNr blockExpr|
 
     (selector == #whileTrue:) ifTrue:[
-        theByteCode := #falseJump
+	theByteCode := #falseJump
     ] ifFalse:[
-        theByteCode := #trueJump
+	theByteCode := #trueJump
     ].
 
     theReceiver := receiver.
     optByteCode := self optimizedConditionFor:theReceiver with:theByteCode.
     optByteCode notNil ifTrue:[
-        ((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
-            theArg := receiver statements expression arg1
-        ].
-        theReceiver := receiver statements expression receiver.
-        theByteCode := optByteCode
+	((optByteCode == #eqJump) or:[optByteCode == #notEqJump]) ifTrue:[
+	    theArg := receiver statements expression arg1
+	].
+	theReceiver := receiver statements expression receiver.
+	theByteCode := optByteCode
     ].
 
 "/ OLD:
@@ -1249,18 +1249,18 @@
 
     pos := aStream position.
     optByteCode notNil ifTrue:[
-        theReceiver codeOn:aStream inBlock:b for:aCompiler.
-        theArg notNil ifTrue:[
-            theArg codeOn:aStream inBlock:b for:aCompiler
-        ]
+	theReceiver codeOn:aStream inBlock:b for:aCompiler.
+	theArg notNil ifTrue:[
+	    theArg codeOn:aStream inBlock:b for:aCompiler
+	]
     ] ifFalse:[
-        theReceiver codeInlineOn:aStream inBlock:b for:aCompiler.
+	theReceiver codeInlineOn:aStream inBlock:b for:aCompiler.
 
-        "/
-        "/ cannot enable code below 
-        "/ (tiny loops would not be debuggable with next, since lineNo remains the same)
-        "/ think about it ...
-        "/
+	"/
+	"/ cannot enable code below 
+	"/ (tiny loops would not be debuggable with next, since lineNo remains the same)
+	"/ think about it ...
+	"/
 "/        blockExpr := theReceiver simpleSendBlockReceiver.
 "/        blockExpr notNil ifTrue:[
 "/            blockExpr isMessage ifTrue:[
@@ -1274,9 +1274,9 @@
     ].
 
     needLineNr ifTrue:[
-        (lineNr between:1 and:255) ifTrue:[
-            aStream nextPut:#lineno; nextPut:lineNr.
-        ]
+	(lineNr between:1 and:255) ifTrue:[
+	    aStream nextPut:#lineno; nextPut:lineNr.
+	]
     ].
 
     aStream nextPut:theByteCode.
@@ -1298,12 +1298,14 @@
 !
 
 optimizedConditionFor:aReceiver with:aByteCode
-    |rec sel|
+    |rec sel stats|
 
     rec := aReceiver.
     (rec isBlock) ifTrue:[
-	rec statements nextStatement isNil ifTrue:[
-	    rec := rec statements expression
+	(stats := rec statements) notNil ifTrue:[
+	    stats nextStatement isNil ifTrue:[
+		rec := rec statements expression
+	    ]
 	]
     ].
     (rec isUnaryMessage) ifTrue:[
@@ -1562,5 +1564,5 @@
 !MessageNode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.36 1995-12-13 19:04:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.37 1996-01-07 12:34:02 cg Exp $'
 ! !