| Index: pkg/front_end/test/scanner_roundtrip_test.dart
|
| diff --git a/pkg/front_end/test/scanner_roundtrip_test.dart b/pkg/front_end/test/scanner_roundtrip_test.dart
|
| index 8867917810935871fb29e195d7ea7f39119ce6d3..b598481b02c37ffa45f7cdf979fa3f3cae93319d 100644
|
| --- a/pkg/front_end/test/scanner_roundtrip_test.dart
|
| +++ b/pkg/front_end/test/scanner_roundtrip_test.dart
|
| @@ -3,9 +3,10 @@
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| import 'package:analyzer/src/fasta/token_utils.dart';
|
| -import 'package:front_end/src/fasta/scanner/precedence.dart';
|
| +import 'package:front_end/src/scanner/errors.dart' as analyzer;
|
| +import 'package:front_end/src/scanner/reader.dart' as analyzer;
|
| +import 'package:front_end/src/scanner/scanner.dart' as analyzer;
|
| import 'package:front_end/src/scanner/token.dart';
|
| -import 'package:front_end/src/fasta/scanner/string_scanner.dart';
|
| import 'package:test/test.dart';
|
| import 'package:test_reflective_loader/test_reflective_loader.dart';
|
|
|
| @@ -119,158 +120,15 @@ class ScannerTest_RoundTrip extends ScannerTest {
|
| reason: keyword.name);
|
| }
|
| }
|
| +}
|
|
|
| - var allTokenTypes = new Set<TokenType>.from([
|
| - TokenType.EOF,
|
| - TokenType.DOUBLE,
|
| - TokenType.HEXADECIMAL,
|
| - TokenType.IDENTIFIER,
|
| - TokenType.INT,
|
| - TokenType.KEYWORD,
|
| - TokenType.MULTI_LINE_COMMENT,
|
| - TokenType.SCRIPT_TAG,
|
| - TokenType.SINGLE_LINE_COMMENT,
|
| - TokenType.STRING,
|
| - TokenType.AMPERSAND,
|
| - TokenType.AMPERSAND_AMPERSAND,
|
| - TokenType.AMPERSAND_AMPERSAND_EQ,
|
| - TokenType.AMPERSAND_EQ,
|
| - TokenType.AT,
|
| - TokenType.BANG,
|
| - TokenType.BANG_EQ,
|
| - TokenType.BAR,
|
| - TokenType.BAR_BAR,
|
| - TokenType.BAR_BAR_EQ,
|
| - TokenType.BAR_EQ,
|
| - TokenType.COLON,
|
| - TokenType.COMMA,
|
| - TokenType.CARET,
|
| - TokenType.CARET_EQ,
|
| - TokenType.CLOSE_CURLY_BRACKET,
|
| - TokenType.CLOSE_PAREN,
|
| - TokenType.CLOSE_SQUARE_BRACKET,
|
| - TokenType.EQ,
|
| - TokenType.EQ_EQ,
|
| - TokenType.FUNCTION,
|
| - TokenType.GT,
|
| - TokenType.GT_EQ,
|
| - TokenType.GT_GT,
|
| - TokenType.GT_GT_EQ,
|
| - TokenType.HASH,
|
| - TokenType.INDEX,
|
| - TokenType.INDEX_EQ,
|
| - TokenType.LT,
|
| - TokenType.LT_EQ,
|
| - TokenType.LT_LT,
|
| - TokenType.LT_LT_EQ,
|
| - TokenType.MINUS,
|
| - TokenType.MINUS_EQ,
|
| - TokenType.MINUS_MINUS,
|
| - TokenType.OPEN_CURLY_BRACKET,
|
| - TokenType.OPEN_PAREN,
|
| - TokenType.OPEN_SQUARE_BRACKET,
|
| - TokenType.PERCENT,
|
| - TokenType.PERCENT_EQ,
|
| - TokenType.PERIOD,
|
| - TokenType.PERIOD_PERIOD,
|
| - TokenType.PLUS,
|
| - TokenType.PLUS_EQ,
|
| - TokenType.PLUS_PLUS,
|
| - TokenType.QUESTION,
|
| - TokenType.QUESTION_PERIOD,
|
| - TokenType.QUESTION_QUESTION,
|
| - TokenType.QUESTION_QUESTION_EQ,
|
| - TokenType.SEMICOLON,
|
| - TokenType.SLASH,
|
| - TokenType.SLASH_EQ,
|
| - TokenType.STAR,
|
| - TokenType.STAR_EQ,
|
| - TokenType.STRING_INTERPOLATION_EXPRESSION,
|
| - TokenType.STRING_INTERPOLATION_IDENTIFIER,
|
| - TokenType.TILDE,
|
| - TokenType.TILDE_SLASH,
|
| - TokenType.TILDE_SLASH_EQ,
|
| - TokenType.BACKPING,
|
| - TokenType.BACKSLASH,
|
| - TokenType.PERIOD_PERIOD_PERIOD,
|
| - TokenType.GENERIC_METHOD_TYPE_LIST,
|
| - TokenType.GENERIC_METHOD_TYPE_ASSIGN,
|
| - ]);
|
| -
|
| - void test_isOperator() {
|
| - var operatorTokenTypes = new Set<TokenType>.from([
|
| - TokenType.AMPERSAND,
|
| - TokenType.AMPERSAND_AMPERSAND,
|
| - TokenType.AMPERSAND_AMPERSAND_EQ,
|
| - TokenType.AMPERSAND_EQ,
|
| - TokenType.BANG,
|
| - TokenType.BANG_EQ,
|
| - TokenType.BAR,
|
| - TokenType.BAR_BAR,
|
| - TokenType.BAR_BAR_EQ,
|
| - TokenType.BAR_EQ,
|
| - TokenType.CARET,
|
| - TokenType.CARET_EQ,
|
| - TokenType.EQ,
|
| - TokenType.EQ_EQ,
|
| - TokenType.GT,
|
| - TokenType.GT_EQ,
|
| - TokenType.GT_GT,
|
| - TokenType.GT_GT_EQ,
|
| - TokenType.INDEX,
|
| - TokenType.INDEX_EQ,
|
| - TokenType.LT,
|
| - TokenType.LT_EQ,
|
| - TokenType.LT_LT,
|
| - TokenType.LT_LT_EQ,
|
| - TokenType.MINUS,
|
| - TokenType.MINUS_EQ,
|
| - TokenType.MINUS_MINUS,
|
| - TokenType.PERCENT,
|
| - TokenType.PERCENT_EQ,
|
| - TokenType.PERIOD_PERIOD,
|
| - TokenType.PLUS,
|
| - TokenType.PLUS_EQ,
|
| - TokenType.PLUS_PLUS,
|
| - TokenType.QUESTION,
|
| - TokenType.QUESTION_PERIOD,
|
| - TokenType.QUESTION_QUESTION,
|
| - TokenType.QUESTION_QUESTION_EQ,
|
| - TokenType.SLASH,
|
| - TokenType.SLASH_EQ,
|
| - TokenType.STAR,
|
| - TokenType.STAR_EQ,
|
| - TokenType.TILDE,
|
| - TokenType.TILDE_SLASH,
|
| - TokenType.TILDE_SLASH_EQ,
|
| - ]);
|
| -
|
| - void assertIsOperator(String source, bool isOperator) {
|
| - if (source == null || source.isEmpty) return;
|
| - var scanner = new StringScanner(source, includeComments: true);
|
| - var token = scanner.tokenize();
|
| - expect(token.isOperator, isOperator, reason: source);
|
| - }
|
| -
|
| - var operatorLexemes =
|
| - new Set.from(operatorTokenTypes.map((tt) => tt.lexeme));
|
| -
|
| - for (PrecedenceInfo info in PrecedenceInfo.all) {
|
| - assertIsOperator(info.value, operatorLexemes.contains(info.value));
|
| - }
|
| -
|
| - for (TokenType tt in new List.from(allTokenTypes)) {
|
| - assertIsOperator(tt.lexeme, operatorTokenTypes.contains(tt));
|
| - }
|
| - }
|
| +class TestScanner extends analyzer.Scanner {
|
| + TestScanner(analyzer.CharacterReader reader) : super(reader);
|
|
|
| - void test_precedence() {
|
| - for (TokenType tt in allTokenTypes) {
|
| - for (PrecedenceInfo info in PrecedenceInfo.all) {
|
| - if (info.value == tt.lexeme || info.value == tt.name.toLowerCase()) {
|
| - expect(tt.precedence, info.precedence, reason: tt.name);
|
| - }
|
| - }
|
| - }
|
| + @override
|
| + void reportError(
|
| + analyzer.ScannerErrorCode errorCode, int offset, List<Object> arguments) {
|
| + fail('Unexpected error $errorCode while scanning offset $offset\n'
|
| + ' arguments: $arguments');
|
| }
|
| }
|
|
|