compiler/PPCDelegateNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 18 Jan 2016 08:05:03 +0000
changeset 555 4aa0496e6c22
parent 515 b5316ef15274
permissions -rw-r--r--
For tests on Pharo 5.0, use Spur VM

"{ Package: 'stx:goodies/petitparser/compiler' }"

"{ NameSpace: Smalltalk }"

PPCNode subclass:#PPCDelegateNode
	instanceVariableNames:'child'
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-Nodes'
!


!PPCDelegateNode methodsFor:'accessing'!

child
    ^ child
!

child: whatever
    self assert: (whatever == self) not.
    child := whatever 
!

children
    ^ { child }
! !

!PPCDelegateNode methodsFor:'analysis'!

acceptsEpsilon
    ^ child acceptsEpsilonOpenSet: (IdentitySet with: self).
!

acceptsEpsilonOpenSet: set
    (set includes: child) ifFalse: [ 
        set add: child.
        ^ child acceptsEpsilonOpenSet: set 
    ].
    ^ false
!

recognizedSentencesPrim
    ^ self child recognizedSentencesPrim 
! !

!PPCDelegateNode methodsFor:'transformation'!

replace: node with: anotherNode
    self assert: (anotherNode == self) not.
    child == node ifTrue: [ child := anotherNode ]
! !

!PPCDelegateNode class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !