MessageNode.st
changeset 4297 1e66c13ff84b
parent 4284 74de1d1dd381
child 4299 659a874f103a
equal deleted inserted replaced
4296:04e13c352104 4297:1e66c13ff84b
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "
     1 "
     4  COPYRIGHT (c) 1989 by Claus Gittinger
     2  COPYRIGHT (c) 1989 by Claus Gittinger
     5               All Rights Reserved
     3               All Rights Reserved
     6 
     4 
     7  This software is furnished under a license and may be used
     5  This software is furnished under a license and may be used
   782      useSelfSend usedSelector|
   780      useSelfSend usedSelector|
   783 
   781 
   784     selector := selector asSymbol.
   782     selector := selector asSymbol.
   785     usedSelector := aCompiler nameSpaceSelectorFor:selector.
   783     usedSelector := aCompiler nameSpaceSelectorFor:selector.
   786 
   784 
   787     "/ must be added for browsers-search to work on optimized nodes
   785     "/ must be added for browser's-search to work on optimized nodes
   788     usedSelector ~~ selector ifTrue:[ aCompiler addLiteral:selector ].
   786     usedSelector ~~ selector ifTrue:[ aCompiler addLiteral:selector ].
   789     litIndex := aCompiler addLiteral:usedSelector.
   787     litIndex := aCompiler addLiteral:usedSelector.
   790 
   788 
   791     noSendDrop := aCompiler class newCodeSet == true.
   789     noSendDrop := aCompiler class newCodeSet == true.
   792 
   790 
  1145     ].
  1143     ].
  1146 
  1144 
  1147     "Modified: / 03-09-1995 / 12:55:42 / claus"
  1145     "Modified: / 03-09-1995 / 12:55:42 / claus"
  1148     "Modified: / 25-05-2012 / 11:29:47 / cg"
  1146     "Modified: / 25-05-2012 / 11:29:47 / cg"
  1149     "Modified: / 12-04-2013 / 22:42:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1147     "Modified: / 12-04-2013 / 22:42:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
  1148     "Modified (comment): / 29-08-2018 / 12:53:43 / Claus Gittinger"
  1150 ! !
  1149 ! !
  1151 
  1150 
  1152 !MessageNode methodsFor:'enumerating'!
  1151 !MessageNode methodsFor:'enumerating'!
  1153 
  1152 
  1154 allSubNodesDo:aBlock
  1153 allSubNodesDo:aBlock
  1198     receiver variableNodesDo:aBlock.
  1197     receiver variableNodesDo:aBlock.
  1199     argArray notNil ifTrue:[
  1198     argArray notNil ifTrue:[
  1200         argArray do:[:arg | arg variableNodesDo:aBlock].
  1199         argArray do:[:arg | arg variableNodesDo:aBlock].
  1201     ]
  1200     ]
  1202 ! !
  1201 ! !
       
  1202 
  1203 
  1203 
  1204 !MessageNode methodsFor:'evaluation'!
  1204 !MessageNode methodsFor:'evaluation'!
  1205 
  1205 
  1206 evaluateForCascadeIn:anEnvironment
  1206 evaluateForCascadeIn:anEnvironment
  1207     "evaluate, but return the receiver expression's value,
  1207     "evaluate, but return the receiver expression's value,
  1283 !
  1283 !
  1284 
  1284 
  1285 evaluationSelector
  1285 evaluationSelector
  1286     ^ selector asSymbol
  1286     ^ selector asSymbol
  1287 ! !
  1287 ! !
       
  1288 
  1288 
  1289 
  1289 !MessageNode methodsFor:'optimized code generation'!
  1290 !MessageNode methodsFor:'optimized code generation'!
  1290 
  1291 
  1291 codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
  1292 codeAndIfElseOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
  1292     "generate code for (x and:[y]) ifxxx:[ ... ] ifyyy:[ ... ]"
  1293     "generate code for (x and:[y]) ifxxx:[ ... ] ifyyy:[ ... ]"