--- /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 $'
+! !