--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/tests/PPCTokenizingVisitorTest.st Sun May 10 06:28:36 2015 +0100
@@ -0,0 +1,79 @@
+"{ Package: 'stx:goodies/petitparser/compiler/tests' }"
+
+"{ NameSpace: Smalltalk }"
+
+TestCase subclass:#PPCTokenizingVisitorTest
+ instanceVariableNames:'node result visitor'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitCompiler-Tests-Visitors'
+!
+
+!PPCTokenizingVisitorTest methodsFor:'as yet unclassified'!
+
+assert: object type: class
+ self assert: object class == class
+!
+
+setUp
+ visitor := PPCTokenizingVisitor new.
+!
+
+testTokenNode1
+ | nilNode |
+ nilNode := PPCNilNode new.
+ node := PPCTokenNode new
+ child: nilNode.
+ result := visitor visit: node.
+
+ self assert: result type: PPCTokenizingParserNode.
+ self assert: result parser type: PPCTokenConsumeNode.
+ self assert: result parser child = node.
+
+ self assert: result tokenizer children size = 2.
+ self assert: (result tokenizer children anySatisfy: [ :e | e = node ]).
+!
+
+testTokenizingParserNode
+ node := PPCNilNode new.
+ result := visitor visit: node.
+
+ self assert: result type: PPCTokenizingParserNode.
+ self assert: result parser = node.
+ self assert: result tokenizer children size = 1.
+!
+
+testTokenizingParserNode2
+ | nilNode |
+ nilNode := PPCNilNode new.
+ node := PPCTokenNode new
+ child: nilNode.
+ result := visitor visit: node.
+
+ self assert: result type: PPCTokenizingParserNode.
+ self assert: result parser type: PPCTokenConsumeNode.
+ self assert: result parser child = node.
+
+ self assert: result tokenizer children size = 2.
+ self assert: (result tokenizer children anySatisfy: [ :e | e = node ]).
+!
+
+testTrimmingTokenNode1
+ | nilNode tokenNode |
+ nilNode := PPCNilNode new.
+ tokenNode := PPCTokenNode new
+ child: nilNode.
+ node := PPCTrimmingTokenNode new
+ child: tokenNode;
+ whitespace: nilNode;
+ yourself.
+ result := visitor visit: node.
+
+ self assert: result type: PPCTokenizingParserNode.
+ self assert: result parser type: PPCTokenConsumeNode.
+ self assert: result parser child = node.
+
+ self assert: result tokenizer children size = 2.
+ self assert: (result tokenizer children anySatisfy: [ :e | e = node ]).
+! !
+