PPFlattenParser.st
author Claus Gittinger <cg@exept.de>
Fri, 13 Jan 2012 12:22:50 +0100
changeset 4 90de244a7fa2
parent 0 739fe9b7253e
child 15 421e0a6582d4
permissions -rw-r--r--
move to package

"{ Package: 'stx:goodies/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.2 2012-01-13 11:22:50 cg Exp $'
! !