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

Side by Side Diff: pkg/front_end/test/scanner_fasta_test.dart

Issue 2693403002: Change toAnalyzerTokenStream into a class. (Closed)
Patch Set: Rework Created 3 years, 10 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
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'package:front_end/src/fasta/analyzer/token_utils.dart'; 5 import 'package:front_end/src/fasta/analyzer/token_utils.dart';
6 import 'package:front_end/src/fasta/scanner/error_token.dart' as fasta; 6 import 'package:front_end/src/fasta/scanner/error_token.dart' as fasta;
7 import 'package:front_end/src/fasta/scanner/keyword.dart' as fasta; 7 import 'package:front_end/src/fasta/scanner/keyword.dart' as fasta;
8 import 'package:front_end/src/fasta/scanner/string_scanner.dart' as fasta; 8 import 'package:front_end/src/fasta/scanner/string_scanner.dart' as fasta;
9 import 'package:front_end/src/fasta/scanner/token.dart' as fasta; 9 import 'package:front_end/src/fasta/scanner/token.dart' as fasta;
10 import 'package:front_end/src/fasta/scanner/token_constants.dart' as fasta; 10 import 'package:front_end/src/fasta/scanner/token_constants.dart' as fasta;
(...skipping 23 matching lines...) Expand all
34 // TODO(paulberry): once the analyzer toolchain no longer needs generic 34 // TODO(paulberry): once the analyzer toolchain no longer needs generic
35 // method comments, remove tests that exercise them. 35 // method comments, remove tests that exercise them.
36 fail('No generic method comment support in Fasta'); 36 fail('No generic method comment support in Fasta');
37 } 37 }
38 // Note: Fasta always supports lazy assignment operators (`&&=` and `||=`), 38 // Note: Fasta always supports lazy assignment operators (`&&=` and `||=`),
39 // so we can ignore the `lazyAssignmentOperators` flag. 39 // so we can ignore the `lazyAssignmentOperators` flag.
40 // TODO(paulberry): once lazyAssignmentOperators are fully supported by 40 // TODO(paulberry): once lazyAssignmentOperators are fully supported by
41 // Dart, remove this flag. 41 // Dart, remove this flag.
42 var scanner = new fasta.StringScanner(source, includeComments: true); 42 var scanner = new fasta.StringScanner(source, includeComments: true);
43 var token = scanner.tokenize(); 43 var token = scanner.tokenize();
44 return toAnalyzerTokenStream(token, 44 return new ToAnalyzerTokenStreamConverter_WithListener(listener)
45 (ScannerErrorCode errorCode, int offset, List<Object> arguments) { 45 .convertTokens(token);
46 listener.errors.add(new TestError(offset, errorCode, arguments));
47 });
48 } 46 }
49 47
50 @override 48 @override
51 @failingTest 49 @failingTest
52 void test_ampersand_ampersand_eq() { 50 void test_ampersand_ampersand_eq() {
53 // TODO(paulberry,ahe): Fasta doesn't support `&&=` yet 51 // TODO(paulberry,ahe): Fasta doesn't support `&&=` yet
54 super.test_ampersand_ampersand_eq(); 52 super.test_ampersand_ampersand_eq();
55 } 53 }
56 54
57 @override 55 @override
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 366
369 /// Scanner tests that exercise the Fasta scanner, then convert the tokens to 367 /// Scanner tests that exercise the Fasta scanner, then convert the tokens to
370 /// analyzer tokens, then convert back to Fasta tokens before checking 368 /// analyzer tokens, then convert back to Fasta tokens before checking
371 /// assertions. 369 /// assertions.
372 @reflectiveTest 370 @reflectiveTest
373 class ScannerTest_Fasta_Roundtrip extends ScannerTest_Fasta_Base { 371 class ScannerTest_Fasta_Roundtrip extends ScannerTest_Fasta_Base {
374 @override 372 @override
375 fasta.Token scan(String source) { 373 fasta.Token scan(String source) {
376 var scanner = new fasta.StringScanner(source, includeComments: true); 374 var scanner = new fasta.StringScanner(source, includeComments: true);
377 var fastaTokenStream = scanner.tokenize(); 375 var fastaTokenStream = scanner.tokenize();
378 var analyzerTokenStream = toAnalyzerTokenStream(fastaTokenStream, 376 var analyzerTokenStream = new ToAnalyzerTokenStreamConverter_NoErrors()
379 (ScannerErrorCode errorCode, int offset, List<Object> arguments) { 377 .convertTokens(fastaTokenStream);
380 fail('Unexpected error: $errorCode, $offset, $arguments');
381 });
382 return fromAnalyzerTokenStream(analyzerTokenStream); 378 return fromAnalyzerTokenStream(analyzerTokenStream);
383 } 379 }
384 } 380 }
381
382 /// Override of [ToAnalyzerTokenStreamConverter] that verifies that there are no
383 /// errors.
384 class ToAnalyzerTokenStreamConverter_NoErrors
385 extends ToAnalyzerTokenStreamConverter {
386 @override
387 void reportError(
388 ScannerErrorCode errorCode, int offset, List<Object> arguments) {
389 fail('Unexpected error: $errorCode, $offset, $arguments');
390 }
391 }
392
393 /// Override of [ToAnalyzerTokenStreamConverter] that records errors in an
394 /// [ErrorListener].
395 class ToAnalyzerTokenStreamConverter_WithListener
396 extends ToAnalyzerTokenStreamConverter {
397 final ErrorListener _listener;
398
399 ToAnalyzerTokenStreamConverter_WithListener(this._listener);
400
401 @override
402 void reportError(
403 ScannerErrorCode errorCode, int offset, List<Object> arguments) {
404 _listener.errors.add(new TestError(offset, errorCode, arguments));
405 }
406 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698