--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PPLimitedRepeatingParser.st Tue Mar 04 15:32:55 2014 +0100
@@ -0,0 +1,54 @@
+"{ Package: 'stx:goodies/petitparser' }"
+
+PPRepeatingParser subclass:#PPLimitedRepeatingParser
+ instanceVariableNames:'limit'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitParser-Parsers'
+!
+
+
+!PPLimitedRepeatingParser class methodsFor:'instance creation'!
+
+on: aParser limit: aLimitParser
+ ^ (self on: aParser) setLimit: aLimitParser
+! !
+
+!PPLimitedRepeatingParser methodsFor:'accessing'!
+
+children
+ ^ Array with: parser with: limit
+!
+
+limit
+ "Answer the parser that limits (or ends) this repetition."
+
+ ^ limit
+! !
+
+!PPLimitedRepeatingParser methodsFor:'initialization'!
+
+setLimit: aParser
+ limit := aParser
+! !
+
+!PPLimitedRepeatingParser methodsFor:'private'!
+
+matchesLimitOn: aStream
+ | element position |
+ position := aStream position.
+ element := limit parseOn: aStream.
+ aStream position: position.
+ ^ element isPetitFailure not
+! !
+
+!PPLimitedRepeatingParser class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLimitedRepeatingParser.st,v 1.1 2014-03-04 14:32:55 cg Exp $'
+!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLimitedRepeatingParser.st,v 1.1 2014-03-04 14:32:55 cg Exp $'
+! !
+