--- a/PPLiteralParser.st Tue Mar 04 15:33:00 2014 +0100
+++ b/PPLiteralParser.st Tue Mar 04 15:33:03 2014 +0100
@@ -11,13 +11,25 @@
!PPLiteralParser class methodsFor:'instance creation'!
on: anObject
- ^ self on: anObject message: anObject printString , ' expected'
+ |msg|
+
+ "portable - does not depend on character to print with a $"
+ msg := anObject isCharacter
+ ifTrue:[ '$',anObject asString]
+ ifFalse:[ anObject printString ].
+ ^ self on: anObject message: msg , ' expected'
!
on: anObject message: aString
^ self new initializeOn: anObject message: aString
! !
+!PPLiteralParser methodsFor:'*petitanalyzer-matching'!
+
+match: aParser inContext: aDictionary seen: anIdentitySet
+ ^ (super match: aParser inContext: aDictionary seen: anIdentitySet) and: [ self literal = aParser literal and: [ self message = aParser message ] ]
+! !
+
!PPLiteralParser methodsFor:'accessing'!
literal
@@ -50,20 +62,26 @@
!PPLiteralParser methodsFor:'printing'!
printNameOn: aStream
- super printNameOn: aStream.
- aStream nextPutAll: ', '; print: literal
+ super printNameOn: aStream.
+ literal isCharacter ifTrue:[
+ "/ portable - does not depend on character-print to print with $
+ aStream nextPutAll: ', $'; print: literal asString
+ ] ifFalse:[
+ aStream nextPutAll: ', '; print: literal
+ ].
! !
!PPLiteralParser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLiteralParser.st,v 1.3 2012-05-04 22:04:55 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLiteralParser.st,v 1.4 2014-03-04 14:33:03 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLiteralParser.st,v 1.3 2012-05-04 22:04:55 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLiteralParser.st,v 1.4 2014-03-04 14:33:03 cg Exp $'
!
version_SVN
- ^ '§Id: PPLiteralParser.st 2 2010-12-17 18:44:23Z vranyj1 §'
+ ^ '$Id: PPLiteralParser.st,v 1.4 2014-03-04 14:33:03 cg Exp $'
! !
+