compiler/PPCCompiler.st
changeset 486 0dd7eb52b5a1
parent 479 6316a98b7150
child 488 19a9c25960ef
equal deleted inserted replaced
485:d86e2db09346 486:0dd7eb52b5a1
   187         "Do not assign, if somebody does not care!!"
   187         "Do not assign, if somebody does not care!!"
   188         self add: variable ,' := ', code.
   188         self add: variable ,' := ', code.
   189     ]
   189     ]
   190 !
   190 !
   191 
   191 
       
   192 codeAssignParsedValueOf:aBlock to:aString 
       
   193     | tmpVarirable  method |
       
   194 
       
   195     self assert:aBlock isBlock.
       
   196     self assert:aString isNil not.
       
   197     tmpVarirable := returnVariable.
       
   198     returnVariable := aString.
       
   199     method := [
       
   200             aBlock value
       
   201         ] ensure:[ returnVariable := tmpVarirable ].
       
   202     method isInline ifTrue:[
       
   203         self callOnLine:method
       
   204     ] ifFalse:[
       
   205         self codeEvaluateAndAssign:(method call) to:aString.
       
   206     ]
       
   207 
       
   208     "Created: / 23-04-2015 / 18:21:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   209 !
       
   210 
   192 codeBlock: contents
   211 codeBlock: contents
   193     currentMethod codeBlock: contents
   212     currentMethod codeBlock: contents
   194 
   213 
   195     "Created: / 01-06-2015 / 22:35:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   214     "Created: / 01-06-2015 / 22:35:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   196 !
   215 !
   315         self add: '^ ', code            
   334         self add: '^ ', code            
   316     ]
   335     ]
   317 
   336 
   318     "Created: / 23-04-2015 / 18:01:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   337     "Created: / 23-04-2015 / 18:01:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   319     "Modified: / 01-06-2015 / 21:48:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   338     "Modified: / 01-06-2015 / 21:48:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   320 !
       
   321 
       
   322 codeStoreValueOf: aBlock intoVariable: aString
       
   323     | tmpVarirable method |
       
   324     self assert: aBlock isBlock.
       
   325     self assert: aString isNil not.
       
   326     
       
   327     tmpVarirable := returnVariable.
       
   328     returnVariable := aString.
       
   329     method := [  
       
   330         aBlock value 
       
   331     ] ensure: [ 
       
   332         returnVariable := tmpVarirable 
       
   333     ].
       
   334     
       
   335     method isInline ifTrue: [ 
       
   336         self callOnLine: method 
       
   337     ] ifFalse: [ 
       
   338         self codeEvaluateAndAssign: (method call) to: aString.
       
   339     ]	
       
   340     
       
   341     "Created: / 23-04-2015 / 18:21:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   342 !
   339 !
   343 
   340 
   344 codeTokenGuard: node ifFalse: codeBlock
   341 codeTokenGuard: node ifFalse: codeBlock
   345     | guard id |
   342     | guard id |
   346     guard := PPCTokenGuard on: node.
   343     guard := PPCTokenGuard on: node.