compiler/PPCInliningVisitor.st
changeset 465 f729f6cd3c76
parent 463 d4014e0a47a0
parent 464 f6d77fee9811
child 503 ff58cd9f1f3c
equal deleted inserted replaced
463:d4014e0a47a0 465:f729f6cd3c76
     1 "{ Package: 'stx:goodies/petitparser/compiler' }"
     1 "{ Package: 'stx:goodies/petitparser/compiler' }"
     2 
     2 
     3 "{ NameSpace: Smalltalk }"
     3 "{ NameSpace: Smalltalk }"
     4 
     4 
     5 PPCNodeVisitor subclass:#PPCInliningVisitor
     5 PPCNodeVisitor subclass:#PPCInliningVisitor
     6 	instanceVariableNames:'acceptedNodes'
     6 	instanceVariableNames:'canInline acceptedNodes'
     7 	classVariableNames:''
     7 	classVariableNames:''
     8 	poolDictionaries:''
     8 	poolDictionaries:''
     9 	category:'PetitCompiler-Visitors'
     9 	category:'PetitCompiler-Visitors'
    10 !
    10 !
    11 
    11 
    87     ^ super visitPluggableNode: node.
    87     ^ super visitPluggableNode: node.
    88 
    88 
    89     "Modified: / 23-04-2015 / 12:15:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    89     "Modified: / 23-04-2015 / 12:15:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    90 !
    90 !
    91 
    91 
       
    92 visitStarCharSetPredicateNode: node
       
    93     ^ self markForInline: node
       
    94 !
       
    95 
       
    96 visitStarMessagePredicateNode: node
       
    97     ^ self markForInline: node
       
    98 !
       
    99 
    92 visitTokenConsumeNode: node
   100 visitTokenConsumeNode: node
    93     super visitTokenConsumeNode: node.
   101     super visitTokenConsumeNode: node.
    94     node name isNil ifTrue: [ 
   102     node name isNil ifTrue: [ 
    95         self markForInline: node
   103         self markForInline: node
    96     ].
   104     ].