--- a/tests/PPPredicateTest.st Sat Nov 01 00:34:30 2014 +0000
+++ b/tests/PPPredicateTest.st Mon Nov 03 09:10:56 2014 +0000
@@ -59,12 +59,10 @@
!
testCr
- | parser |
- parser := #cr asParser.
- self assertCharacterSets: parser.
- self assert: parser parse: (String with: (Character codePoint: 13)) to: (Character codePoint: 13)
-
- "Modified: / 04-10-2014 / 12:03:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ | parser |
+ parser := #cr asParser.
+ self assertCharacterSets: parser.
+ self assert: parser parse: (String with: (Character codePoint: 13)) to: (Character codePoint: 13)
!
testDigit
@@ -77,6 +75,31 @@
self assert: parser fail: 'a'
!
+testEndOfLine
+ | parser |
+ parser := (#letter asParser / #blank asParser) star, #endOfLine asParser.
+
+ self assert: parser parse: 'lorem ipsum'.
+
+ parser := #any asParser, #endOfLine asParser, #any asParser star.
+ self assert: parser parse: 'a', String cr, 'b'.
+ self assert: parser fail: String crlf.
+ self assert: parser fail: 'lorem ipsum'.
+
+ parser := #endOfLine asParser, #any asParser, #endOfLine asParser negate star, #endOfLine asParser.
+ self assert: parser parse: String cr, 'lorem ipsum'.
+ self assert: parser parse: String lf, 'lorem ipsum'.
+ self assert: parser parse: String crlf, 'lorem ipsum'.
+
+ self assert: parser parse: String crlf.
+ self assert: parser parse: String cr.
+ self assert: parser parse: String lf.
+
+ parser := #endOfLine asParser negate star, #endOfLine asParser, #any asParser star.
+ self assert: parser parse: String crlf, 'lorem ipsum'.
+ self assert: parser parse: String crlf.
+!
+
testHex
| parser |
parser := #hex asParser.
@@ -299,19 +322,12 @@
!
parsedCharacterSet: aParser
- | result |
-
- ((Smalltalk respondsTo: #isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[
- result := String new writeStream
- ] ifFalse:[
- result := WriteStream on: String new.
- ].
- self charactersDo: [ :char |
- (aParser matches: (char asString))
- ifTrue: [ result nextPut: char ] ].
- ^ result contents
-
- "Modified: / 03-10-2014 / 03:01:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ | result |
+ result := String new writeStream.
+ self charactersDo: [ :char |
+ (aParser matches: (String with: char))
+ ifTrue: [ result nextPut: char ] ].
+ ^ result contents
! !
!PPPredicateTest class methodsFor:'documentation'!