tests/PPPredicateTest.st
changeset 405 0470a5e6e712
parent 403 7063d523b064
child 410 779556be95f8
--- 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'!