islands/PPInputEnds.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 08 Oct 2014 21:56:20 +0100
changeset 388 74c9c229033b
parent 387 e2b2ccaa4de6
child 389 009c2e13973c
permissions -rw-r--r--
Workaround to fix PPComposedTest>>testLeftRecursion - make PPStream>>size returning size of the input. For whatever reason, in Smalltalk/X ReadStream>>size returns size remaning data, not the size of a whole stream. This is a bug and should be fixed in Smalltalk/X libbasic. Meanwhile, override PPStream>>size to return proper value. In Pharo, the method is not needed as the inherited method is exactly the same.

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

PPParser subclass:#PPInputEnds
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'PetitIslands-Parsers'
!

PPInputEnds comment:''
!

!PPInputEnds methodsFor:'as yet unclassified'!

acceptsEpsilon
	^ true
!

exampleOn: aStream 
	aStream nextPutAll: '#End Of Input#'
!

isNullable 
	^ true
!

parseOn: aPPContext
	(aPPContext atEnd) ifFalse:
	[
		^ PPFailure message: 'end of input expected' context: aPPContext.
	].
	^ #inputEnds
! !