--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/PPCDistinctResultStrategy.st Mon Aug 17 12:13:16 2015 +0100
@@ -0,0 +1,47 @@
+"{ Package: 'stx:goodies/petitparser/compiler' }"
+
+"{ NameSpace: Smalltalk }"
+
+PPCScannerResultStrategy subclass:#PPCDistinctResultStrategy
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitCompiler-Scanner'
+!
+
+!PPCDistinctResultStrategy methodsFor:'as yet unclassified'!
+
+recordFailure: retval
+ ^ self recordFailure: retval offset: 0
+!
+
+recordFailure: retval offset: offset
+ offset == 0 ifTrue: [
+ codeGen codeRecordDistinctMatch: nil.
+ ^ self
+ ].
+ codeGen codeRecordDistinctMatch: nil offset: offset
+!
+
+recordMatch: retval
+ ^ self recordMatch: retval offset: 0
+!
+
+recordMatch: retval offset: offset
+ offset == 0 ifTrue: [
+ codeGen codeRecordDistinctMatch: retval.
+ ^ self
+ ].
+
+ codeGen codeRecordDistinctMatch: retval offset: offset
+!
+
+reset
+ ^ codeGen code: 'self resetDistinct.'.
+!
+
+returnResult: state
+ codeGen codeNl.
+ codeGen codeReturnDistinct.
+! !
+