diff -r 5389e6fbb3bc -r 0eaf09920532 compiler/PPCGuard.st --- a/compiler/PPCGuard.st Wed Nov 05 21:40:01 2014 +0000 +++ b/compiler/PPCGuard.st Wed Nov 05 23:05:19 2014 +0000 @@ -17,6 +17,10 @@ !PPCGuard methodsFor:'accessing'! +classification + ^ classification +! + id ^ id @@ -52,19 +56,18 @@ ! compileCharacter: compiler - self assert: (classification select: [ :e | e ]) size = 1. - - classification keysAndValuesDo: [ :index :value | value ifTrue: [ - (index > 32 and: [ index < 127 ]) ifTrue: [ - compiler add: '(context peek = ', (Character value: index) storeString, ')' - ] ifFalse: [ - id := compiler idFor: (Character value: index) prefixed: #character. - compiler addConstant: (Character value: index) as: id. - compiler add: '(context peek = ', id, ')'. - ] - ] ]. + self assert: (classification select: [ :e | e ]) size = 1. + + classification keysAndValuesDo: [ :index :value | value ifTrue: [ + (index > 32 and: [ index < 127 ]) ifTrue: [ + compiler add: '(context peek = ', (Character value: index) storeString, ')' + ] ifFalse: [ + id := compiler idFor: (Character value: index) prefixed: #character. + compiler addConstant: (Character value: index) as: id. + compiler add: '(context peek = ', id, ')'. + ] + ] ]. - "Modified: / 26-10-2014 / 22:13:38 / Jan Vrany " ! compileGuard: compiler id: symbol @@ -89,7 +92,9 @@ ^ self initializeForEpsilon ]. - self classificationOn: [:char | node firstSet anySatisfy: [:e | (e firstCharParser parse: char asString) isPetitFailure not ]] + self classificationOn: [:char | node firstSet anySatisfy: [:e | (e firstCharSetCached value: char) ]] + +" self classificationOn: [ :char | node firstSet anySatisfy: [ :e | (e firstCharParser parse: char asString) isPetitFailure not ] ]" ! initializeForEpsilon