--- a/compiler/PPCDistinctResultStrategy.st Mon Aug 17 12:13:16 2015 +0100
+++ b/compiler/PPCDistinctResultStrategy.st Mon Aug 24 15:34:14 2015 +0100
@@ -11,10 +11,6 @@
!PPCDistinctResultStrategy methodsFor:'as yet unclassified'!
-recordFailure: retval
- ^ self recordFailure: retval offset: 0
-!
-
recordFailure: retval offset: offset
offset == 0 ifTrue: [
codeGen codeRecordDistinctMatch: nil.
@@ -23,10 +19,6 @@
codeGen codeRecordDistinctMatch: nil offset: offset
!
-recordMatch: retval
- ^ self recordMatch: retval offset: 0
-!
-
recordMatch: retval offset: offset
offset == 0 ifTrue: [
codeGen codeRecordDistinctMatch: retval.
@@ -40,6 +32,24 @@
^ codeGen code: 'self resetDistinct.'.
!
+returnFailure: retval offset: offset
+ (offset == 0) ifFalse: [
+ codeGen codeIf: 'currentChar isNil' then: nil else: [
+ codeGen code: ('context skip: -', offset asString); codeDot.
+ ]
+ ].
+
+ codeGen codeReturn: [ codeGen codeRecordDistinctFailure: nil ].
+!
+
+returnMatch: retval offset: offset
+ (offset == 0) ifFalse: [
+ codeGen code: 'self back.'.
+ ].
+
+ codeGen codeReturn: [ codeGen codeRecordDistinctMatch: retval ].
+!
+
returnResult: state
codeGen codeNl.
codeGen codeReturnDistinct.