diff -r 000000000000 -r 739fe9b7253e PPFlattenParser.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PPFlattenParser.st Thu Aug 18 20:56:17 2011 +0200 @@ -0,0 +1,37 @@ +"{ 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 $' +! !