36 ! |
34 ! |
37 |
35 |
38 testPrinting |
36 testPrinting |
39 | result | |
37 | result | |
40 result := PPToken on: 'var'. |
38 result := PPToken on: 'var'. |
41 self assert: (result printString findString: 'PPToken[1,3]') > 0 |
39 self assert: (result printString includesSubstring: 'PPToken[1,3]') |
42 ! |
40 ! |
43 |
41 |
44 testSize |
42 testSize |
45 | result | |
43 | result | |
46 result := self |
44 result := self parse: 'foo' using: self identifier. |
47 parse: 'foo' |
45 self assert: result size equals: 3 |
48 using: self identifier. |
|
49 self assert: result size = 3 |
|
50 ! |
46 ! |
51 |
47 |
52 testStart |
48 testStart |
53 | result | |
49 | result | |
54 result := self |
50 result := self parse: 'foo' using: self identifier. |
55 parse: 'foo' |
51 self assert: result start equals: 1 |
56 using: self identifier. |
|
57 self assert: result start = 1 |
|
58 ! |
52 ! |
59 |
53 |
60 testStop |
54 testStop |
61 | result | |
55 | result | |
62 result := self |
56 result := self parse: 'foo' using: self identifier. |
63 parse: 'foo' |
57 self assert: result stop equals: 3 |
64 using: self identifier. |
|
65 self assert: result stop = 3 |
|
66 ! |
58 ! |
67 |
59 |
68 testValue |
60 testValue |
69 | result | |
61 | result | |
70 result := PPToken on: 'var'. |
62 result := PPToken on: 'var'. |
73 |
65 |
74 !PPTokenTest methodsFor:'testing-comparing'! |
66 !PPTokenTest methodsFor:'testing-comparing'! |
75 |
67 |
76 testEquality |
68 testEquality |
77 | token1 token2 | |
69 | token1 token2 | |
78 token1 := self parse: 'foo' using: self identifier. |
70 token1 := self parse: 'foo' using: self identifier. |
79 token2 := self parse: 'foo' using: self identifier. |
71 token2 := self parse: 'foo' using: self identifier. |
80 self deny: token1 == token2. |
72 self deny: token1 == token2. |
81 self assert: token1 = token2. |
73 self assert: token1 equals: token2. |
82 self assert: token1 hash = token2 hash. |
74 self assert: token1 hash equals: token2 hash |
83 ! ! |
75 ! ! |
84 |
76 |
85 !PPTokenTest methodsFor:'testing-copying'! |
77 !PPTokenTest methodsFor:'testing-copying'! |
86 |
78 |
87 testCopyFromTo |
79 testCopyFromTo |
88 | result other | |
80 | result other | |
89 result := PPToken on: 'abc'. |
81 result := PPToken on: 'abc'. |
90 other := result copyFrom: 2 to: 2. |
82 other := result copyFrom: 2 to: 2. |
91 |
83 self assert: other size equals: 1. |
92 self assert: other size = 1. |
84 self assert: other start equals: 2. |
93 self assert: other start = 2. |
85 self assert: other stop equals: 2. |
94 self assert: other stop = 2. |
86 self assert: other collection equals: result collection |
95 self assert: other collection = result collection |
|
96 ! ! |
87 ! ! |
97 |
88 |
98 !PPTokenTest methodsFor:'testing-querying'! |
89 !PPTokenTest methodsFor:'testing-querying'! |
99 |
90 |
100 testColumn |
91 testColumn |
101 | input parser result cr | |
92 | input parser result | |
102 |
93 input := '1' , (String with: Character cr) , '12' , (String with: Character cr with: Character lf) , '123' |
103 cr := Smalltalk isSmalltalkX |
94 , (String with: Character lf) , '1234'. |
104 ifTrue:[ Character return] |
95 parser := #any asParser token star. |
105 ifFalse:[ Character cr ]. |
96 result := parser parse: input. |
106 input := '1' , (String with:cr) , '12' , (String with: cr with: Character lf) , '123' , (String with: Character lf) , '1234'. |
97 result with: #(1 2 1 2 3 4 1 2 3 4 1 2 3 4) do: [ :token :line | self assert: token column equals: line ] |
107 parser := #any asParser token star. |
|
108 result := parser parse: input. |
|
109 result |
|
110 with: #(1 2 1 2 3 4 1 2 3 4 1 2 3 4) |
|
111 do: [ :token :line | self assert: token column = line ] |
|
112 ! |
98 ! |
113 |
99 |
114 testLine |
100 testLine |
115 | input parser result cr| |
101 | input parser result | |
116 |
102 input := '1' , (String with: Character cr) , '12' , (String with: Character cr with: Character lf) , '123' |
117 cr := Smalltalk isSmalltalkX |
103 , (String with: Character lf) , '1234'. |
118 ifTrue:[Character return] |
104 parser := #any asParser token star. |
119 ifFalse:[Character cr]. |
105 result := parser parse: input. |
120 input := '1' , (String with: cr) , '12' , (String with: cr with: Character lf) , '123' , (String with: Character lf) , '1234'. |
106 result with: #(1 1 2 2 2 2 3 3 3 3 4 4 4 4) do: [ :token :line | self assert: token line equals: line ] |
121 parser := #any asParser token star. |
|
122 result := parser parse: input. |
|
123 result |
|
124 with: #(1 1 2 2 2 2 3 3 3 3 4 4 4 4) |
|
125 do: [ :token :line | self assert: token line = line ] |
|
126 ! ! |
107 ! ! |
127 |
108 |
128 !PPTokenTest methodsFor:'testing-values'! |
109 !PPTokenTest methodsFor:'testing-values'! |
129 |
110 |
130 testInputValue |
111 testInputValue |
131 | input result | |
112 | input result | |
132 input := 'foo'. |
113 input := 'foo'. |
133 result := self |
114 result := self parse: input using: self identifier. |
134 parse: input |
115 self assert: result inputValue equals: input. |
135 using: self identifier. |
|
136 self assert: result inputValue = input. |
|
137 self deny: result inputValue == input |
116 self deny: result inputValue == input |
138 ! |
117 ! |
139 |
118 |
140 testParsedValue |
119 testParsedValue |
141 | input result | |
120 | input result | |
142 input := 'foo'. |
121 input := 'foo'. |
143 result := self |
122 result := self parse: input using: self identifier. |
144 parse: input |
123 self assert: result parsedValue equals: #($f $o $o) |
145 using: self identifier. |
|
146 self assert: result parsedValue = #($f $o $o) |
|
147 ! ! |
124 ! ! |
148 |
125 |
149 !PPTokenTest methodsFor:'utilities'! |
126 !PPTokenTest methodsFor:'utilities'! |
150 |
127 |
151 parse: aString using: aParser |
128 parse: aString using: aParser |