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

Unified Diff: pkg/front_end/test/scanner_fasta_test.dart

Issue 2682423003: Unify fasta->analyzer token translation logic. (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/test/scanner_fasta_test.dart
diff --git a/pkg/front_end/test/scanner_fasta_test.dart b/pkg/front_end/test/scanner_fasta_test.dart
index 4d9f955876a072a1ce878c831cd07b7c86c16fff..a359e02684c6acc7bba767a65318f87f92b3af74 100644
--- a/pkg/front_end/test/scanner_fasta_test.dart
+++ b/pkg/front_end/test/scanner_fasta_test.dart
@@ -2,6 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+import 'package:front_end/src/fasta/analyzer/token_utils.dart';
import 'package:front_end/src/fasta/scanner/error_token.dart' as fasta;
import 'package:front_end/src/fasta/scanner/keyword.dart' as fasta;
import 'package:front_end/src/fasta/scanner/string_scanner.dart' as fasta;
@@ -22,59 +23,6 @@ main() {
@reflectiveTest
class ScannerTest_Fasta extends ScannerTestBase {
- final _keywordMap = {
- "assert": Keyword.ASSERT,
- "break": Keyword.BREAK,
- "case": Keyword.CASE,
- "catch": Keyword.CATCH,
- "class": Keyword.CLASS,
- "const": Keyword.CONST,
- "continue": Keyword.CONTINUE,
- "default": Keyword.DEFAULT,
- "do": Keyword.DO,
- "else": Keyword.ELSE,
- "enum": Keyword.ENUM,
- "extends": Keyword.EXTENDS,
- "false": Keyword.FALSE,
- "final": Keyword.FINAL,
- "finally": Keyword.FINALLY,
- "for": Keyword.FOR,
- "if": Keyword.IF,
- "in": Keyword.IN,
- "new": Keyword.NEW,
- "null": Keyword.NULL,
- "rethrow": Keyword.RETHROW,
- "return": Keyword.RETURN,
- "super": Keyword.SUPER,
- "switch": Keyword.SWITCH,
- "this": Keyword.THIS,
- "throw": Keyword.THROW,
- "true": Keyword.TRUE,
- "try": Keyword.TRY,
- "var": Keyword.VAR,
- "void": Keyword.VOID,
- "while": Keyword.WHILE,
- "with": Keyword.WITH,
- "is": Keyword.IS,
- "abstract": Keyword.ABSTRACT,
- "as": Keyword.AS,
- "covariant": Keyword.COVARIANT,
- "dynamic": Keyword.DYNAMIC,
- "export": Keyword.EXPORT,
- "external": Keyword.EXTERNAL,
- "factory": Keyword.FACTORY,
- "get": Keyword.GET,
- "implements": Keyword.IMPLEMENTS,
- "import": Keyword.IMPORT,
- "library": Keyword.LIBRARY,
- "operator": Keyword.OPERATOR,
- "part": Keyword.PART,
- "set": Keyword.SET,
- "static": Keyword.STATIC,
- "typedef": Keyword.TYPEDEF,
- "deferred": Keyword.DEFERRED,
- };
-
@override
Token scanWithListener(String source, ErrorListener listener,
{bool genericMethodComments: false,
@@ -122,7 +70,7 @@ class ScannerTest_Fasta extends ScannerTestBase {
currentCommentTail = translatedToken;
}
} else {
- var translatedToken = _translateToken(token, currentCommentHead);
+ var translatedToken = toAnalyzerToken(token, currentCommentHead);
translatedToken.setNext(translatedToken);
currentCommentHead = currentCommentTail = null;
analyzerTokenTail.setNext(translatedToken);
@@ -329,201 +277,4 @@ class ScannerTest_Fasta extends ScannerTestBase {
throw new UnimplementedError('$errorCode');
}
}
-
- Keyword _translateKeyword(String syntax) =>
- _keywordMap[syntax] ?? (throw new UnimplementedError('$syntax'));
-
- Token _translateToken(fasta.Token token, CommentToken comment) {
- var type = _translateTokenInfoKind(token.info.kind);
- int offset = token.charOffset;
- Token makeStringToken(String value) {
- if (comment == null) {
- return new StringToken(type, value, offset);
- } else {
- return new StringTokenWithComment(type, value, offset, comment);
- }
- }
-
- Token makeKeywordToken(Keyword keyword) {
- if (comment == null) {
- return new KeywordToken(keyword, offset);
- } else {
- return new KeywordTokenWithComment(keyword, offset, comment);
- }
- }
-
- Token makeBeginToken() {
- if (comment == null) {
- return new BeginToken(type, offset);
- } else {
- return new BeginTokenWithComment(type, offset, comment);
- }
- }
-
- if (token is fasta.StringToken) {
- return makeStringToken(token.value);
- } else if (token is fasta.KeywordToken) {
- return makeKeywordToken(_translateKeyword(token.keyword.syntax));
- } else if (token is fasta.SymbolToken) {
- if (token is fasta.BeginGroupToken) {
- if (type == TokenType.LT) {
- return makeStringToken(token.value);
- } else {
- return makeBeginToken();
- }
- } else {
- return makeStringToken(token.value);
- }
- }
- throw new UnimplementedError('${token.runtimeType}');
- }
-
- TokenType _translateTokenInfoKind(int kind) {
- switch (kind) {
- case fasta.EOF_TOKEN:
- return TokenType.EOF;
- case fasta.KEYWORD_TOKEN:
- return TokenType.KEYWORD;
- case fasta.IDENTIFIER_TOKEN:
- return TokenType.IDENTIFIER;
- case fasta.BAD_INPUT_TOKEN:
- return TokenType.STRING;
- case fasta.DOUBLE_TOKEN:
- return TokenType.DOUBLE;
- case fasta.INT_TOKEN:
- return TokenType.INT;
- case fasta.HEXADECIMAL_TOKEN:
- return TokenType.HEXADECIMAL;
- case fasta.STRING_TOKEN:
- return TokenType.STRING;
- case fasta.AMPERSAND_TOKEN:
- return TokenType.AMPERSAND;
- case fasta.BACKPING_TOKEN:
- return TokenType.BACKPING;
- case fasta.BACKSLASH_TOKEN:
- return TokenType.BACKSLASH;
- case fasta.BANG_TOKEN:
- return TokenType.BANG;
- case fasta.BAR_TOKEN:
- return TokenType.BAR;
- case fasta.COLON_TOKEN:
- return TokenType.COLON;
- case fasta.COMMA_TOKEN:
- return TokenType.COMMA;
- case fasta.EQ_TOKEN:
- return TokenType.EQ;
- case fasta.GT_TOKEN:
- return TokenType.GT;
- case fasta.HASH_TOKEN:
- return TokenType.HASH;
- case fasta.OPEN_CURLY_BRACKET_TOKEN:
- return TokenType.OPEN_CURLY_BRACKET;
- case fasta.OPEN_SQUARE_BRACKET_TOKEN:
- return TokenType.OPEN_SQUARE_BRACKET;
- case fasta.OPEN_PAREN_TOKEN:
- return TokenType.OPEN_PAREN;
- case fasta.LT_TOKEN:
- return TokenType.LT;
- case fasta.MINUS_TOKEN:
- return TokenType.MINUS;
- case fasta.PERIOD_TOKEN:
- return TokenType.PERIOD;
- case fasta.PLUS_TOKEN:
- return TokenType.PLUS;
- case fasta.QUESTION_TOKEN:
- return TokenType.QUESTION;
- case fasta.AT_TOKEN:
- return TokenType.AT;
- case fasta.CLOSE_CURLY_BRACKET_TOKEN:
- return TokenType.CLOSE_CURLY_BRACKET;
- case fasta.CLOSE_SQUARE_BRACKET_TOKEN:
- return TokenType.CLOSE_SQUARE_BRACKET;
- case fasta.CLOSE_PAREN_TOKEN:
- return TokenType.CLOSE_PAREN;
- case fasta.SEMICOLON_TOKEN:
- return TokenType.SEMICOLON;
- case fasta.SLASH_TOKEN:
- return TokenType.SLASH;
- case fasta.TILDE_TOKEN:
- return TokenType.TILDE;
- case fasta.STAR_TOKEN:
- return TokenType.STAR;
- case fasta.PERCENT_TOKEN:
- return TokenType.PERCENT;
- case fasta.CARET_TOKEN:
- return TokenType.CARET;
- case fasta.STRING_INTERPOLATION_TOKEN:
- return TokenType.STRING_INTERPOLATION_EXPRESSION;
- case fasta.LT_EQ_TOKEN:
- return TokenType.LT_EQ;
- case fasta.FUNCTION_TOKEN:
- return TokenType.FUNCTION;
- case fasta.SLASH_EQ_TOKEN:
- return TokenType.SLASH_EQ;
- case fasta.PERIOD_PERIOD_PERIOD_TOKEN:
- return TokenType.PERIOD_PERIOD_PERIOD;
- case fasta.PERIOD_PERIOD_TOKEN:
- return TokenType.PERIOD_PERIOD;
- case fasta.EQ_EQ_EQ_TOKEN:
- // TODO(paulberry,ahe): what is this?
- throw new UnimplementedError();
- case fasta.EQ_EQ_TOKEN:
- return TokenType.EQ_EQ;
- case fasta.LT_LT_EQ_TOKEN:
- return TokenType.LT_LT_EQ;
- case fasta.LT_LT_TOKEN:
- return TokenType.LT_LT;
- case fasta.GT_EQ_TOKEN:
- return TokenType.GT_EQ;
- case fasta.GT_GT_EQ_TOKEN:
- return TokenType.GT_GT_EQ;
- case fasta.INDEX_EQ_TOKEN:
- return TokenType.INDEX_EQ;
- case fasta.INDEX_TOKEN:
- return TokenType.INDEX;
- case fasta.BANG_EQ_EQ_TOKEN:
- // TODO(paulberry,ahe): what is this?
- throw new UnimplementedError();
- case fasta.BANG_EQ_TOKEN:
- return TokenType.BANG_EQ;
- case fasta.AMPERSAND_AMPERSAND_TOKEN:
- return TokenType.AMPERSAND_AMPERSAND;
- case fasta.AMPERSAND_EQ_TOKEN:
- return TokenType.AMPERSAND_EQ;
- case fasta.BAR_BAR_TOKEN:
- return TokenType.BAR_BAR;
- case fasta.BAR_EQ_TOKEN:
- return TokenType.BAR_EQ;
- case fasta.STAR_EQ_TOKEN:
- return TokenType.STAR_EQ;
- case fasta.PLUS_PLUS_TOKEN:
- return TokenType.PLUS_PLUS;
- case fasta.PLUS_EQ_TOKEN:
- return TokenType.PLUS_EQ;
- case fasta.MINUS_MINUS_TOKEN:
- return TokenType.MINUS_MINUS;
- case fasta.MINUS_EQ_TOKEN:
- return TokenType.MINUS_EQ;
- case fasta.TILDE_SLASH_EQ_TOKEN:
- return TokenType.TILDE_SLASH_EQ;
- case fasta.TILDE_SLASH_TOKEN:
- return TokenType.TILDE_SLASH;
- case fasta.PERCENT_EQ_TOKEN:
- return TokenType.PERCENT_EQ;
- case fasta.GT_GT_TOKEN:
- return TokenType.GT_GT;
- case fasta.CARET_EQ_TOKEN:
- return TokenType.CARET_EQ;
- case fasta.STRING_INTERPOLATION_IDENTIFIER_TOKEN:
- return TokenType.STRING_INTERPOLATION_IDENTIFIER;
- case fasta.QUESTION_PERIOD_TOKEN:
- return TokenType.QUESTION_PERIOD;
- case fasta.QUESTION_QUESTION_TOKEN:
- return TokenType.QUESTION_QUESTION;
- case fasta.QUESTION_QUESTION_EQ_TOKEN:
- return TokenType.QUESTION_QUESTION_EQ;
- default:
- throw new UnimplementedError('$kind');
- }
- }
}

Powered by Google App Engine
This is Rietveld 408576698