| 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}");
|
| + }
|
| +}
|
|
|