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

Unified Diff: pkg/fasta/lib/src/analyzer/token_utils.dart

Issue 2632663002: Fasta analyzer AST builder. (Closed)
Patch Set: Address review comments. Created 3 years, 11 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
« no previous file with comments | « pkg/fasta/lib/src/analyzer/mock_type.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/fasta/lib/src/analyzer/token_utils.dart
diff --git a/pkg/fasta/lib/src/analyzer/token_utils.dart b/pkg/fasta/lib/src/analyzer/token_utils.dart
new file mode 100644
index 0000000000000000000000000000000000000000..b7b1d9ef817edc99986624bfe178808f99928f1e
--- /dev/null
+++ b/pkg/fasta/lib/src/analyzer/token_utils.dart
@@ -0,0 +1,129 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// 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.
+
+library fasta.analyzer.token_utils;
+
+import 'package:dart_scanner/src/token.dart' show
+ Token;
+
+import 'package:dart_scanner/src/token_constants.dart';
+
+import 'package:analyzer/dart/ast/token.dart' as analyzer show
+ Token;
+
+import 'package:analyzer/dart/ast/token.dart' show
+ TokenType;
+
+import 'package:analyzer/src/dart/ast/token.dart' as analyzer show
+ StringToken;
+
+import '../errors.dart' show
+ internalError;
+
+analyzer.Token toAnalyzerToken(Token token) {
+ if (token == null) return null;
+ switch (token.kind) {
+ case STRING_TOKEN:
+ return new analyzer.StringToken(
+ TokenType.STRING, token.value, token.charOffset);
+
+ case IDENTIFIER_TOKEN:
+ return new analyzer.StringToken(
+ TokenType.IDENTIFIER, token.value, token.charOffset);
+
+ case INT_TOKEN:
+ return new analyzer.StringToken(
+ TokenType.INT, token.value, token.charOffset);
+
+ default:
+ return new analyzer.Token(getTokenType(token), token.charOffset);
+ }
+}
+
+TokenType getTokenType(Token token) {
+ switch (token.kind) {
+ case EOF_TOKEN: return TokenType.EOF;
+ case DOUBLE_TOKEN: return TokenType.DOUBLE;
+ case HEXADECIMAL_TOKEN: return TokenType.HEXADECIMAL;
+ case IDENTIFIER_TOKEN: return TokenType.IDENTIFIER;
+ case INT_TOKEN: return TokenType.INT;
+ case KEYWORD_TOKEN: return TokenType.KEYWORD;
+ // case MULTI_LINE_COMMENT_TOKEN: return TokenType.MULTI_LINE_COMMENT;
+ // case SCRIPT_TAG_TOKEN: return TokenType.SCRIPT_TAG;
+ // case SINGLE_LINE_COMMENT_TOKEN: return TokenType.SINGLE_LINE_COMMENT;
+ case STRING_TOKEN: return TokenType.STRING;
+ case AMPERSAND_TOKEN: return TokenType.AMPERSAND;
+ case AMPERSAND_AMPERSAND_TOKEN: return TokenType.AMPERSAND_AMPERSAND;
+ // case AMPERSAND_AMPERSAND_EQ_TOKEN:
+ // return TokenType.AMPERSAND_AMPERSAND_EQ;
+ case AMPERSAND_EQ_TOKEN: return TokenType.AMPERSAND_EQ;
+ case AT_TOKEN: return TokenType.AT;
+ case BANG_TOKEN: return TokenType.BANG;
+ case BANG_EQ_TOKEN: return TokenType.BANG_EQ;
+ case BAR_TOKEN: return TokenType.BAR;
+ case BAR_BAR_TOKEN: return TokenType.BAR_BAR;
+ // case BAR_BAR_EQ_TOKEN: return TokenType.BAR_BAR_EQ;
+ case BAR_EQ_TOKEN: return TokenType.BAR_EQ;
+ case COLON_TOKEN: return TokenType.COLON;
+ case COMMA_TOKEN: return TokenType.COMMA;
+ case CARET_TOKEN: return TokenType.CARET;
+ case CARET_EQ_TOKEN: return TokenType.CARET_EQ;
+ case CLOSE_CURLY_BRACKET_TOKEN: return TokenType.CLOSE_CURLY_BRACKET;
+ case CLOSE_PAREN_TOKEN: return TokenType.CLOSE_PAREN;
+ case CLOSE_SQUARE_BRACKET_TOKEN: return TokenType.CLOSE_SQUARE_BRACKET;
+ case EQ_TOKEN: return TokenType.EQ;
+ case EQ_EQ_TOKEN: return TokenType.EQ_EQ;
+ case FUNCTION_TOKEN: return TokenType.FUNCTION;
+ case GT_TOKEN: return TokenType.GT;
+ case GT_EQ_TOKEN: return TokenType.GT_EQ;
+ case GT_GT_TOKEN: return TokenType.GT_GT;
+ case GT_GT_EQ_TOKEN: return TokenType.GT_GT_EQ;
+ case HASH_TOKEN: return TokenType.HASH;
+ case INDEX_TOKEN: return TokenType.INDEX;
+ case INDEX_EQ_TOKEN: return TokenType.INDEX_EQ;
+ // case IS_TOKEN: return TokenType.IS;
+ case LT_TOKEN: return TokenType.LT;
+ case LT_EQ_TOKEN: return TokenType.LT_EQ;
+ case LT_LT_TOKEN: return TokenType.LT_LT;
+ case LT_LT_EQ_TOKEN: return TokenType.LT_LT_EQ;
+ case MINUS_TOKEN: return TokenType.MINUS;
+ case MINUS_EQ_TOKEN: return TokenType.MINUS_EQ;
+ case MINUS_MINUS_TOKEN: return TokenType.MINUS_MINUS;
+ case OPEN_CURLY_BRACKET_TOKEN: return TokenType.OPEN_CURLY_BRACKET;
+ case OPEN_PAREN_TOKEN: return TokenType.OPEN_PAREN;
+ case OPEN_SQUARE_BRACKET_TOKEN: return TokenType.OPEN_SQUARE_BRACKET;
+ case PERCENT_TOKEN: return TokenType.PERCENT;
+ case PERCENT_EQ_TOKEN: return TokenType.PERCENT_EQ;
+ case PERIOD_TOKEN: return TokenType.PERIOD;
+ case PERIOD_PERIOD_TOKEN: return TokenType.PERIOD_PERIOD;
+ case PLUS_TOKEN: return TokenType.PLUS;
+ case PLUS_EQ_TOKEN: return TokenType.PLUS_EQ;
+ case PLUS_PLUS_TOKEN: return TokenType.PLUS_PLUS;
+ case QUESTION_TOKEN: return TokenType.QUESTION;
+ case QUESTION_PERIOD_TOKEN: return TokenType.QUESTION_PERIOD;
+ case QUESTION_QUESTION_TOKEN: return TokenType.QUESTION_QUESTION;
+ case QUESTION_QUESTION_EQ_TOKEN: return TokenType.QUESTION_QUESTION_EQ;
+ case SEMICOLON_TOKEN: return TokenType.SEMICOLON;
+ case SLASH_TOKEN: return TokenType.SLASH;
+ case SLASH_EQ_TOKEN: return TokenType.SLASH_EQ;
+ case STAR_TOKEN: return TokenType.STAR;
+ case STAR_EQ_TOKEN: return TokenType.STAR_EQ;
+ // case STRING_INTERPOLATION_EXPRESSION_TOKEN:
+ // return TokenType.STRING_INTERPOLATION_EXPRESSION;
+ case STRING_INTERPOLATION_IDENTIFIER_TOKEN:
+ return TokenType.STRING_INTERPOLATION_IDENTIFIER;
+ case TILDE_TOKEN: return TokenType.TILDE;
+ case TILDE_SLASH_TOKEN: return TokenType.TILDE_SLASH;
+ case TILDE_SLASH_EQ_TOKEN: return TokenType.TILDE_SLASH_EQ;
+ case BACKPING_TOKEN: return TokenType.BACKPING;
+ case BACKSLASH_TOKEN: return TokenType.BACKSLASH;
+ case PERIOD_PERIOD_PERIOD_TOKEN: return TokenType.PERIOD_PERIOD_PERIOD;
+ // case GENERIC_METHOD_TYPE_LIST_TOKEN:
+ // return TokenType.GENERIC_METHOD_TYPE_LIST;
+ // case GENERIC_METHOD_TYPE_ASSIGN_TOKEN:
+ // return TokenType.GENERIC_METHOD_TYPE_ASSIGN;
+ default:
+ return internalError("Unhandled token ${token.info}");
+ }
+}
« no previous file with comments | « pkg/fasta/lib/src/analyzer/mock_type.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698