compiler/PPCDelegateNode.st
changeset 422 116d2b2af905
parent 392 9b297f0d949c
child 438 20598d7ce9fa
equal deleted inserted replaced
421:7e08b31e0dae 422:116d2b2af905
     1 "{ Package: 'stx:goodies/petitparser/compiler' }"
     1 "{ Package: 'stx:goodies/petitparser/compiler' }"
       
     2 
       
     3 "{ NameSpace: Smalltalk }"
     2 
     4 
     3 PPCNode subclass:#PPCDelegateNode
     5 PPCNode subclass:#PPCDelegateNode
     4 	instanceVariableNames:'child'
     6 	instanceVariableNames:'child'
     5 	classVariableNames:''
     7 	classVariableNames:''
     6 	poolDictionaries:''
     8 	poolDictionaries:''
    43 	inlinedNode := child asInlined.
    45 	inlinedNode := child asInlined.
    44 	(inlinedNode ~= child) ifTrue: [ 
    46 	(inlinedNode ~= child) ifTrue: [ 
    45 		changeStatus change.
    47 		changeStatus change.
    46 		self replace: child with: inlinedNode.
    48 		self replace: child with: inlinedNode.
    47 	]
    49 	]
    48 !
       
    49 
       
    50 optimize: params status: changeStatus
       
    51 	| retval |
       
    52 	retval := self.
       
    53 	
       
    54 	retval := retval rewrite: params status: changeStatus.
       
    55 	retval := retval inline: params status: changeStatus.
       
    56 	
       
    57 	^ retval
       
    58 ! !
    50 ! !
    59 
    51 
    60 !PPCDelegateNode methodsFor:'transformation'!
    52 !PPCDelegateNode methodsFor:'transformation'!
    61 
    53 
    62 replace: node with: anotherNode
    54 replace: node with: anotherNode