Portability fixes in PPPredicateTest>>charactersDo: / parsedCharacterSet:
* It is my understanding that charactersDo: should iterate over all signle byte
characters. If so, the method suffer from off-by-one error, it should generate
characters with code points 0..255. 256 is actually a two-byte character.
Method changed accordingly.
* Use Character>>asString instead of `String>>with:` which is safer
w.r.t. multi-byte characters. Under Smalltalk/X, String may contain only
signle byte characters.
"{ Package: 'stx:goodies/petitparser/analyzer' }"
Object subclass:#PPRule
instanceVariableNames:'owner search'
classVariableNames:''
poolDictionaries:''
category:'PetitAnalyzer-Core'
!
!PPRule class methodsFor:'instance creation'!
new
^ self basicNew initialize
!
searchFor: aParser
^ self new setSearch: aParser
! !
!PPRule methodsFor:'initialization'!
initialize
!
setOwner: aGrammarSearcher
owner := aGrammarSearcher
!
setSearch: aParser
search := aParser
! !
!PPRule methodsFor:'matching'!
canMatch: aParser
^ true
!
foundMatchFor: aParser
self subclassResponsibility
!
performOn: aParser
(search match: aParser inContext: owner context)
ifFalse: [ ^ nil ].
(self canMatch: aParser)
ifFalse: [ ^ nil ].
^ self foundMatchFor: aParser
! !
!PPRule class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPRule.st,v 1.2 2014-03-04 20:27:51 cg Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPRule.st,v 1.2 2014-03-04 20:27:51 cg Exp $'
!
version_HG
^ '$Changeset: <not expanded> $'
! !