Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: pkg/analyzer-experimental/test/generated/scanner_test.dart

Issue 12838003: Rename analyzer-experimental to analyzer_experimental. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // This code was auto-generated, is not intended to be edited, and is subject to
2 // significant change. Please see the README file for more information.
3
4 library engine.scanner_test;
5
6 import 'dart:collection';
7 import 'package:analyzer-experimental/src/generated/java_core.dart';
8 import 'package:analyzer-experimental/src/generated/java_engine.dart';
9 import 'package:analyzer-experimental/src/generated/java_junit.dart';
10 import 'package:analyzer-experimental/src/generated/source.dart';
11 import 'package:analyzer-experimental/src/generated/error.dart';
12 import 'package:analyzer-experimental/src/generated/scanner.dart';
13 import 'package:unittest/unittest.dart' as _ut;
14 import 'test_support.dart';
15
16 class KeywordStateTest extends JUnitTestCase {
17 void test_KeywordState() {
18 List<Keyword> keywords = Keyword.values;
19 int keywordCount = keywords.length;
20 List<String> textToTest = new List<String>(keywordCount * 3);
21 for (int i = 0; i < keywordCount; i++) {
22 String syntax3 = keywords[i].syntax;
23 textToTest[i] = syntax3;
24 textToTest[i + keywordCount] = "${syntax3}x";
25 textToTest[i + keywordCount * 2] = syntax3.substring(0, syntax3.length - 1 );
26 }
27 KeywordState firstState = KeywordState.KEYWORD_STATE;
28 for (int i = 0; i < textToTest.length; i++) {
29 String text = textToTest[i];
30 int index = 0;
31 int length10 = text.length;
32 KeywordState state = firstState;
33 while (index < length10 && state != null) {
34 state = state.next(text.codeUnitAt(index));
35 index++;
36 }
37 if (i < keywordCount) {
38 JUnitTestCase.assertNotNull(state);
39 JUnitTestCase.assertNotNull(state.keyword());
40 JUnitTestCase.assertEquals(keywords[i], state.keyword());
41 } else if (i < keywordCount * 2) {
42 JUnitTestCase.assertNull(state);
43 } else {
44 JUnitTestCase.assertNotNull(state);
45 }
46 }
47 }
48 static dartSuite() {
49 _ut.group('KeywordStateTest', () {
50 _ut.test('test_KeywordState', () {
51 final __test = new KeywordStateTest();
52 runJUnitTest(__test, __test.test_KeywordState);
53 });
54 });
55 }
56 }
57 class TokenTypeTest extends EngineTestCase {
58 void test_isOperator() {
59 JUnitTestCase.assertTrue(TokenType.AMPERSAND.isOperator());
60 JUnitTestCase.assertTrue(TokenType.AMPERSAND_AMPERSAND.isOperator());
61 JUnitTestCase.assertTrue(TokenType.AMPERSAND_EQ.isOperator());
62 JUnitTestCase.assertTrue(TokenType.BANG.isOperator());
63 JUnitTestCase.assertTrue(TokenType.BANG_EQ.isOperator());
64 JUnitTestCase.assertTrue(TokenType.BAR.isOperator());
65 JUnitTestCase.assertTrue(TokenType.BAR_BAR.isOperator());
66 JUnitTestCase.assertTrue(TokenType.BAR_EQ.isOperator());
67 JUnitTestCase.assertTrue(TokenType.CARET.isOperator());
68 JUnitTestCase.assertTrue(TokenType.CARET_EQ.isOperator());
69 JUnitTestCase.assertTrue(TokenType.EQ.isOperator());
70 JUnitTestCase.assertTrue(TokenType.EQ_EQ.isOperator());
71 JUnitTestCase.assertTrue(TokenType.GT.isOperator());
72 JUnitTestCase.assertTrue(TokenType.GT_EQ.isOperator());
73 JUnitTestCase.assertTrue(TokenType.GT_GT.isOperator());
74 JUnitTestCase.assertTrue(TokenType.GT_GT_EQ.isOperator());
75 JUnitTestCase.assertTrue(TokenType.INDEX.isOperator());
76 JUnitTestCase.assertTrue(TokenType.INDEX_EQ.isOperator());
77 JUnitTestCase.assertTrue(TokenType.IS.isOperator());
78 JUnitTestCase.assertTrue(TokenType.LT.isOperator());
79 JUnitTestCase.assertTrue(TokenType.LT_EQ.isOperator());
80 JUnitTestCase.assertTrue(TokenType.LT_LT.isOperator());
81 JUnitTestCase.assertTrue(TokenType.LT_LT_EQ.isOperator());
82 JUnitTestCase.assertTrue(TokenType.MINUS.isOperator());
83 JUnitTestCase.assertTrue(TokenType.MINUS_EQ.isOperator());
84 JUnitTestCase.assertTrue(TokenType.MINUS_MINUS.isOperator());
85 JUnitTestCase.assertTrue(TokenType.PERCENT.isOperator());
86 JUnitTestCase.assertTrue(TokenType.PERCENT_EQ.isOperator());
87 JUnitTestCase.assertTrue(TokenType.PERIOD_PERIOD.isOperator());
88 JUnitTestCase.assertTrue(TokenType.PLUS.isOperator());
89 JUnitTestCase.assertTrue(TokenType.PLUS_EQ.isOperator());
90 JUnitTestCase.assertTrue(TokenType.PLUS_PLUS.isOperator());
91 JUnitTestCase.assertTrue(TokenType.QUESTION.isOperator());
92 JUnitTestCase.assertTrue(TokenType.SLASH.isOperator());
93 JUnitTestCase.assertTrue(TokenType.SLASH_EQ.isOperator());
94 JUnitTestCase.assertTrue(TokenType.STAR.isOperator());
95 JUnitTestCase.assertTrue(TokenType.STAR_EQ.isOperator());
96 JUnitTestCase.assertTrue(TokenType.TILDE.isOperator());
97 JUnitTestCase.assertTrue(TokenType.TILDE_SLASH.isOperator());
98 JUnitTestCase.assertTrue(TokenType.TILDE_SLASH_EQ.isOperator());
99 }
100 void test_isUserDefinableOperator() {
101 JUnitTestCase.assertTrue(TokenType.AMPERSAND.isUserDefinableOperator());
102 JUnitTestCase.assertTrue(TokenType.BAR.isUserDefinableOperator());
103 JUnitTestCase.assertTrue(TokenType.CARET.isUserDefinableOperator());
104 JUnitTestCase.assertTrue(TokenType.EQ_EQ.isUserDefinableOperator());
105 JUnitTestCase.assertTrue(TokenType.GT.isUserDefinableOperator());
106 JUnitTestCase.assertTrue(TokenType.GT_EQ.isUserDefinableOperator());
107 JUnitTestCase.assertTrue(TokenType.GT_GT.isUserDefinableOperator());
108 JUnitTestCase.assertTrue(TokenType.INDEX.isUserDefinableOperator());
109 JUnitTestCase.assertTrue(TokenType.INDEX_EQ.isUserDefinableOperator());
110 JUnitTestCase.assertTrue(TokenType.LT.isUserDefinableOperator());
111 JUnitTestCase.assertTrue(TokenType.LT_EQ.isUserDefinableOperator());
112 JUnitTestCase.assertTrue(TokenType.LT_LT.isUserDefinableOperator());
113 JUnitTestCase.assertTrue(TokenType.MINUS.isUserDefinableOperator());
114 JUnitTestCase.assertTrue(TokenType.PERCENT.isUserDefinableOperator());
115 JUnitTestCase.assertTrue(TokenType.PLUS.isUserDefinableOperator());
116 JUnitTestCase.assertTrue(TokenType.SLASH.isUserDefinableOperator());
117 JUnitTestCase.assertTrue(TokenType.STAR.isUserDefinableOperator());
118 JUnitTestCase.assertTrue(TokenType.TILDE.isUserDefinableOperator());
119 JUnitTestCase.assertTrue(TokenType.TILDE_SLASH.isUserDefinableOperator());
120 }
121 static dartSuite() {
122 _ut.group('TokenTypeTest', () {
123 _ut.test('test_isOperator', () {
124 final __test = new TokenTypeTest();
125 runJUnitTest(__test, __test.test_isOperator);
126 });
127 _ut.test('test_isUserDefinableOperator', () {
128 final __test = new TokenTypeTest();
129 runJUnitTest(__test, __test.test_isUserDefinableOperator);
130 });
131 });
132 }
133 }
134 /**
135 * The class {@code TokenFactory} defines utility methods that can be used to cr eate tokens.
136 */
137 class TokenFactory {
138 static Token token(Keyword keyword) => new KeywordToken(keyword, 0);
139 static Token token2(String lexeme) => new StringToken(TokenType.STRING, lexeme , 0);
140 static Token token3(TokenType type) => new Token(type, 0);
141 static Token token4(TokenType type, String lexeme) => new StringToken(type, le xeme, 0);
142 /**
143 * Prevent the creation of instances of this class.
144 */
145 TokenFactory() {
146 }
147 }
148 class CharBufferScannerTest extends AbstractScannerTest {
149 Token scan(String source, GatheringErrorListener listener) {
150 CharBuffer buffer = CharBuffer.wrap(source);
151 CharBufferScanner scanner = new CharBufferScanner(null, buffer, listener);
152 Token result = scanner.tokenize();
153 listener.setLineInfo(new TestSource(), scanner.lineStarts);
154 return result;
155 }
156 static dartSuite() {
157 _ut.group('CharBufferScannerTest', () {
158 _ut.test('test_ampersand', () {
159 final __test = new CharBufferScannerTest();
160 runJUnitTest(__test, __test.test_ampersand);
161 });
162 _ut.test('test_ampersand_ampersand', () {
163 final __test = new CharBufferScannerTest();
164 runJUnitTest(__test, __test.test_ampersand_ampersand);
165 });
166 _ut.test('test_ampersand_eq', () {
167 final __test = new CharBufferScannerTest();
168 runJUnitTest(__test, __test.test_ampersand_eq);
169 });
170 _ut.test('test_at', () {
171 final __test = new CharBufferScannerTest();
172 runJUnitTest(__test, __test.test_at);
173 });
174 _ut.test('test_backping', () {
175 final __test = new CharBufferScannerTest();
176 runJUnitTest(__test, __test.test_backping);
177 });
178 _ut.test('test_backslash', () {
179 final __test = new CharBufferScannerTest();
180 runJUnitTest(__test, __test.test_backslash);
181 });
182 _ut.test('test_bang', () {
183 final __test = new CharBufferScannerTest();
184 runJUnitTest(__test, __test.test_bang);
185 });
186 _ut.test('test_bang_eq', () {
187 final __test = new CharBufferScannerTest();
188 runJUnitTest(__test, __test.test_bang_eq);
189 });
190 _ut.test('test_bar', () {
191 final __test = new CharBufferScannerTest();
192 runJUnitTest(__test, __test.test_bar);
193 });
194 _ut.test('test_bar_bar', () {
195 final __test = new CharBufferScannerTest();
196 runJUnitTest(__test, __test.test_bar_bar);
197 });
198 _ut.test('test_bar_eq', () {
199 final __test = new CharBufferScannerTest();
200 runJUnitTest(__test, __test.test_bar_eq);
201 });
202 _ut.test('test_caret', () {
203 final __test = new CharBufferScannerTest();
204 runJUnitTest(__test, __test.test_caret);
205 });
206 _ut.test('test_caret_eq', () {
207 final __test = new CharBufferScannerTest();
208 runJUnitTest(__test, __test.test_caret_eq);
209 });
210 _ut.test('test_close_curly_bracket', () {
211 final __test = new CharBufferScannerTest();
212 runJUnitTest(__test, __test.test_close_curly_bracket);
213 });
214 _ut.test('test_close_paren', () {
215 final __test = new CharBufferScannerTest();
216 runJUnitTest(__test, __test.test_close_paren);
217 });
218 _ut.test('test_close_quare_bracket', () {
219 final __test = new CharBufferScannerTest();
220 runJUnitTest(__test, __test.test_close_quare_bracket);
221 });
222 _ut.test('test_colon', () {
223 final __test = new CharBufferScannerTest();
224 runJUnitTest(__test, __test.test_colon);
225 });
226 _ut.test('test_comma', () {
227 final __test = new CharBufferScannerTest();
228 runJUnitTest(__test, __test.test_comma);
229 });
230 _ut.test('test_comment_multi', () {
231 final __test = new CharBufferScannerTest();
232 runJUnitTest(__test, __test.test_comment_multi);
233 });
234 _ut.test('test_comment_multi_unterminated', () {
235 final __test = new CharBufferScannerTest();
236 runJUnitTest(__test, __test.test_comment_multi_unterminated);
237 });
238 _ut.test('test_comment_nested', () {
239 final __test = new CharBufferScannerTest();
240 runJUnitTest(__test, __test.test_comment_nested);
241 });
242 _ut.test('test_comment_single', () {
243 final __test = new CharBufferScannerTest();
244 runJUnitTest(__test, __test.test_comment_single);
245 });
246 _ut.test('test_double_both_E', () {
247 final __test = new CharBufferScannerTest();
248 runJUnitTest(__test, __test.test_double_both_E);
249 });
250 _ut.test('test_double_both_e', () {
251 final __test = new CharBufferScannerTest();
252 runJUnitTest(__test, __test.test_double_both_e);
253 });
254 _ut.test('test_double_fraction', () {
255 final __test = new CharBufferScannerTest();
256 runJUnitTest(__test, __test.test_double_fraction);
257 });
258 _ut.test('test_double_fraction_D', () {
259 final __test = new CharBufferScannerTest();
260 runJUnitTest(__test, __test.test_double_fraction_D);
261 });
262 _ut.test('test_double_fraction_E', () {
263 final __test = new CharBufferScannerTest();
264 runJUnitTest(__test, __test.test_double_fraction_E);
265 });
266 _ut.test('test_double_fraction_Ed', () {
267 final __test = new CharBufferScannerTest();
268 runJUnitTest(__test, __test.test_double_fraction_Ed);
269 });
270 _ut.test('test_double_fraction_d', () {
271 final __test = new CharBufferScannerTest();
272 runJUnitTest(__test, __test.test_double_fraction_d);
273 });
274 _ut.test('test_double_fraction_e', () {
275 final __test = new CharBufferScannerTest();
276 runJUnitTest(__test, __test.test_double_fraction_e);
277 });
278 _ut.test('test_double_fraction_ed', () {
279 final __test = new CharBufferScannerTest();
280 runJUnitTest(__test, __test.test_double_fraction_ed);
281 });
282 _ut.test('test_double_missingDigitInExponent', () {
283 final __test = new CharBufferScannerTest();
284 runJUnitTest(__test, __test.test_double_missingDigitInExponent);
285 });
286 _ut.test('test_double_whole_D', () {
287 final __test = new CharBufferScannerTest();
288 runJUnitTest(__test, __test.test_double_whole_D);
289 });
290 _ut.test('test_double_whole_E', () {
291 final __test = new CharBufferScannerTest();
292 runJUnitTest(__test, __test.test_double_whole_E);
293 });
294 _ut.test('test_double_whole_Ed', () {
295 final __test = new CharBufferScannerTest();
296 runJUnitTest(__test, __test.test_double_whole_Ed);
297 });
298 _ut.test('test_double_whole_d', () {
299 final __test = new CharBufferScannerTest();
300 runJUnitTest(__test, __test.test_double_whole_d);
301 });
302 _ut.test('test_double_whole_e', () {
303 final __test = new CharBufferScannerTest();
304 runJUnitTest(__test, __test.test_double_whole_e);
305 });
306 _ut.test('test_double_whole_ed', () {
307 final __test = new CharBufferScannerTest();
308 runJUnitTest(__test, __test.test_double_whole_ed);
309 });
310 _ut.test('test_eq', () {
311 final __test = new CharBufferScannerTest();
312 runJUnitTest(__test, __test.test_eq);
313 });
314 _ut.test('test_eq_eq', () {
315 final __test = new CharBufferScannerTest();
316 runJUnitTest(__test, __test.test_eq_eq);
317 });
318 _ut.test('test_gt', () {
319 final __test = new CharBufferScannerTest();
320 runJUnitTest(__test, __test.test_gt);
321 });
322 _ut.test('test_gt_eq', () {
323 final __test = new CharBufferScannerTest();
324 runJUnitTest(__test, __test.test_gt_eq);
325 });
326 _ut.test('test_gt_gt', () {
327 final __test = new CharBufferScannerTest();
328 runJUnitTest(__test, __test.test_gt_gt);
329 });
330 _ut.test('test_gt_gt_eq', () {
331 final __test = new CharBufferScannerTest();
332 runJUnitTest(__test, __test.test_gt_gt_eq);
333 });
334 _ut.test('test_hash', () {
335 final __test = new CharBufferScannerTest();
336 runJUnitTest(__test, __test.test_hash);
337 });
338 _ut.test('test_hexidecimal', () {
339 final __test = new CharBufferScannerTest();
340 runJUnitTest(__test, __test.test_hexidecimal);
341 });
342 _ut.test('test_hexidecimal_missingDigit', () {
343 final __test = new CharBufferScannerTest();
344 runJUnitTest(__test, __test.test_hexidecimal_missingDigit);
345 });
346 _ut.test('test_identifier', () {
347 final __test = new CharBufferScannerTest();
348 runJUnitTest(__test, __test.test_identifier);
349 });
350 _ut.test('test_illegalChar', () {
351 final __test = new CharBufferScannerTest();
352 runJUnitTest(__test, __test.test_illegalChar);
353 });
354 _ut.test('test_index', () {
355 final __test = new CharBufferScannerTest();
356 runJUnitTest(__test, __test.test_index);
357 });
358 _ut.test('test_index_eq', () {
359 final __test = new CharBufferScannerTest();
360 runJUnitTest(__test, __test.test_index_eq);
361 });
362 _ut.test('test_int', () {
363 final __test = new CharBufferScannerTest();
364 runJUnitTest(__test, __test.test_int);
365 });
366 _ut.test('test_int_initialZero', () {
367 final __test = new CharBufferScannerTest();
368 runJUnitTest(__test, __test.test_int_initialZero);
369 });
370 _ut.test('test_keyword_abstract', () {
371 final __test = new CharBufferScannerTest();
372 runJUnitTest(__test, __test.test_keyword_abstract);
373 });
374 _ut.test('test_keyword_as', () {
375 final __test = new CharBufferScannerTest();
376 runJUnitTest(__test, __test.test_keyword_as);
377 });
378 _ut.test('test_keyword_assert', () {
379 final __test = new CharBufferScannerTest();
380 runJUnitTest(__test, __test.test_keyword_assert);
381 });
382 _ut.test('test_keyword_break', () {
383 final __test = new CharBufferScannerTest();
384 runJUnitTest(__test, __test.test_keyword_break);
385 });
386 _ut.test('test_keyword_case', () {
387 final __test = new CharBufferScannerTest();
388 runJUnitTest(__test, __test.test_keyword_case);
389 });
390 _ut.test('test_keyword_catch', () {
391 final __test = new CharBufferScannerTest();
392 runJUnitTest(__test, __test.test_keyword_catch);
393 });
394 _ut.test('test_keyword_class', () {
395 final __test = new CharBufferScannerTest();
396 runJUnitTest(__test, __test.test_keyword_class);
397 });
398 _ut.test('test_keyword_const', () {
399 final __test = new CharBufferScannerTest();
400 runJUnitTest(__test, __test.test_keyword_const);
401 });
402 _ut.test('test_keyword_continue', () {
403 final __test = new CharBufferScannerTest();
404 runJUnitTest(__test, __test.test_keyword_continue);
405 });
406 _ut.test('test_keyword_default', () {
407 final __test = new CharBufferScannerTest();
408 runJUnitTest(__test, __test.test_keyword_default);
409 });
410 _ut.test('test_keyword_do', () {
411 final __test = new CharBufferScannerTest();
412 runJUnitTest(__test, __test.test_keyword_do);
413 });
414 _ut.test('test_keyword_dynamic', () {
415 final __test = new CharBufferScannerTest();
416 runJUnitTest(__test, __test.test_keyword_dynamic);
417 });
418 _ut.test('test_keyword_else', () {
419 final __test = new CharBufferScannerTest();
420 runJUnitTest(__test, __test.test_keyword_else);
421 });
422 _ut.test('test_keyword_export', () {
423 final __test = new CharBufferScannerTest();
424 runJUnitTest(__test, __test.test_keyword_export);
425 });
426 _ut.test('test_keyword_extends', () {
427 final __test = new CharBufferScannerTest();
428 runJUnitTest(__test, __test.test_keyword_extends);
429 });
430 _ut.test('test_keyword_factory', () {
431 final __test = new CharBufferScannerTest();
432 runJUnitTest(__test, __test.test_keyword_factory);
433 });
434 _ut.test('test_keyword_false', () {
435 final __test = new CharBufferScannerTest();
436 runJUnitTest(__test, __test.test_keyword_false);
437 });
438 _ut.test('test_keyword_final', () {
439 final __test = new CharBufferScannerTest();
440 runJUnitTest(__test, __test.test_keyword_final);
441 });
442 _ut.test('test_keyword_finally', () {
443 final __test = new CharBufferScannerTest();
444 runJUnitTest(__test, __test.test_keyword_finally);
445 });
446 _ut.test('test_keyword_for', () {
447 final __test = new CharBufferScannerTest();
448 runJUnitTest(__test, __test.test_keyword_for);
449 });
450 _ut.test('test_keyword_get', () {
451 final __test = new CharBufferScannerTest();
452 runJUnitTest(__test, __test.test_keyword_get);
453 });
454 _ut.test('test_keyword_if', () {
455 final __test = new CharBufferScannerTest();
456 runJUnitTest(__test, __test.test_keyword_if);
457 });
458 _ut.test('test_keyword_implements', () {
459 final __test = new CharBufferScannerTest();
460 runJUnitTest(__test, __test.test_keyword_implements);
461 });
462 _ut.test('test_keyword_import', () {
463 final __test = new CharBufferScannerTest();
464 runJUnitTest(__test, __test.test_keyword_import);
465 });
466 _ut.test('test_keyword_in', () {
467 final __test = new CharBufferScannerTest();
468 runJUnitTest(__test, __test.test_keyword_in);
469 });
470 _ut.test('test_keyword_is', () {
471 final __test = new CharBufferScannerTest();
472 runJUnitTest(__test, __test.test_keyword_is);
473 });
474 _ut.test('test_keyword_library', () {
475 final __test = new CharBufferScannerTest();
476 runJUnitTest(__test, __test.test_keyword_library);
477 });
478 _ut.test('test_keyword_new', () {
479 final __test = new CharBufferScannerTest();
480 runJUnitTest(__test, __test.test_keyword_new);
481 });
482 _ut.test('test_keyword_null', () {
483 final __test = new CharBufferScannerTest();
484 runJUnitTest(__test, __test.test_keyword_null);
485 });
486 _ut.test('test_keyword_operator', () {
487 final __test = new CharBufferScannerTest();
488 runJUnitTest(__test, __test.test_keyword_operator);
489 });
490 _ut.test('test_keyword_part', () {
491 final __test = new CharBufferScannerTest();
492 runJUnitTest(__test, __test.test_keyword_part);
493 });
494 _ut.test('test_keyword_return', () {
495 final __test = new CharBufferScannerTest();
496 runJUnitTest(__test, __test.test_keyword_return);
497 });
498 _ut.test('test_keyword_set', () {
499 final __test = new CharBufferScannerTest();
500 runJUnitTest(__test, __test.test_keyword_set);
501 });
502 _ut.test('test_keyword_static', () {
503 final __test = new CharBufferScannerTest();
504 runJUnitTest(__test, __test.test_keyword_static);
505 });
506 _ut.test('test_keyword_super', () {
507 final __test = new CharBufferScannerTest();
508 runJUnitTest(__test, __test.test_keyword_super);
509 });
510 _ut.test('test_keyword_switch', () {
511 final __test = new CharBufferScannerTest();
512 runJUnitTest(__test, __test.test_keyword_switch);
513 });
514 _ut.test('test_keyword_this', () {
515 final __test = new CharBufferScannerTest();
516 runJUnitTest(__test, __test.test_keyword_this);
517 });
518 _ut.test('test_keyword_throw', () {
519 final __test = new CharBufferScannerTest();
520 runJUnitTest(__test, __test.test_keyword_throw);
521 });
522 _ut.test('test_keyword_true', () {
523 final __test = new CharBufferScannerTest();
524 runJUnitTest(__test, __test.test_keyword_true);
525 });
526 _ut.test('test_keyword_try', () {
527 final __test = new CharBufferScannerTest();
528 runJUnitTest(__test, __test.test_keyword_try);
529 });
530 _ut.test('test_keyword_typedef', () {
531 final __test = new CharBufferScannerTest();
532 runJUnitTest(__test, __test.test_keyword_typedef);
533 });
534 _ut.test('test_keyword_var', () {
535 final __test = new CharBufferScannerTest();
536 runJUnitTest(__test, __test.test_keyword_var);
537 });
538 _ut.test('test_keyword_void', () {
539 final __test = new CharBufferScannerTest();
540 runJUnitTest(__test, __test.test_keyword_void);
541 });
542 _ut.test('test_keyword_while', () {
543 final __test = new CharBufferScannerTest();
544 runJUnitTest(__test, __test.test_keyword_while);
545 });
546 _ut.test('test_keyword_with', () {
547 final __test = new CharBufferScannerTest();
548 runJUnitTest(__test, __test.test_keyword_with);
549 });
550 _ut.test('test_lt', () {
551 final __test = new CharBufferScannerTest();
552 runJUnitTest(__test, __test.test_lt);
553 });
554 _ut.test('test_lt_eq', () {
555 final __test = new CharBufferScannerTest();
556 runJUnitTest(__test, __test.test_lt_eq);
557 });
558 _ut.test('test_lt_lt', () {
559 final __test = new CharBufferScannerTest();
560 runJUnitTest(__test, __test.test_lt_lt);
561 });
562 _ut.test('test_lt_lt_eq', () {
563 final __test = new CharBufferScannerTest();
564 runJUnitTest(__test, __test.test_lt_lt_eq);
565 });
566 _ut.test('test_minus', () {
567 final __test = new CharBufferScannerTest();
568 runJUnitTest(__test, __test.test_minus);
569 });
570 _ut.test('test_minus_eq', () {
571 final __test = new CharBufferScannerTest();
572 runJUnitTest(__test, __test.test_minus_eq);
573 });
574 _ut.test('test_minus_minus', () {
575 final __test = new CharBufferScannerTest();
576 runJUnitTest(__test, __test.test_minus_minus);
577 });
578 _ut.test('test_openSquareBracket', () {
579 final __test = new CharBufferScannerTest();
580 runJUnitTest(__test, __test.test_openSquareBracket);
581 });
582 _ut.test('test_open_curly_bracket', () {
583 final __test = new CharBufferScannerTest();
584 runJUnitTest(__test, __test.test_open_curly_bracket);
585 });
586 _ut.test('test_open_paren', () {
587 final __test = new CharBufferScannerTest();
588 runJUnitTest(__test, __test.test_open_paren);
589 });
590 _ut.test('test_open_square_bracket', () {
591 final __test = new CharBufferScannerTest();
592 runJUnitTest(__test, __test.test_open_square_bracket);
593 });
594 _ut.test('test_percent', () {
595 final __test = new CharBufferScannerTest();
596 runJUnitTest(__test, __test.test_percent);
597 });
598 _ut.test('test_percent_eq', () {
599 final __test = new CharBufferScannerTest();
600 runJUnitTest(__test, __test.test_percent_eq);
601 });
602 _ut.test('test_period', () {
603 final __test = new CharBufferScannerTest();
604 runJUnitTest(__test, __test.test_period);
605 });
606 _ut.test('test_periodAfterNumberNotIncluded_identifier', () {
607 final __test = new CharBufferScannerTest();
608 runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_identifier );
609 });
610 _ut.test('test_periodAfterNumberNotIncluded_period', () {
611 final __test = new CharBufferScannerTest();
612 runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_period);
613 });
614 _ut.test('test_period_period', () {
615 final __test = new CharBufferScannerTest();
616 runJUnitTest(__test, __test.test_period_period);
617 });
618 _ut.test('test_period_period_period', () {
619 final __test = new CharBufferScannerTest();
620 runJUnitTest(__test, __test.test_period_period_period);
621 });
622 _ut.test('test_plus', () {
623 final __test = new CharBufferScannerTest();
624 runJUnitTest(__test, __test.test_plus);
625 });
626 _ut.test('test_plus_eq', () {
627 final __test = new CharBufferScannerTest();
628 runJUnitTest(__test, __test.test_plus_eq);
629 });
630 _ut.test('test_plus_plus', () {
631 final __test = new CharBufferScannerTest();
632 runJUnitTest(__test, __test.test_plus_plus);
633 });
634 _ut.test('test_question', () {
635 final __test = new CharBufferScannerTest();
636 runJUnitTest(__test, __test.test_question);
637 });
638 _ut.test('test_scriptTag_withArgs', () {
639 final __test = new CharBufferScannerTest();
640 runJUnitTest(__test, __test.test_scriptTag_withArgs);
641 });
642 _ut.test('test_scriptTag_withSpace', () {
643 final __test = new CharBufferScannerTest();
644 runJUnitTest(__test, __test.test_scriptTag_withSpace);
645 });
646 _ut.test('test_scriptTag_withoutSpace', () {
647 final __test = new CharBufferScannerTest();
648 runJUnitTest(__test, __test.test_scriptTag_withoutSpace);
649 });
650 _ut.test('test_semicolon', () {
651 final __test = new CharBufferScannerTest();
652 runJUnitTest(__test, __test.test_semicolon);
653 });
654 _ut.test('test_slash', () {
655 final __test = new CharBufferScannerTest();
656 runJUnitTest(__test, __test.test_slash);
657 });
658 _ut.test('test_slash_eq', () {
659 final __test = new CharBufferScannerTest();
660 runJUnitTest(__test, __test.test_slash_eq);
661 });
662 _ut.test('test_star', () {
663 final __test = new CharBufferScannerTest();
664 runJUnitTest(__test, __test.test_star);
665 });
666 _ut.test('test_star_eq', () {
667 final __test = new CharBufferScannerTest();
668 runJUnitTest(__test, __test.test_star_eq);
669 });
670 _ut.test('test_startAndEnd', () {
671 final __test = new CharBufferScannerTest();
672 runJUnitTest(__test, __test.test_startAndEnd);
673 });
674 _ut.test('test_string_multi_double', () {
675 final __test = new CharBufferScannerTest();
676 runJUnitTest(__test, __test.test_string_multi_double);
677 });
678 _ut.test('test_string_multi_interpolation_block', () {
679 final __test = new CharBufferScannerTest();
680 runJUnitTest(__test, __test.test_string_multi_interpolation_block);
681 });
682 _ut.test('test_string_multi_interpolation_identifier', () {
683 final __test = new CharBufferScannerTest();
684 runJUnitTest(__test, __test.test_string_multi_interpolation_identifier);
685 });
686 _ut.test('test_string_multi_single', () {
687 final __test = new CharBufferScannerTest();
688 runJUnitTest(__test, __test.test_string_multi_single);
689 });
690 _ut.test('test_string_multi_unterminated', () {
691 final __test = new CharBufferScannerTest();
692 runJUnitTest(__test, __test.test_string_multi_unterminated);
693 });
694 _ut.test('test_string_raw_multi_double', () {
695 final __test = new CharBufferScannerTest();
696 runJUnitTest(__test, __test.test_string_raw_multi_double);
697 });
698 _ut.test('test_string_raw_multi_single', () {
699 final __test = new CharBufferScannerTest();
700 runJUnitTest(__test, __test.test_string_raw_multi_single);
701 });
702 _ut.test('test_string_raw_multi_unterminated', () {
703 final __test = new CharBufferScannerTest();
704 runJUnitTest(__test, __test.test_string_raw_multi_unterminated);
705 });
706 _ut.test('test_string_raw_simple_double', () {
707 final __test = new CharBufferScannerTest();
708 runJUnitTest(__test, __test.test_string_raw_simple_double);
709 });
710 _ut.test('test_string_raw_simple_single', () {
711 final __test = new CharBufferScannerTest();
712 runJUnitTest(__test, __test.test_string_raw_simple_single);
713 });
714 _ut.test('test_string_raw_simple_unterminated_eof', () {
715 final __test = new CharBufferScannerTest();
716 runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eof);
717 });
718 _ut.test('test_string_raw_simple_unterminated_eol', () {
719 final __test = new CharBufferScannerTest();
720 runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eol);
721 });
722 _ut.test('test_string_simple_double', () {
723 final __test = new CharBufferScannerTest();
724 runJUnitTest(__test, __test.test_string_simple_double);
725 });
726 _ut.test('test_string_simple_escapedDollar', () {
727 final __test = new CharBufferScannerTest();
728 runJUnitTest(__test, __test.test_string_simple_escapedDollar);
729 });
730 _ut.test('test_string_simple_interpolation_block', () {
731 final __test = new CharBufferScannerTest();
732 runJUnitTest(__test, __test.test_string_simple_interpolation_block);
733 });
734 _ut.test('test_string_simple_interpolation_blockWithNestedMap', () {
735 final __test = new CharBufferScannerTest();
736 runJUnitTest(__test, __test.test_string_simple_interpolation_blockWithNe stedMap);
737 });
738 _ut.test('test_string_simple_interpolation_firstAndLast', () {
739 final __test = new CharBufferScannerTest();
740 runJUnitTest(__test, __test.test_string_simple_interpolation_firstAndLas t);
741 });
742 _ut.test('test_string_simple_interpolation_identifier', () {
743 final __test = new CharBufferScannerTest();
744 runJUnitTest(__test, __test.test_string_simple_interpolation_identifier) ;
745 });
746 _ut.test('test_string_simple_single', () {
747 final __test = new CharBufferScannerTest();
748 runJUnitTest(__test, __test.test_string_simple_single);
749 });
750 _ut.test('test_string_simple_unterminated_eof', () {
751 final __test = new CharBufferScannerTest();
752 runJUnitTest(__test, __test.test_string_simple_unterminated_eof);
753 });
754 _ut.test('test_string_simple_unterminated_eol', () {
755 final __test = new CharBufferScannerTest();
756 runJUnitTest(__test, __test.test_string_simple_unterminated_eol);
757 });
758 _ut.test('test_tilde', () {
759 final __test = new CharBufferScannerTest();
760 runJUnitTest(__test, __test.test_tilde);
761 });
762 _ut.test('test_tilde_slash', () {
763 final __test = new CharBufferScannerTest();
764 runJUnitTest(__test, __test.test_tilde_slash);
765 });
766 _ut.test('test_tilde_slash_eq', () {
767 final __test = new CharBufferScannerTest();
768 runJUnitTest(__test, __test.test_tilde_slash_eq);
769 });
770 _ut.test('test_unclosedPairInInterpolation', () {
771 final __test = new CharBufferScannerTest();
772 runJUnitTest(__test, __test.test_unclosedPairInInterpolation);
773 });
774 });
775 }
776 }
777 class StringScannerTest extends AbstractScannerTest {
778 void test_setSourceStart() {
779 int offsetDelta = 42;
780 GatheringErrorListener listener = new GatheringErrorListener();
781 StringScanner scanner = new StringScanner(null, "a", listener);
782 scanner.setSourceStart(3, 9, offsetDelta);
783 scanner.tokenize();
784 List<int> lineStarts3 = scanner.lineStarts;
785 JUnitTestCase.assertNotNull(lineStarts3);
786 JUnitTestCase.assertEquals(3, lineStarts3.length);
787 JUnitTestCase.assertEquals(33, lineStarts3[2]);
788 }
789 Token scan(String source, GatheringErrorListener listener) {
790 StringScanner scanner = new StringScanner(null, source, listener);
791 Token result = scanner.tokenize();
792 listener.setLineInfo(new TestSource(), scanner.lineStarts);
793 return result;
794 }
795 static dartSuite() {
796 _ut.group('StringScannerTest', () {
797 _ut.test('test_ampersand', () {
798 final __test = new StringScannerTest();
799 runJUnitTest(__test, __test.test_ampersand);
800 });
801 _ut.test('test_ampersand_ampersand', () {
802 final __test = new StringScannerTest();
803 runJUnitTest(__test, __test.test_ampersand_ampersand);
804 });
805 _ut.test('test_ampersand_eq', () {
806 final __test = new StringScannerTest();
807 runJUnitTest(__test, __test.test_ampersand_eq);
808 });
809 _ut.test('test_at', () {
810 final __test = new StringScannerTest();
811 runJUnitTest(__test, __test.test_at);
812 });
813 _ut.test('test_backping', () {
814 final __test = new StringScannerTest();
815 runJUnitTest(__test, __test.test_backping);
816 });
817 _ut.test('test_backslash', () {
818 final __test = new StringScannerTest();
819 runJUnitTest(__test, __test.test_backslash);
820 });
821 _ut.test('test_bang', () {
822 final __test = new StringScannerTest();
823 runJUnitTest(__test, __test.test_bang);
824 });
825 _ut.test('test_bang_eq', () {
826 final __test = new StringScannerTest();
827 runJUnitTest(__test, __test.test_bang_eq);
828 });
829 _ut.test('test_bar', () {
830 final __test = new StringScannerTest();
831 runJUnitTest(__test, __test.test_bar);
832 });
833 _ut.test('test_bar_bar', () {
834 final __test = new StringScannerTest();
835 runJUnitTest(__test, __test.test_bar_bar);
836 });
837 _ut.test('test_bar_eq', () {
838 final __test = new StringScannerTest();
839 runJUnitTest(__test, __test.test_bar_eq);
840 });
841 _ut.test('test_caret', () {
842 final __test = new StringScannerTest();
843 runJUnitTest(__test, __test.test_caret);
844 });
845 _ut.test('test_caret_eq', () {
846 final __test = new StringScannerTest();
847 runJUnitTest(__test, __test.test_caret_eq);
848 });
849 _ut.test('test_close_curly_bracket', () {
850 final __test = new StringScannerTest();
851 runJUnitTest(__test, __test.test_close_curly_bracket);
852 });
853 _ut.test('test_close_paren', () {
854 final __test = new StringScannerTest();
855 runJUnitTest(__test, __test.test_close_paren);
856 });
857 _ut.test('test_close_quare_bracket', () {
858 final __test = new StringScannerTest();
859 runJUnitTest(__test, __test.test_close_quare_bracket);
860 });
861 _ut.test('test_colon', () {
862 final __test = new StringScannerTest();
863 runJUnitTest(__test, __test.test_colon);
864 });
865 _ut.test('test_comma', () {
866 final __test = new StringScannerTest();
867 runJUnitTest(__test, __test.test_comma);
868 });
869 _ut.test('test_comment_multi', () {
870 final __test = new StringScannerTest();
871 runJUnitTest(__test, __test.test_comment_multi);
872 });
873 _ut.test('test_comment_multi_unterminated', () {
874 final __test = new StringScannerTest();
875 runJUnitTest(__test, __test.test_comment_multi_unterminated);
876 });
877 _ut.test('test_comment_nested', () {
878 final __test = new StringScannerTest();
879 runJUnitTest(__test, __test.test_comment_nested);
880 });
881 _ut.test('test_comment_single', () {
882 final __test = new StringScannerTest();
883 runJUnitTest(__test, __test.test_comment_single);
884 });
885 _ut.test('test_double_both_E', () {
886 final __test = new StringScannerTest();
887 runJUnitTest(__test, __test.test_double_both_E);
888 });
889 _ut.test('test_double_both_e', () {
890 final __test = new StringScannerTest();
891 runJUnitTest(__test, __test.test_double_both_e);
892 });
893 _ut.test('test_double_fraction', () {
894 final __test = new StringScannerTest();
895 runJUnitTest(__test, __test.test_double_fraction);
896 });
897 _ut.test('test_double_fraction_D', () {
898 final __test = new StringScannerTest();
899 runJUnitTest(__test, __test.test_double_fraction_D);
900 });
901 _ut.test('test_double_fraction_E', () {
902 final __test = new StringScannerTest();
903 runJUnitTest(__test, __test.test_double_fraction_E);
904 });
905 _ut.test('test_double_fraction_Ed', () {
906 final __test = new StringScannerTest();
907 runJUnitTest(__test, __test.test_double_fraction_Ed);
908 });
909 _ut.test('test_double_fraction_d', () {
910 final __test = new StringScannerTest();
911 runJUnitTest(__test, __test.test_double_fraction_d);
912 });
913 _ut.test('test_double_fraction_e', () {
914 final __test = new StringScannerTest();
915 runJUnitTest(__test, __test.test_double_fraction_e);
916 });
917 _ut.test('test_double_fraction_ed', () {
918 final __test = new StringScannerTest();
919 runJUnitTest(__test, __test.test_double_fraction_ed);
920 });
921 _ut.test('test_double_missingDigitInExponent', () {
922 final __test = new StringScannerTest();
923 runJUnitTest(__test, __test.test_double_missingDigitInExponent);
924 });
925 _ut.test('test_double_whole_D', () {
926 final __test = new StringScannerTest();
927 runJUnitTest(__test, __test.test_double_whole_D);
928 });
929 _ut.test('test_double_whole_E', () {
930 final __test = new StringScannerTest();
931 runJUnitTest(__test, __test.test_double_whole_E);
932 });
933 _ut.test('test_double_whole_Ed', () {
934 final __test = new StringScannerTest();
935 runJUnitTest(__test, __test.test_double_whole_Ed);
936 });
937 _ut.test('test_double_whole_d', () {
938 final __test = new StringScannerTest();
939 runJUnitTest(__test, __test.test_double_whole_d);
940 });
941 _ut.test('test_double_whole_e', () {
942 final __test = new StringScannerTest();
943 runJUnitTest(__test, __test.test_double_whole_e);
944 });
945 _ut.test('test_double_whole_ed', () {
946 final __test = new StringScannerTest();
947 runJUnitTest(__test, __test.test_double_whole_ed);
948 });
949 _ut.test('test_eq', () {
950 final __test = new StringScannerTest();
951 runJUnitTest(__test, __test.test_eq);
952 });
953 _ut.test('test_eq_eq', () {
954 final __test = new StringScannerTest();
955 runJUnitTest(__test, __test.test_eq_eq);
956 });
957 _ut.test('test_gt', () {
958 final __test = new StringScannerTest();
959 runJUnitTest(__test, __test.test_gt);
960 });
961 _ut.test('test_gt_eq', () {
962 final __test = new StringScannerTest();
963 runJUnitTest(__test, __test.test_gt_eq);
964 });
965 _ut.test('test_gt_gt', () {
966 final __test = new StringScannerTest();
967 runJUnitTest(__test, __test.test_gt_gt);
968 });
969 _ut.test('test_gt_gt_eq', () {
970 final __test = new StringScannerTest();
971 runJUnitTest(__test, __test.test_gt_gt_eq);
972 });
973 _ut.test('test_hash', () {
974 final __test = new StringScannerTest();
975 runJUnitTest(__test, __test.test_hash);
976 });
977 _ut.test('test_hexidecimal', () {
978 final __test = new StringScannerTest();
979 runJUnitTest(__test, __test.test_hexidecimal);
980 });
981 _ut.test('test_hexidecimal_missingDigit', () {
982 final __test = new StringScannerTest();
983 runJUnitTest(__test, __test.test_hexidecimal_missingDigit);
984 });
985 _ut.test('test_identifier', () {
986 final __test = new StringScannerTest();
987 runJUnitTest(__test, __test.test_identifier);
988 });
989 _ut.test('test_illegalChar', () {
990 final __test = new StringScannerTest();
991 runJUnitTest(__test, __test.test_illegalChar);
992 });
993 _ut.test('test_index', () {
994 final __test = new StringScannerTest();
995 runJUnitTest(__test, __test.test_index);
996 });
997 _ut.test('test_index_eq', () {
998 final __test = new StringScannerTest();
999 runJUnitTest(__test, __test.test_index_eq);
1000 });
1001 _ut.test('test_int', () {
1002 final __test = new StringScannerTest();
1003 runJUnitTest(__test, __test.test_int);
1004 });
1005 _ut.test('test_int_initialZero', () {
1006 final __test = new StringScannerTest();
1007 runJUnitTest(__test, __test.test_int_initialZero);
1008 });
1009 _ut.test('test_keyword_abstract', () {
1010 final __test = new StringScannerTest();
1011 runJUnitTest(__test, __test.test_keyword_abstract);
1012 });
1013 _ut.test('test_keyword_as', () {
1014 final __test = new StringScannerTest();
1015 runJUnitTest(__test, __test.test_keyword_as);
1016 });
1017 _ut.test('test_keyword_assert', () {
1018 final __test = new StringScannerTest();
1019 runJUnitTest(__test, __test.test_keyword_assert);
1020 });
1021 _ut.test('test_keyword_break', () {
1022 final __test = new StringScannerTest();
1023 runJUnitTest(__test, __test.test_keyword_break);
1024 });
1025 _ut.test('test_keyword_case', () {
1026 final __test = new StringScannerTest();
1027 runJUnitTest(__test, __test.test_keyword_case);
1028 });
1029 _ut.test('test_keyword_catch', () {
1030 final __test = new StringScannerTest();
1031 runJUnitTest(__test, __test.test_keyword_catch);
1032 });
1033 _ut.test('test_keyword_class', () {
1034 final __test = new StringScannerTest();
1035 runJUnitTest(__test, __test.test_keyword_class);
1036 });
1037 _ut.test('test_keyword_const', () {
1038 final __test = new StringScannerTest();
1039 runJUnitTest(__test, __test.test_keyword_const);
1040 });
1041 _ut.test('test_keyword_continue', () {
1042 final __test = new StringScannerTest();
1043 runJUnitTest(__test, __test.test_keyword_continue);
1044 });
1045 _ut.test('test_keyword_default', () {
1046 final __test = new StringScannerTest();
1047 runJUnitTest(__test, __test.test_keyword_default);
1048 });
1049 _ut.test('test_keyword_do', () {
1050 final __test = new StringScannerTest();
1051 runJUnitTest(__test, __test.test_keyword_do);
1052 });
1053 _ut.test('test_keyword_dynamic', () {
1054 final __test = new StringScannerTest();
1055 runJUnitTest(__test, __test.test_keyword_dynamic);
1056 });
1057 _ut.test('test_keyword_else', () {
1058 final __test = new StringScannerTest();
1059 runJUnitTest(__test, __test.test_keyword_else);
1060 });
1061 _ut.test('test_keyword_export', () {
1062 final __test = new StringScannerTest();
1063 runJUnitTest(__test, __test.test_keyword_export);
1064 });
1065 _ut.test('test_keyword_extends', () {
1066 final __test = new StringScannerTest();
1067 runJUnitTest(__test, __test.test_keyword_extends);
1068 });
1069 _ut.test('test_keyword_factory', () {
1070 final __test = new StringScannerTest();
1071 runJUnitTest(__test, __test.test_keyword_factory);
1072 });
1073 _ut.test('test_keyword_false', () {
1074 final __test = new StringScannerTest();
1075 runJUnitTest(__test, __test.test_keyword_false);
1076 });
1077 _ut.test('test_keyword_final', () {
1078 final __test = new StringScannerTest();
1079 runJUnitTest(__test, __test.test_keyword_final);
1080 });
1081 _ut.test('test_keyword_finally', () {
1082 final __test = new StringScannerTest();
1083 runJUnitTest(__test, __test.test_keyword_finally);
1084 });
1085 _ut.test('test_keyword_for', () {
1086 final __test = new StringScannerTest();
1087 runJUnitTest(__test, __test.test_keyword_for);
1088 });
1089 _ut.test('test_keyword_get', () {
1090 final __test = new StringScannerTest();
1091 runJUnitTest(__test, __test.test_keyword_get);
1092 });
1093 _ut.test('test_keyword_if', () {
1094 final __test = new StringScannerTest();
1095 runJUnitTest(__test, __test.test_keyword_if);
1096 });
1097 _ut.test('test_keyword_implements', () {
1098 final __test = new StringScannerTest();
1099 runJUnitTest(__test, __test.test_keyword_implements);
1100 });
1101 _ut.test('test_keyword_import', () {
1102 final __test = new StringScannerTest();
1103 runJUnitTest(__test, __test.test_keyword_import);
1104 });
1105 _ut.test('test_keyword_in', () {
1106 final __test = new StringScannerTest();
1107 runJUnitTest(__test, __test.test_keyword_in);
1108 });
1109 _ut.test('test_keyword_is', () {
1110 final __test = new StringScannerTest();
1111 runJUnitTest(__test, __test.test_keyword_is);
1112 });
1113 _ut.test('test_keyword_library', () {
1114 final __test = new StringScannerTest();
1115 runJUnitTest(__test, __test.test_keyword_library);
1116 });
1117 _ut.test('test_keyword_new', () {
1118 final __test = new StringScannerTest();
1119 runJUnitTest(__test, __test.test_keyword_new);
1120 });
1121 _ut.test('test_keyword_null', () {
1122 final __test = new StringScannerTest();
1123 runJUnitTest(__test, __test.test_keyword_null);
1124 });
1125 _ut.test('test_keyword_operator', () {
1126 final __test = new StringScannerTest();
1127 runJUnitTest(__test, __test.test_keyword_operator);
1128 });
1129 _ut.test('test_keyword_part', () {
1130 final __test = new StringScannerTest();
1131 runJUnitTest(__test, __test.test_keyword_part);
1132 });
1133 _ut.test('test_keyword_return', () {
1134 final __test = new StringScannerTest();
1135 runJUnitTest(__test, __test.test_keyword_return);
1136 });
1137 _ut.test('test_keyword_set', () {
1138 final __test = new StringScannerTest();
1139 runJUnitTest(__test, __test.test_keyword_set);
1140 });
1141 _ut.test('test_keyword_static', () {
1142 final __test = new StringScannerTest();
1143 runJUnitTest(__test, __test.test_keyword_static);
1144 });
1145 _ut.test('test_keyword_super', () {
1146 final __test = new StringScannerTest();
1147 runJUnitTest(__test, __test.test_keyword_super);
1148 });
1149 _ut.test('test_keyword_switch', () {
1150 final __test = new StringScannerTest();
1151 runJUnitTest(__test, __test.test_keyword_switch);
1152 });
1153 _ut.test('test_keyword_this', () {
1154 final __test = new StringScannerTest();
1155 runJUnitTest(__test, __test.test_keyword_this);
1156 });
1157 _ut.test('test_keyword_throw', () {
1158 final __test = new StringScannerTest();
1159 runJUnitTest(__test, __test.test_keyword_throw);
1160 });
1161 _ut.test('test_keyword_true', () {
1162 final __test = new StringScannerTest();
1163 runJUnitTest(__test, __test.test_keyword_true);
1164 });
1165 _ut.test('test_keyword_try', () {
1166 final __test = new StringScannerTest();
1167 runJUnitTest(__test, __test.test_keyword_try);
1168 });
1169 _ut.test('test_keyword_typedef', () {
1170 final __test = new StringScannerTest();
1171 runJUnitTest(__test, __test.test_keyword_typedef);
1172 });
1173 _ut.test('test_keyword_var', () {
1174 final __test = new StringScannerTest();
1175 runJUnitTest(__test, __test.test_keyword_var);
1176 });
1177 _ut.test('test_keyword_void', () {
1178 final __test = new StringScannerTest();
1179 runJUnitTest(__test, __test.test_keyword_void);
1180 });
1181 _ut.test('test_keyword_while', () {
1182 final __test = new StringScannerTest();
1183 runJUnitTest(__test, __test.test_keyword_while);
1184 });
1185 _ut.test('test_keyword_with', () {
1186 final __test = new StringScannerTest();
1187 runJUnitTest(__test, __test.test_keyword_with);
1188 });
1189 _ut.test('test_lt', () {
1190 final __test = new StringScannerTest();
1191 runJUnitTest(__test, __test.test_lt);
1192 });
1193 _ut.test('test_lt_eq', () {
1194 final __test = new StringScannerTest();
1195 runJUnitTest(__test, __test.test_lt_eq);
1196 });
1197 _ut.test('test_lt_lt', () {
1198 final __test = new StringScannerTest();
1199 runJUnitTest(__test, __test.test_lt_lt);
1200 });
1201 _ut.test('test_lt_lt_eq', () {
1202 final __test = new StringScannerTest();
1203 runJUnitTest(__test, __test.test_lt_lt_eq);
1204 });
1205 _ut.test('test_minus', () {
1206 final __test = new StringScannerTest();
1207 runJUnitTest(__test, __test.test_minus);
1208 });
1209 _ut.test('test_minus_eq', () {
1210 final __test = new StringScannerTest();
1211 runJUnitTest(__test, __test.test_minus_eq);
1212 });
1213 _ut.test('test_minus_minus', () {
1214 final __test = new StringScannerTest();
1215 runJUnitTest(__test, __test.test_minus_minus);
1216 });
1217 _ut.test('test_openSquareBracket', () {
1218 final __test = new StringScannerTest();
1219 runJUnitTest(__test, __test.test_openSquareBracket);
1220 });
1221 _ut.test('test_open_curly_bracket', () {
1222 final __test = new StringScannerTest();
1223 runJUnitTest(__test, __test.test_open_curly_bracket);
1224 });
1225 _ut.test('test_open_paren', () {
1226 final __test = new StringScannerTest();
1227 runJUnitTest(__test, __test.test_open_paren);
1228 });
1229 _ut.test('test_open_square_bracket', () {
1230 final __test = new StringScannerTest();
1231 runJUnitTest(__test, __test.test_open_square_bracket);
1232 });
1233 _ut.test('test_percent', () {
1234 final __test = new StringScannerTest();
1235 runJUnitTest(__test, __test.test_percent);
1236 });
1237 _ut.test('test_percent_eq', () {
1238 final __test = new StringScannerTest();
1239 runJUnitTest(__test, __test.test_percent_eq);
1240 });
1241 _ut.test('test_period', () {
1242 final __test = new StringScannerTest();
1243 runJUnitTest(__test, __test.test_period);
1244 });
1245 _ut.test('test_periodAfterNumberNotIncluded_identifier', () {
1246 final __test = new StringScannerTest();
1247 runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_identifier );
1248 });
1249 _ut.test('test_periodAfterNumberNotIncluded_period', () {
1250 final __test = new StringScannerTest();
1251 runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_period);
1252 });
1253 _ut.test('test_period_period', () {
1254 final __test = new StringScannerTest();
1255 runJUnitTest(__test, __test.test_period_period);
1256 });
1257 _ut.test('test_period_period_period', () {
1258 final __test = new StringScannerTest();
1259 runJUnitTest(__test, __test.test_period_period_period);
1260 });
1261 _ut.test('test_plus', () {
1262 final __test = new StringScannerTest();
1263 runJUnitTest(__test, __test.test_plus);
1264 });
1265 _ut.test('test_plus_eq', () {
1266 final __test = new StringScannerTest();
1267 runJUnitTest(__test, __test.test_plus_eq);
1268 });
1269 _ut.test('test_plus_plus', () {
1270 final __test = new StringScannerTest();
1271 runJUnitTest(__test, __test.test_plus_plus);
1272 });
1273 _ut.test('test_question', () {
1274 final __test = new StringScannerTest();
1275 runJUnitTest(__test, __test.test_question);
1276 });
1277 _ut.test('test_scriptTag_withArgs', () {
1278 final __test = new StringScannerTest();
1279 runJUnitTest(__test, __test.test_scriptTag_withArgs);
1280 });
1281 _ut.test('test_scriptTag_withSpace', () {
1282 final __test = new StringScannerTest();
1283 runJUnitTest(__test, __test.test_scriptTag_withSpace);
1284 });
1285 _ut.test('test_scriptTag_withoutSpace', () {
1286 final __test = new StringScannerTest();
1287 runJUnitTest(__test, __test.test_scriptTag_withoutSpace);
1288 });
1289 _ut.test('test_semicolon', () {
1290 final __test = new StringScannerTest();
1291 runJUnitTest(__test, __test.test_semicolon);
1292 });
1293 _ut.test('test_setSourceStart', () {
1294 final __test = new StringScannerTest();
1295 runJUnitTest(__test, __test.test_setSourceStart);
1296 });
1297 _ut.test('test_slash', () {
1298 final __test = new StringScannerTest();
1299 runJUnitTest(__test, __test.test_slash);
1300 });
1301 _ut.test('test_slash_eq', () {
1302 final __test = new StringScannerTest();
1303 runJUnitTest(__test, __test.test_slash_eq);
1304 });
1305 _ut.test('test_star', () {
1306 final __test = new StringScannerTest();
1307 runJUnitTest(__test, __test.test_star);
1308 });
1309 _ut.test('test_star_eq', () {
1310 final __test = new StringScannerTest();
1311 runJUnitTest(__test, __test.test_star_eq);
1312 });
1313 _ut.test('test_startAndEnd', () {
1314 final __test = new StringScannerTest();
1315 runJUnitTest(__test, __test.test_startAndEnd);
1316 });
1317 _ut.test('test_string_multi_double', () {
1318 final __test = new StringScannerTest();
1319 runJUnitTest(__test, __test.test_string_multi_double);
1320 });
1321 _ut.test('test_string_multi_interpolation_block', () {
1322 final __test = new StringScannerTest();
1323 runJUnitTest(__test, __test.test_string_multi_interpolation_block);
1324 });
1325 _ut.test('test_string_multi_interpolation_identifier', () {
1326 final __test = new StringScannerTest();
1327 runJUnitTest(__test, __test.test_string_multi_interpolation_identifier);
1328 });
1329 _ut.test('test_string_multi_single', () {
1330 final __test = new StringScannerTest();
1331 runJUnitTest(__test, __test.test_string_multi_single);
1332 });
1333 _ut.test('test_string_multi_unterminated', () {
1334 final __test = new StringScannerTest();
1335 runJUnitTest(__test, __test.test_string_multi_unterminated);
1336 });
1337 _ut.test('test_string_raw_multi_double', () {
1338 final __test = new StringScannerTest();
1339 runJUnitTest(__test, __test.test_string_raw_multi_double);
1340 });
1341 _ut.test('test_string_raw_multi_single', () {
1342 final __test = new StringScannerTest();
1343 runJUnitTest(__test, __test.test_string_raw_multi_single);
1344 });
1345 _ut.test('test_string_raw_multi_unterminated', () {
1346 final __test = new StringScannerTest();
1347 runJUnitTest(__test, __test.test_string_raw_multi_unterminated);
1348 });
1349 _ut.test('test_string_raw_simple_double', () {
1350 final __test = new StringScannerTest();
1351 runJUnitTest(__test, __test.test_string_raw_simple_double);
1352 });
1353 _ut.test('test_string_raw_simple_single', () {
1354 final __test = new StringScannerTest();
1355 runJUnitTest(__test, __test.test_string_raw_simple_single);
1356 });
1357 _ut.test('test_string_raw_simple_unterminated_eof', () {
1358 final __test = new StringScannerTest();
1359 runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eof);
1360 });
1361 _ut.test('test_string_raw_simple_unterminated_eol', () {
1362 final __test = new StringScannerTest();
1363 runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eol);
1364 });
1365 _ut.test('test_string_simple_double', () {
1366 final __test = new StringScannerTest();
1367 runJUnitTest(__test, __test.test_string_simple_double);
1368 });
1369 _ut.test('test_string_simple_escapedDollar', () {
1370 final __test = new StringScannerTest();
1371 runJUnitTest(__test, __test.test_string_simple_escapedDollar);
1372 });
1373 _ut.test('test_string_simple_interpolation_block', () {
1374 final __test = new StringScannerTest();
1375 runJUnitTest(__test, __test.test_string_simple_interpolation_block);
1376 });
1377 _ut.test('test_string_simple_interpolation_blockWithNestedMap', () {
1378 final __test = new StringScannerTest();
1379 runJUnitTest(__test, __test.test_string_simple_interpolation_blockWithNe stedMap);
1380 });
1381 _ut.test('test_string_simple_interpolation_firstAndLast', () {
1382 final __test = new StringScannerTest();
1383 runJUnitTest(__test, __test.test_string_simple_interpolation_firstAndLas t);
1384 });
1385 _ut.test('test_string_simple_interpolation_identifier', () {
1386 final __test = new StringScannerTest();
1387 runJUnitTest(__test, __test.test_string_simple_interpolation_identifier) ;
1388 });
1389 _ut.test('test_string_simple_single', () {
1390 final __test = new StringScannerTest();
1391 runJUnitTest(__test, __test.test_string_simple_single);
1392 });
1393 _ut.test('test_string_simple_unterminated_eof', () {
1394 final __test = new StringScannerTest();
1395 runJUnitTest(__test, __test.test_string_simple_unterminated_eof);
1396 });
1397 _ut.test('test_string_simple_unterminated_eol', () {
1398 final __test = new StringScannerTest();
1399 runJUnitTest(__test, __test.test_string_simple_unterminated_eol);
1400 });
1401 _ut.test('test_tilde', () {
1402 final __test = new StringScannerTest();
1403 runJUnitTest(__test, __test.test_tilde);
1404 });
1405 _ut.test('test_tilde_slash', () {
1406 final __test = new StringScannerTest();
1407 runJUnitTest(__test, __test.test_tilde_slash);
1408 });
1409 _ut.test('test_tilde_slash_eq', () {
1410 final __test = new StringScannerTest();
1411 runJUnitTest(__test, __test.test_tilde_slash_eq);
1412 });
1413 _ut.test('test_unclosedPairInInterpolation', () {
1414 final __test = new StringScannerTest();
1415 runJUnitTest(__test, __test.test_unclosedPairInInterpolation);
1416 });
1417 });
1418 }
1419 }
1420 /**
1421 * Instances of the class {@code TokenStreamValidator} are used to validate the correct construction
1422 * of a stream of tokens.
1423 */
1424 class TokenStreamValidator {
1425 /**
1426 * Validate that the stream of tokens that starts with the given token is corr ect.
1427 * @param token the first token in the stream of tokens to be validated
1428 */
1429 void validate(Token token) {
1430 JavaStringBuilder builder = new JavaStringBuilder();
1431 validateStream(builder, token);
1432 if (builder.length > 0) {
1433 JUnitTestCase.fail(builder.toString());
1434 }
1435 }
1436 void validateStream(JavaStringBuilder builder, Token token) {
1437 if (token == null) {
1438 return;
1439 }
1440 Token previousToken = null;
1441 int previousEnd = -1;
1442 Token currentToken = token;
1443 while (currentToken != null && currentToken.type != TokenType.EOF) {
1444 validateStream(builder, currentToken.precedingComments);
1445 TokenType type29 = currentToken.type;
1446 if (identical(type29, TokenType.OPEN_CURLY_BRACKET) || identical(type29, T okenType.OPEN_PAREN) || identical(type29, TokenType.OPEN_SQUARE_BRACKET) || iden tical(type29, TokenType.STRING_INTERPOLATION_EXPRESSION)) {
1447 if (currentToken is! BeginToken) {
1448 builder.append("\r\nExpected BeginToken, found ");
1449 builder.append(currentToken.runtimeType.toString());
1450 builder.append(" ");
1451 writeToken(builder, currentToken);
1452 }
1453 }
1454 int currentStart = currentToken.offset;
1455 int currentLength = currentToken.length;
1456 int currentEnd = currentStart + currentLength - 1;
1457 if (currentStart <= previousEnd) {
1458 builder.append("\r\nInvalid token sequence: ");
1459 writeToken(builder, previousToken);
1460 builder.append(" followed by ");
1461 writeToken(builder, currentToken);
1462 }
1463 previousEnd = currentEnd;
1464 previousToken = currentToken;
1465 currentToken = currentToken.next;
1466 }
1467 }
1468 void writeToken(JavaStringBuilder builder, Token token) {
1469 builder.append("[");
1470 builder.append(token.type);
1471 builder.append(", '");
1472 builder.append(token.lexeme);
1473 builder.append("', ");
1474 builder.append(token.offset);
1475 builder.append(", ");
1476 builder.append(token.length);
1477 builder.append("]");
1478 }
1479 }
1480 abstract class AbstractScannerTest extends JUnitTestCase {
1481 void test_ampersand() {
1482 assertToken(TokenType.AMPERSAND, "&");
1483 }
1484 void test_ampersand_ampersand() {
1485 assertToken(TokenType.AMPERSAND_AMPERSAND, "&&");
1486 }
1487 void test_ampersand_eq() {
1488 assertToken(TokenType.AMPERSAND_EQ, "&=");
1489 }
1490 void test_at() {
1491 assertToken(TokenType.AT, "@");
1492 }
1493 void test_backping() {
1494 assertToken(TokenType.BACKPING, "`");
1495 }
1496 void test_backslash() {
1497 assertToken(TokenType.BACKSLASH, "\\");
1498 }
1499 void test_bang() {
1500 assertToken(TokenType.BANG, "!");
1501 }
1502 void test_bang_eq() {
1503 assertToken(TokenType.BANG_EQ, "!=");
1504 }
1505 void test_bar() {
1506 assertToken(TokenType.BAR, "|");
1507 }
1508 void test_bar_bar() {
1509 assertToken(TokenType.BAR_BAR, "||");
1510 }
1511 void test_bar_eq() {
1512 assertToken(TokenType.BAR_EQ, "|=");
1513 }
1514 void test_caret() {
1515 assertToken(TokenType.CARET, "^");
1516 }
1517 void test_caret_eq() {
1518 assertToken(TokenType.CARET_EQ, "^=");
1519 }
1520 void test_close_curly_bracket() {
1521 assertToken(TokenType.CLOSE_CURLY_BRACKET, "}");
1522 }
1523 void test_close_paren() {
1524 assertToken(TokenType.CLOSE_PAREN, ")");
1525 }
1526 void test_close_quare_bracket() {
1527 assertToken(TokenType.CLOSE_SQUARE_BRACKET, "]");
1528 }
1529 void test_colon() {
1530 assertToken(TokenType.COLON, ":");
1531 }
1532 void test_comma() {
1533 assertToken(TokenType.COMMA, ",");
1534 }
1535 void test_comment_multi() {
1536 assertComment(TokenType.MULTI_LINE_COMMENT, "/* comment */");
1537 }
1538 void test_comment_multi_unterminated() {
1539 assertError(ScannerErrorCode.UNTERMINATED_MULTI_LINE_COMMENT, 3, "/* x");
1540 }
1541 void test_comment_nested() {
1542 assertComment(TokenType.MULTI_LINE_COMMENT, "/* comment /* within a */ comme nt */");
1543 }
1544 void test_comment_single() {
1545 assertComment(TokenType.SINGLE_LINE_COMMENT, "// comment");
1546 }
1547 void test_double_both_e() {
1548 assertToken(TokenType.DOUBLE, "0.123e4");
1549 }
1550 void test_double_both_E() {
1551 assertToken(TokenType.DOUBLE, "0.123E4");
1552 }
1553 void test_double_fraction() {
1554 assertToken(TokenType.DOUBLE, ".123");
1555 }
1556 void test_double_fraction_d() {
1557 assertToken(TokenType.DOUBLE, ".123d");
1558 }
1559 void test_double_fraction_D() {
1560 assertToken(TokenType.DOUBLE, ".123D");
1561 }
1562 void test_double_fraction_e() {
1563 assertToken(TokenType.DOUBLE, ".123e4");
1564 }
1565 void test_double_fraction_E() {
1566 assertToken(TokenType.DOUBLE, ".123E4");
1567 }
1568 void test_double_fraction_ed() {
1569 assertToken(TokenType.DOUBLE, ".123e4d");
1570 }
1571 void test_double_fraction_Ed() {
1572 assertToken(TokenType.DOUBLE, ".123E4d");
1573 }
1574 void test_double_missingDigitInExponent() {
1575 assertError(ScannerErrorCode.MISSING_DIGIT, 1, "1e");
1576 }
1577 void test_double_whole_d() {
1578 assertToken(TokenType.DOUBLE, "12d");
1579 }
1580 void test_double_whole_D() {
1581 assertToken(TokenType.DOUBLE, "12D");
1582 }
1583 void test_double_whole_e() {
1584 assertToken(TokenType.DOUBLE, "12e4");
1585 }
1586 void test_double_whole_E() {
1587 assertToken(TokenType.DOUBLE, "12E4");
1588 }
1589 void test_double_whole_ed() {
1590 assertToken(TokenType.DOUBLE, "12e4d");
1591 }
1592 void test_double_whole_Ed() {
1593 assertToken(TokenType.DOUBLE, "12E4d");
1594 }
1595 void test_eq() {
1596 assertToken(TokenType.EQ, "=");
1597 }
1598 void test_eq_eq() {
1599 assertToken(TokenType.EQ_EQ, "==");
1600 }
1601 void test_gt() {
1602 assertToken(TokenType.GT, ">");
1603 }
1604 void test_gt_eq() {
1605 assertToken(TokenType.GT_EQ, ">=");
1606 }
1607 void test_gt_gt() {
1608 assertToken(TokenType.GT_GT, ">>");
1609 }
1610 void test_gt_gt_eq() {
1611 assertToken(TokenType.GT_GT_EQ, ">>=");
1612 }
1613 void test_hash() {
1614 assertToken(TokenType.HASH, "#");
1615 }
1616 void test_hexidecimal() {
1617 assertToken(TokenType.HEXADECIMAL, "0x1A2B3C");
1618 }
1619 void test_hexidecimal_missingDigit() {
1620 assertError(ScannerErrorCode.MISSING_HEX_DIGIT, 1, "0x");
1621 }
1622 void test_identifier() {
1623 assertToken(TokenType.IDENTIFIER, "result");
1624 }
1625 void test_illegalChar() {
1626 assertError(ScannerErrorCode.ILLEGAL_CHARACTER, 0, "\u0312");
1627 }
1628 void test_index() {
1629 assertToken(TokenType.INDEX, "[]");
1630 }
1631 void test_index_eq() {
1632 assertToken(TokenType.INDEX_EQ, "[]=");
1633 }
1634 void test_int() {
1635 assertToken(TokenType.INT, "123");
1636 }
1637 void test_int_initialZero() {
1638 assertToken(TokenType.INT, "0123");
1639 }
1640 void test_keyword_abstract() {
1641 assertKeywordToken("abstract");
1642 }
1643 void test_keyword_as() {
1644 assertKeywordToken("as");
1645 }
1646 void test_keyword_assert() {
1647 assertKeywordToken("assert");
1648 }
1649 void test_keyword_break() {
1650 assertKeywordToken("break");
1651 }
1652 void test_keyword_case() {
1653 assertKeywordToken("case");
1654 }
1655 void test_keyword_catch() {
1656 assertKeywordToken("catch");
1657 }
1658 void test_keyword_class() {
1659 assertKeywordToken("class");
1660 }
1661 void test_keyword_const() {
1662 assertKeywordToken("const");
1663 }
1664 void test_keyword_continue() {
1665 assertKeywordToken("continue");
1666 }
1667 void test_keyword_default() {
1668 assertKeywordToken("default");
1669 }
1670 void test_keyword_do() {
1671 assertKeywordToken("do");
1672 }
1673 void test_keyword_dynamic() {
1674 assertKeywordToken("dynamic");
1675 }
1676 void test_keyword_else() {
1677 assertKeywordToken("else");
1678 }
1679 void test_keyword_export() {
1680 assertKeywordToken("export");
1681 }
1682 void test_keyword_extends() {
1683 assertKeywordToken("extends");
1684 }
1685 void test_keyword_factory() {
1686 assertKeywordToken("factory");
1687 }
1688 void test_keyword_false() {
1689 assertKeywordToken("false");
1690 }
1691 void test_keyword_final() {
1692 assertKeywordToken("final");
1693 }
1694 void test_keyword_finally() {
1695 assertKeywordToken("finally");
1696 }
1697 void test_keyword_for() {
1698 assertKeywordToken("for");
1699 }
1700 void test_keyword_get() {
1701 assertKeywordToken("get");
1702 }
1703 void test_keyword_if() {
1704 assertKeywordToken("if");
1705 }
1706 void test_keyword_implements() {
1707 assertKeywordToken("implements");
1708 }
1709 void test_keyword_import() {
1710 assertKeywordToken("import");
1711 }
1712 void test_keyword_in() {
1713 assertKeywordToken("in");
1714 }
1715 void test_keyword_is() {
1716 assertKeywordToken("is");
1717 }
1718 void test_keyword_library() {
1719 assertKeywordToken("library");
1720 }
1721 void test_keyword_new() {
1722 assertKeywordToken("new");
1723 }
1724 void test_keyword_null() {
1725 assertKeywordToken("null");
1726 }
1727 void test_keyword_operator() {
1728 assertKeywordToken("operator");
1729 }
1730 void test_keyword_part() {
1731 assertKeywordToken("part");
1732 }
1733 void test_keyword_return() {
1734 assertKeywordToken("return");
1735 }
1736 void test_keyword_set() {
1737 assertKeywordToken("set");
1738 }
1739 void test_keyword_static() {
1740 assertKeywordToken("static");
1741 }
1742 void test_keyword_super() {
1743 assertKeywordToken("super");
1744 }
1745 void test_keyword_switch() {
1746 assertKeywordToken("switch");
1747 }
1748 void test_keyword_this() {
1749 assertKeywordToken("this");
1750 }
1751 void test_keyword_throw() {
1752 assertKeywordToken("throw");
1753 }
1754 void test_keyword_true() {
1755 assertKeywordToken("true");
1756 }
1757 void test_keyword_try() {
1758 assertKeywordToken("try");
1759 }
1760 void test_keyword_typedef() {
1761 assertKeywordToken("typedef");
1762 }
1763 void test_keyword_var() {
1764 assertKeywordToken("var");
1765 }
1766 void test_keyword_void() {
1767 assertKeywordToken("void");
1768 }
1769 void test_keyword_while() {
1770 assertKeywordToken("while");
1771 }
1772 void test_keyword_with() {
1773 assertKeywordToken("with");
1774 }
1775 void test_lt() {
1776 assertToken(TokenType.LT, "<");
1777 }
1778 void test_lt_eq() {
1779 assertToken(TokenType.LT_EQ, "<=");
1780 }
1781 void test_lt_lt() {
1782 assertToken(TokenType.LT_LT, "<<");
1783 }
1784 void test_lt_lt_eq() {
1785 assertToken(TokenType.LT_LT_EQ, "<<=");
1786 }
1787 void test_minus() {
1788 assertToken(TokenType.MINUS, "-");
1789 }
1790 void test_minus_eq() {
1791 assertToken(TokenType.MINUS_EQ, "-=");
1792 }
1793 void test_minus_minus() {
1794 assertToken(TokenType.MINUS_MINUS, "--");
1795 }
1796 void test_open_curly_bracket() {
1797 assertToken(TokenType.OPEN_CURLY_BRACKET, "{");
1798 }
1799 void test_open_paren() {
1800 assertToken(TokenType.OPEN_PAREN, "(");
1801 }
1802 void test_open_square_bracket() {
1803 assertToken(TokenType.OPEN_SQUARE_BRACKET, "[");
1804 }
1805 void test_openSquareBracket() {
1806 assertToken(TokenType.OPEN_SQUARE_BRACKET, "[");
1807 }
1808 void test_percent() {
1809 assertToken(TokenType.PERCENT, "%");
1810 }
1811 void test_percent_eq() {
1812 assertToken(TokenType.PERCENT_EQ, "%=");
1813 }
1814 void test_period() {
1815 assertToken(TokenType.PERIOD, ".");
1816 }
1817 void test_period_period() {
1818 assertToken(TokenType.PERIOD_PERIOD, "..");
1819 }
1820 void test_period_period_period() {
1821 assertToken(TokenType.PERIOD_PERIOD_PERIOD, "...");
1822 }
1823 void test_periodAfterNumberNotIncluded_identifier() {
1824 assertTokens("42.isEven()", [new StringToken(TokenType.INT, "42", 0), new To ken(TokenType.PERIOD, 2), new StringToken(TokenType.IDENTIFIER, "isEven", 3), ne w Token(TokenType.OPEN_PAREN, 9), new Token(TokenType.CLOSE_PAREN, 10)]);
1825 }
1826 void test_periodAfterNumberNotIncluded_period() {
1827 assertTokens("42..isEven()", [new StringToken(TokenType.INT, "42", 0), new T oken(TokenType.PERIOD_PERIOD, 2), new StringToken(TokenType.IDENTIFIER, "isEven" , 4), new Token(TokenType.OPEN_PAREN, 10), new Token(TokenType.CLOSE_PAREN, 11)] );
1828 }
1829 void test_plus() {
1830 assertToken(TokenType.PLUS, "+");
1831 }
1832 void test_plus_eq() {
1833 assertToken(TokenType.PLUS_EQ, "+=");
1834 }
1835 void test_plus_plus() {
1836 assertToken(TokenType.PLUS_PLUS, "++");
1837 }
1838 void test_question() {
1839 assertToken(TokenType.QUESTION, "?");
1840 }
1841 void test_scriptTag_withArgs() {
1842 assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart -debug");
1843 }
1844 void test_scriptTag_withoutSpace() {
1845 assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart");
1846 }
1847 void test_scriptTag_withSpace() {
1848 assertToken(TokenType.SCRIPT_TAG, "#! /bin/dart");
1849 }
1850 void test_semicolon() {
1851 assertToken(TokenType.SEMICOLON, ";");
1852 }
1853 void test_slash() {
1854 assertToken(TokenType.SLASH, "/");
1855 }
1856 void test_slash_eq() {
1857 assertToken(TokenType.SLASH_EQ, "/=");
1858 }
1859 void test_star() {
1860 assertToken(TokenType.STAR, "*");
1861 }
1862 void test_star_eq() {
1863 assertToken(TokenType.STAR_EQ, "*=");
1864 }
1865 void test_startAndEnd() {
1866 Token token = scan2("a");
1867 Token previous5 = token.previous;
1868 JUnitTestCase.assertEquals(token, previous5.next);
1869 JUnitTestCase.assertEquals(previous5, previous5.previous);
1870 Token next7 = token.next;
1871 JUnitTestCase.assertEquals(next7, next7.next);
1872 JUnitTestCase.assertEquals(token, next7.previous);
1873 }
1874 void test_string_multi_double() {
1875 assertToken(TokenType.STRING, "\"\"\"multi-line\nstring\"\"\"");
1876 }
1877 void test_string_multi_interpolation_block() {
1878 assertTokens("\"Hello \${name}!\"", [new StringToken(TokenType.STRING, "\"He llo ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 7), new StringToken(TokenType.IDENTIFIER, "name", 9), new Token(TokenType.CLOSE_CUR LY_BRACKET, 13), new StringToken(TokenType.STRING, "!\"", 14)]);
1879 }
1880 void test_string_multi_interpolation_identifier() {
1881 assertTokens("\"Hello \$name!\"", [new StringToken(TokenType.STRING, "\"Hell o ", 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 7), ne w StringToken(TokenType.IDENTIFIER, "name", 8), new StringToken(TokenType.STRING , "!\"", 12)]);
1882 }
1883 void test_string_multi_single() {
1884 assertToken(TokenType.STRING, "'''string'''");
1885 }
1886 void test_string_multi_unterminated() {
1887 assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 8, "'''string");
1888 }
1889 void test_string_raw_multi_double() {
1890 assertToken(TokenType.STRING, "r\"\"\"string\"\"\"");
1891 }
1892 void test_string_raw_multi_single() {
1893 assertToken(TokenType.STRING, "r'''string'''");
1894 }
1895 void test_string_raw_multi_unterminated() {
1896 assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 9, "r'''string");
1897 }
1898 void test_string_raw_simple_double() {
1899 assertToken(TokenType.STRING, "r\"string\"");
1900 }
1901 void test_string_raw_simple_single() {
1902 assertToken(TokenType.STRING, "r'string'");
1903 }
1904 void test_string_raw_simple_unterminated_eof() {
1905 assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 7, "r'string");
1906 }
1907 void test_string_raw_simple_unterminated_eol() {
1908 assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 8, "r'string\n");
1909 }
1910 void test_string_simple_double() {
1911 assertToken(TokenType.STRING, "\"string\"");
1912 }
1913 void test_string_simple_escapedDollar() {
1914 assertToken(TokenType.STRING, "'a\\\$b'");
1915 }
1916 void test_string_simple_interpolation_block() {
1917 assertTokens("'Hello \${name}!'", [new StringToken(TokenType.STRING, "'Hello ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 7), ne w StringToken(TokenType.IDENTIFIER, "name", 9), new Token(TokenType.CLOSE_CURLY_ BRACKET, 13), new StringToken(TokenType.STRING, "!'", 14)]);
1918 }
1919 void test_string_simple_interpolation_blockWithNestedMap() {
1920 assertTokens("'a \${f({'b' : 'c'})} d'", [new StringToken(TokenType.STRING, "'a ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 3), new StringToken(TokenType.IDENTIFIER, "f", 5), new Token(TokenType.OPEN_PAREN, 6), new Token(TokenType.OPEN_CURLY_BRACKET, 7), new StringToken(TokenType.STRING , "'b'", 8), new Token(TokenType.COLON, 12), new StringToken(TokenType.STRING, " 'c'", 14), new Token(TokenType.CLOSE_CURLY_BRACKET, 17), new Token(TokenType.CLO SE_PAREN, 18), new Token(TokenType.CLOSE_CURLY_BRACKET, 19), new StringToken(Tok enType.STRING, " d'", 20)]);
1921 }
1922 void test_string_simple_interpolation_firstAndLast() {
1923 assertTokens("'\$greeting \$name'", [new StringToken(TokenType.STRING, "'", 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 1), new Str ingToken(TokenType.IDENTIFIER, "greeting", 2), new StringToken(TokenType.STRING, " ", 10), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 11), new StringToken(TokenType.IDENTIFIER, "name", 12), new StringToken(TokenType.ST RING, "'", 16)]);
1924 }
1925 void test_string_simple_interpolation_identifier() {
1926 assertTokens("'Hello \$name!'", [new StringToken(TokenType.STRING, "'Hello " , 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 7), new S tringToken(TokenType.IDENTIFIER, "name", 8), new StringToken(TokenType.STRING, " !'", 12)]);
1927 }
1928 void test_string_simple_single() {
1929 assertToken(TokenType.STRING, "'string'");
1930 }
1931 void test_string_simple_unterminated_eof() {
1932 assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 6, "'string");
1933 }
1934 void test_string_simple_unterminated_eol() {
1935 assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 7, "'string\r");
1936 }
1937 void test_tilde() {
1938 assertToken(TokenType.TILDE, "~");
1939 }
1940 void test_tilde_slash() {
1941 assertToken(TokenType.TILDE_SLASH, "~/");
1942 }
1943 void test_tilde_slash_eq() {
1944 assertToken(TokenType.TILDE_SLASH_EQ, "~/=");
1945 }
1946 void test_unclosedPairInInterpolation() {
1947 GatheringErrorListener listener = new GatheringErrorListener();
1948 scan("'\${(}'", listener);
1949 }
1950 Token scan(String source, GatheringErrorListener listener);
1951 void assertComment(TokenType commentType, String source) {
1952 Token token = scan2(source);
1953 JUnitTestCase.assertNotNull(token);
1954 JUnitTestCase.assertEquals(TokenType.EOF, token.type);
1955 Token comment = token.precedingComments;
1956 JUnitTestCase.assertNotNull(comment);
1957 JUnitTestCase.assertEquals(commentType, comment.type);
1958 JUnitTestCase.assertEquals(0, comment.offset);
1959 JUnitTestCase.assertEquals(source.length, comment.length);
1960 JUnitTestCase.assertEquals(source, comment.lexeme);
1961 }
1962 /**
1963 * Assert that scanning the given source produces an error with the given code .
1964 * @param illegalCharacter
1965 * @param i
1966 * @param source the source to be scanned to produce the error
1967 */
1968 void assertError(ScannerErrorCode expectedError, int expectedOffset, String so urce) {
1969 GatheringErrorListener listener = new GatheringErrorListener();
1970 scan(source, listener);
1971 listener.assertErrors([new AnalysisError.con2(null, expectedOffset, 1, expec tedError, [(source.codeUnitAt(expectedOffset) as int)])]);
1972 }
1973 /**
1974 * Assert that when scanned the given source contains a single keyword token w ith the same lexeme
1975 * as the original source.
1976 * @param source the source to be scanned
1977 */
1978 void assertKeywordToken(String source) {
1979 Token token = scan2(source);
1980 JUnitTestCase.assertNotNull(token);
1981 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type);
1982 JUnitTestCase.assertEquals(0, token.offset);
1983 JUnitTestCase.assertEquals(source.length, token.length);
1984 JUnitTestCase.assertEquals(source, token.lexeme);
1985 Object value3 = token.value();
1986 JUnitTestCase.assertTrue(value3 is Keyword);
1987 JUnitTestCase.assertEquals(source, ((value3 as Keyword)).syntax);
1988 token = scan2(" ${source} ");
1989 JUnitTestCase.assertNotNull(token);
1990 JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type);
1991 JUnitTestCase.assertEquals(1, token.offset);
1992 JUnitTestCase.assertEquals(source.length, token.length);
1993 JUnitTestCase.assertEquals(source, token.lexeme);
1994 value3 = token.value();
1995 JUnitTestCase.assertTrue(value3 is Keyword);
1996 JUnitTestCase.assertEquals(source, ((value3 as Keyword)).syntax);
1997 JUnitTestCase.assertEquals(TokenType.EOF, token.next.type);
1998 }
1999 /**
2000 * Assert that the token scanned from the given source has the expected type.
2001 * @param expectedType the expected type of the token
2002 * @param source the source to be scanned to produce the actual token
2003 */
2004 Token assertToken(TokenType expectedType, String source) {
2005 Token originalToken = scan2(source);
2006 JUnitTestCase.assertNotNull(originalToken);
2007 JUnitTestCase.assertEquals(expectedType, originalToken.type);
2008 JUnitTestCase.assertEquals(0, originalToken.offset);
2009 JUnitTestCase.assertEquals(source.length, originalToken.length);
2010 JUnitTestCase.assertEquals(source, originalToken.lexeme);
2011 if (identical(expectedType, TokenType.SCRIPT_TAG)) {
2012 return originalToken;
2013 } else if (identical(expectedType, TokenType.SINGLE_LINE_COMMENT)) {
2014 Token tokenWithSpaces = scan2(" ${source}");
2015 JUnitTestCase.assertNotNull(tokenWithSpaces);
2016 JUnitTestCase.assertEquals(expectedType, tokenWithSpaces.type);
2017 JUnitTestCase.assertEquals(1, tokenWithSpaces.offset);
2018 JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length);
2019 JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme);
2020 return originalToken;
2021 }
2022 Token tokenWithSpaces = scan2(" ${source} ");
2023 JUnitTestCase.assertNotNull(tokenWithSpaces);
2024 JUnitTestCase.assertEquals(expectedType, tokenWithSpaces.type);
2025 JUnitTestCase.assertEquals(1, tokenWithSpaces.offset);
2026 JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length);
2027 JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme);
2028 JUnitTestCase.assertEquals(TokenType.EOF, originalToken.next.type);
2029 return originalToken;
2030 }
2031 /**
2032 * Assert that when scanned the given source contains a sequence of tokens ide ntical to the given
2033 * tokens.
2034 * @param source the source to be scanned
2035 * @param expectedTokens the tokens that are expected to be in the source
2036 */
2037 void assertTokens(String source, List<Token> expectedTokens) {
2038 Token token = scan2(source);
2039 JUnitTestCase.assertNotNull(token);
2040 for (int i = 0; i < expectedTokens.length; i++) {
2041 Token expectedToken = expectedTokens[i];
2042 JUnitTestCase.assertEqualsMsg("Wrong type for token ${i}", expectedToken.t ype, token.type);
2043 JUnitTestCase.assertEqualsMsg("Wrong offset for token ${i}", expectedToken .offset, token.offset);
2044 JUnitTestCase.assertEqualsMsg("Wrong length for token ${i}", expectedToken .length, token.length);
2045 JUnitTestCase.assertEqualsMsg("Wrong lexeme for token ${i}", expectedToken .lexeme, token.lexeme);
2046 token = token.next;
2047 JUnitTestCase.assertNotNull(token);
2048 }
2049 JUnitTestCase.assertEquals(TokenType.EOF, token.type);
2050 }
2051 Token scan2(String source) {
2052 GatheringErrorListener listener = new GatheringErrorListener();
2053 Token token = scan(source, listener);
2054 listener.assertNoErrors();
2055 return token;
2056 }
2057 }
2058 main() {
2059 CharBufferScannerTest.dartSuite();
2060 KeywordStateTest.dartSuite();
2061 StringScannerTest.dartSuite();
2062 TokenTypeTest.dartSuite();
2063 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698