compiler/PPCCodeGenerator.st
changeset 492 fc3dbe5654c5
parent 491 82b272c7dc37
child 495 555f59e60886
equal deleted inserted replaced
491:82b272c7dc37 492:fc3dbe5654c5
   209 !PPCCodeGenerator methodsFor:'visiting'!
   209 !PPCCodeGenerator methodsFor:'visiting'!
   210 
   210 
   211 visitActionNode: node
   211 visitActionNode: node
   212     | blockNode blockBody blockNodesVar blockNeedsCollection blockMatches childValueVars |
   212     | blockNode blockBody blockNodesVar blockNeedsCollection blockMatches childValueVars |
   213 
   213 
   214     blockNode := node block ast copy.
   214     blockNode := node block ast deepCopy.
   215     self assert: blockNode arguments size == 1.
   215     self assert: blockNode arguments size == 1.
   216     blockNodesVar := blockNode arguments first .
   216     blockNodesVar := blockNode arguments first .
   217     blockBody := blockNode body.
   217     blockBody := blockNode body.
   218 
   218 
   219     "Now, analyze block body, search for all references to
   219     "Now, analyze block body, search for all references to
   302         compiler codeReturn: 'failure'. 
   302         compiler codeReturn: 'failure'. 
   303     ] else: [
   303     ] else: [
   304         compiler code: blockBody.    
   304         compiler code: blockBody.    
   305     ]
   305     ]
   306 
   306 
   307     "Modified: / 16-06-2015 / 07:41:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   307     "Modified: / 17-06-2015 / 16:43:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   308 !
   308 !
   309 
   309 
   310 visitAndNode: node
   310 visitAndNode: node
   311     | mementoVar |
   311     | mementoVar |
   312     
   312