PPFlattenParser.st
author Claus Gittinger <cg@exept.de>
Thu, 18 Aug 2011 20:56:17 +0200
changeset 0 739fe9b7253e
child 4 90de244a7fa2
permissions -rw-r--r--
*** empty log message ***

"{ Package: 'squeak:petitparser' }"

PPDelegateParser subclass:#PPFlattenParser
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'PetitParser-Parsers'
!

PPFlattenParser comment:'A parser that answers a flat copy of the range my delegate parses.'
!


!PPFlattenParser methodsFor:'hooks'!

create: aCollection start: aStartInteger stop: aStopInteger
	^ aCollection copyFrom: aStartInteger to: aStopInteger
! !

!PPFlattenParser methodsFor:'parsing'!

parseOn: aStream
	| start element stop |
	start := aStream position.
	element := parser parseOn: aStream.
	element isPetitFailure ifTrue: [
		aStream position: start.
		^ element ].
	stop := aStream position.
	^ self create: aStream collection start: start + 1 stop: stop
! !

!PPFlattenParser class methodsFor:'documentation'!

version_SVN
    ^ '$Id: PPFlattenParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $'
! !