|
1 "{ Package: 'stx:goodies/petitparser/compiler/tests' }" |
|
2 |
|
3 "{ NameSpace: Smalltalk }" |
|
4 |
|
5 TestCase subclass:#PPCTokenizingVisitorTest |
|
6 instanceVariableNames:'node result visitor' |
|
7 classVariableNames:'' |
|
8 poolDictionaries:'' |
|
9 category:'PetitCompiler-Tests-Visitors' |
|
10 ! |
|
11 |
|
12 !PPCTokenizingVisitorTest methodsFor:'as yet unclassified'! |
|
13 |
|
14 assert: object type: class |
|
15 self assert: object class == class |
|
16 ! |
|
17 |
|
18 setUp |
|
19 visitor := PPCTokenizingVisitor new. |
|
20 ! |
|
21 |
|
22 testTokenNode1 |
|
23 | nilNode | |
|
24 nilNode := PPCNilNode new. |
|
25 node := PPCTokenNode new |
|
26 child: nilNode. |
|
27 result := visitor visit: node. |
|
28 |
|
29 self assert: result type: PPCTokenizingParserNode. |
|
30 self assert: result parser type: PPCTokenConsumeNode. |
|
31 self assert: result parser child = node. |
|
32 |
|
33 self assert: result tokenizer children size = 2. |
|
34 self assert: (result tokenizer children anySatisfy: [ :e | e = node ]). |
|
35 ! |
|
36 |
|
37 testTokenizingParserNode |
|
38 node := PPCNilNode new. |
|
39 result := visitor visit: node. |
|
40 |
|
41 self assert: result type: PPCTokenizingParserNode. |
|
42 self assert: result parser = node. |
|
43 self assert: result tokenizer children size = 1. |
|
44 ! |
|
45 |
|
46 testTokenizingParserNode2 |
|
47 | nilNode | |
|
48 nilNode := PPCNilNode new. |
|
49 node := PPCTokenNode new |
|
50 child: nilNode. |
|
51 result := visitor visit: node. |
|
52 |
|
53 self assert: result type: PPCTokenizingParserNode. |
|
54 self assert: result parser type: PPCTokenConsumeNode. |
|
55 self assert: result parser child = node. |
|
56 |
|
57 self assert: result tokenizer children size = 2. |
|
58 self assert: (result tokenizer children anySatisfy: [ :e | e = node ]). |
|
59 ! |
|
60 |
|
61 testTrimmingTokenNode1 |
|
62 | nilNode tokenNode | |
|
63 nilNode := PPCNilNode new. |
|
64 tokenNode := PPCTokenNode new |
|
65 child: nilNode. |
|
66 node := PPCTrimmingTokenNode new |
|
67 child: tokenNode; |
|
68 whitespace: nilNode; |
|
69 yourself. |
|
70 result := visitor visit: node. |
|
71 |
|
72 self assert: result type: PPCTokenizingParserNode. |
|
73 self assert: result parser type: PPCTokenConsumeNode. |
|
74 self assert: result parser child = node. |
|
75 |
|
76 self assert: result tokenizer children size = 2. |
|
77 self assert: (result tokenizer children anySatisfy: [ :e | e = node ]). |
|
78 ! ! |
|
79 |