73 self assert: parser parse: '9' to: $9. |
75 self assert: parser parse: '9' to: $9. |
74 self assert: parser fail: ''. |
76 self assert: parser fail: ''. |
75 self assert: parser fail: 'a' |
77 self assert: parser fail: 'a' |
76 ! |
78 ! |
77 |
79 |
|
80 testEndOfFile |
|
81 | parser | |
|
82 parser := (#letter asParser / #blank asParser) star, #eof asParser. |
|
83 |
|
84 self assert: parser parse: 'lorem ipsum'. |
|
85 |
|
86 parser := #any asParser, #eof asParser, #any asParser star. |
|
87 self assert: parser fail: 'a', Character cr asString, 'b'. |
|
88 self assert: parser fail: Character cr asString , Character lf asString. |
|
89 self assert: parser parse: 'a'. |
|
90 ! |
|
91 |
78 testEndOfLine |
92 testEndOfLine |
79 | parser | |
93 | cr crlf lf parser | |
80 parser := (#letter asParser / #blank asParser) star, #endOfLine asParser. |
94 cr := (Character codePoint: 13) asString. |
81 |
95 crlf := (Character codePoint: 13) , Character lf asString. |
82 self assert: parser parse: 'lorem ipsum'. |
96 lf := Character lf asString. |
83 |
97 parser := (#letter asParser / #blank asParser) star, #endOfLine asParser. |
84 parser := #any asParser, #endOfLine asParser, #any asParser star. |
98 |
85 self assert: parser parse: 'a', String cr, 'b'. |
99 self assert: parser parse: 'lorem ipsum'. |
86 self assert: parser fail: String crlf. |
100 |
87 self assert: parser fail: 'lorem ipsum'. |
101 parser := #any asParser, #endOfLine asParser, #any asParser star. |
88 |
102 self assert: parser parse: 'a', cr, 'b'. |
89 parser := #endOfLine asParser, #any asParser, #endOfLine asParser negate star, #endOfLine asParser. |
103 self assert: parser fail: crlf. |
90 self assert: parser parse: String cr, 'lorem ipsum'. |
104 self assert: parser fail: 'lorem ipsum'. |
91 self assert: parser parse: String lf, 'lorem ipsum'. |
105 |
92 self assert: parser parse: String crlf, 'lorem ipsum'. |
106 parser := #endOfLine asParser, #any asParser, #endOfLine asParser negate star, #endOfLine asParser. |
93 |
107 self assert: parser parse: cr, 'lorem ipsum'. |
94 self assert: parser parse: String crlf. |
108 self assert: parser parse: lf, 'lorem ipsum'. |
95 self assert: parser parse: String cr. |
109 self assert: parser parse: crlf, 'lorem ipsum'. |
96 self assert: parser parse: String lf. |
110 |
97 |
111 self assert: parser parse: crlf. |
98 parser := #endOfLine asParser negate star, #endOfLine asParser, #any asParser star. |
112 self assert: parser parse: cr. |
99 self assert: parser parse: String crlf, 'lorem ipsum'. |
113 self assert: parser parse: lf. |
100 self assert: parser parse: String crlf. |
114 |
|
115 parser := #endOfLine asParser negate star, #endOfLine asParser, #any asParser star. |
|
116 self assert: parser parse: crlf, 'lorem ipsum'. |
|
117 self assert: parser parse: crlf. |
|
118 |
|
119 "Modified: / 13-04-2015 / 21:55:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
101 ! |
120 ! |
102 |
121 |
103 testHex |
122 testHex |
104 | parser | |
123 | parser | |
105 parser := #hex asParser. |
124 parser := #hex asParser. |
174 self assert: parser fail: ''. |
193 self assert: parser fail: ''. |
175 self assert: parser fail: 'a' |
194 self assert: parser fail: 'a' |
176 ! |
195 ! |
177 |
196 |
178 testStartOfLine |
197 testStartOfLine |
179 | parser | |
198 | cr crlf lf parser | |
180 parser := #startOfLine asParser, #any asParser star. |
199 cr := (Character codePoint: 13) asString. |
181 |
200 crlf := (Character codePoint: 13) , Character lf asString. |
182 self assert: parser parse: 'lorem ipsum'. |
201 lf := Character lf asString. |
183 |
202 parser := #startOfLine asParser, #any asParser star. |
184 parser := #any asParser, #startOfLine asParser, #any asParser star. |
203 |
185 self assert: parser fail: 'lorem ipsum'. |
204 self assert: parser parse: 'lorem ipsum'. |
186 |
205 |
187 parser := #startOfLine asParser, #any asParser, #startOfLine asParser, #any asParser star. |
206 parser := #any asParser, #startOfLine asParser, #any asParser star. |
188 self assert: parser parse: String cr, 'lorem ipsum'. |
207 self assert: parser fail: 'lorem ipsum'. |
189 self assert: parser parse: String lf, 'lorem ipsum'. |
208 |
190 self assert: parser fail: String crlf, 'lorem ipsum'. |
209 parser := #startOfLine asParser, #any asParser, #startOfLine asParser, #any asParser star. |
191 |
210 self assert: parser parse: cr, 'lorem ipsum'. |
192 self assert: parser fail: String crlf. |
211 self assert: parser parse: lf, 'lorem ipsum'. |
193 self assert: parser parse: String cr. |
212 self assert: parser fail: crlf, 'lorem ipsum'. |
194 self assert: parser parse: String lf. |
213 |
195 |
214 self assert: parser fail: crlf. |
196 parser := #startOfLine asParser, #any asParser, #any asParser, #startOfLine asParser, #any asParser star. |
215 self assert: parser parse: cr. |
197 self assert: parser parse: String crlf, 'lorem ipsum'. |
216 self assert: parser parse: lf. |
198 self assert: parser parse: String crlf. |
217 |
|
218 parser := #startOfLine asParser, #any asParser, #any asParser, #startOfLine asParser, #any asParser star. |
|
219 self assert: parser parse: crlf, 'lorem ipsum'. |
|
220 self assert: parser parse: crlf. |
|
221 |
|
222 "Modified: / 13-04-2015 / 21:56:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
223 ! |
|
224 |
|
225 testStartOfLogicalLine |
|
226 | parser | |
|
227 parser := #startOfLogicalLine asParser, #any asParser star. |
|
228 |
|
229 self assert: parser parse: 'lorem'. |
|
230 self assert: parser fail: ' lorem'. |
|
231 |
|
232 parser := #any asParser, #startOfLogicalLine asParser, #any asParser star. |
|
233 self assert: parser fail: 'lorem'. |
|
234 self assert: parser fail: ' lorem'. |
|
235 self assert: parser parse: ' lorem'. |
|
236 self assert: parser parse: ' lorem'. |
|
237 ! |
|
238 |
|
239 testStartOfWord |
|
240 | parser | |
|
241 parser := #startOfWord asParser, #word asParser plus. |
|
242 |
|
243 self assert: parser parse: 'lorem'. |
|
244 |
|
245 parser := #any asParser, #startOfWord asParser, #word asParser plus. |
|
246 self assert: parser fail: 'lorem'. |
|
247 self assert: parser fail: '1234'. |
|
248 |
|
249 self assert: parser parse: ' lorem'. |
|
250 self assert: parser parse: ' 123'. |
|
251 self assert: parser parse: ')lorem'. |
|
252 self assert: parser parse: ':lorem'. |
|
253 |
|
254 parser := #startOfWord asParser, #any asParser optional. |
|
255 self assert: parser fail: ''. |
|
256 self assert: parser parse: 'a'. |
|
257 self assert: parser fail: '.'. |
199 ! |
258 ! |
200 |
259 |
201 testTab |
260 testTab |
202 | parser | |
261 | parser | |
203 parser := #tab asParser. |
262 parser := #tab asParser. |