| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |