compiler/PPCDelegateNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 24 Aug 2015 17:38:44 +0100
changeset 527 9b50ec9a6918
parent 515 b5316ef15274
permissions -rw-r--r--
Added missing #new methods

"{ 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> $'
! !