PPPossessiveRepeatingParser.st
changeset 377 6112a403a52d
parent 175 3affa13c4553
--- a/PPPossessiveRepeatingParser.st	Fri Oct 03 01:59:10 2014 +0100
+++ b/PPPossessiveRepeatingParser.st	Fri Oct 03 02:33:08 2014 +0100
@@ -10,17 +10,17 @@
 
 !PPPossessiveRepeatingParser methodsFor:'parsing'!
 
-parseOn: aStream
-	| start element elements |
-	start := aStream position.
+parseOn: aPPContext
+	| memento element elements |
+	memento := aPPContext remember.
 	elements := OrderedCollection new.
 	[ elements size < min ] whileTrue: [
-		(element := parser parseOn: aStream) isPetitFailure ifTrue: [
-			aStream position: start.
+		(element := parser parseOn: aPPContext) isPetitFailure ifTrue: [
+			aPPContext restore: memento.
 			^ element ].
 		elements addLast: element ].
 	[ elements size < max ] whileTrue: [
-	 	(element := parser parseOn: aStream) isPetitFailure
+	 	(element := parser parseOn: aPPContext) isPetitFailure
 			ifTrue: [ ^ elements asArray ].
 		elements addLast: element ].
 	^ elements asArray