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