AssignmentNode.st
changeset 1046 8e5818442eb9
parent 1035 8848672cb893
child 1079 2a996e0def30
equal deleted inserted replaced
1045:ee448a958d19 1046:8e5818442eb9
     7  inclusion of the above copyright notice.   This software may not
     7  inclusion of the above copyright notice.   This software may not
     8  be provided or otherwise made available to, or used by, any
     8  be provided or otherwise made available to, or used by, any
     9  other person.  No title to or ownership of the software is
     9  other person.  No title to or ownership of the software is
    10  hereby transferred.
    10  hereby transferred.
    11 "
    11 "
       
    12 
       
    13 "{ Package: 'stx:libcomp' }"
    12 
    14 
    13 ParseNode subclass:#AssignmentNode
    15 ParseNode subclass:#AssignmentNode
    14 	instanceVariableNames:'variable expression lineNr'
    16 	instanceVariableNames:'variable expression lineNr'
    15 	classVariableNames:''
    17 	classVariableNames:''
    16 	poolDictionaries:''
    18 	poolDictionaries:''
   159         aStream nextPut:#pushLitS; nextPut:litIdx.
   161         aStream nextPut:#pushLitS; nextPut:litIdx.
   160         expression codeOn:aStream inBlock:b for:aCompiler.
   162         expression codeOn:aStream inBlock:b for:aCompiler.
   161 
   163 
   162         selLitIdx := aCompiler addLiteral:#value:.
   164         selLitIdx := aCompiler addLiteral:#value:.
   163         selLitIdx <= 255 ifTrue:[
   165         selLitIdx <= 255 ifTrue:[
   164             aStream nextPut:#sendDrop1; nextPut:(lineNr ? 1); nextPut:selLitIdx.
   166             aStream nextPut:#send1; nextPut:(lineNr ? 1); nextPut:selLitIdx.
   165         ] ifFalse:[
   167         ] ifFalse:[
   166             aStream nextPut:#sendDropL; nextPut:(lineNr ? 1); nextPut:selLitIdx; nextPut:0; nextPut:1 "nargs".
   168             aStream nextPut:#sendL; nextPut:(lineNr ? 1); nextPut:selLitIdx; nextPut:0; nextPut:1 "nargs".
   167         ].
   169         ].
       
   170         aStream nextPut:#drop.
   168 
   171 
   169         forValue ifTrue:[
   172         forValue ifTrue:[
   170             (expression isConstant or:[expression isVariable]) ifTrue:[
   173             (expression isConstant or:[expression isVariable]) ifTrue:[
   171                 expression codeOn:aStream inBlock:b for:aCompiler.
   174                 expression codeOn:aStream inBlock:b for:aCompiler.
   172             ] ifFalse:[
   175             ] ifFalse:[
   255 ! !
   258 ! !
   256 
   259 
   257 !AssignmentNode class methodsFor:'documentation'!
   260 !AssignmentNode class methodsFor:'documentation'!
   258 
   261 
   259 version
   262 version
   260     ^ '$Header: /cvs/stx/stx/libcomp/AssignmentNode.st,v 1.31 2000-02-12 15:33:54 cg Exp $'
   263     ^ '$Header: /cvs/stx/stx/libcomp/AssignmentNode.st,v 1.32 2000-06-19 12:00:53 cg Exp $'
   261 ! !
   264 ! !