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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « pkg/fasta/lib/src/analyzer/mock_type.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
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.
4
5 library fasta.analyzer.token_utils;
6
7 import 'package:dart_scanner/src/token.dart' show
8 Token;
9
10 import 'package:dart_scanner/src/token_constants.dart';
11
12 import 'package:analyzer/dart/ast/token.dart' as analyzer show
13 Token;
14
15 import 'package:analyzer/dart/ast/token.dart' show
16 TokenType;
17
18 import 'package:analyzer/src/dart/ast/token.dart' as analyzer show
19 StringToken;
20
21 import '../errors.dart' show
22 internalError;
23
24 analyzer.Token toAnalyzerToken(Token token) {
25 if (token == null) return null;
26 switch (token.kind) {
27 case STRING_TOKEN:
28 return new analyzer.StringToken(
29 TokenType.STRING, token.value, token.charOffset);
30
31 case IDENTIFIER_TOKEN:
32 return new analyzer.StringToken(
33 TokenType.IDENTIFIER, token.value, token.charOffset);
34
35 case INT_TOKEN:
36 return new analyzer.StringToken(
37 TokenType.INT, token.value, token.charOffset);
38
39 default:
40 return new analyzer.Token(getTokenType(token), token.charOffset);
41 }
42 }
43
44 TokenType getTokenType(Token token) {
45 switch (token.kind) {
46 case EOF_TOKEN: return TokenType.EOF;
47 case DOUBLE_TOKEN: return TokenType.DOUBLE;
48 case HEXADECIMAL_TOKEN: return TokenType.HEXADECIMAL;
49 case IDENTIFIER_TOKEN: return TokenType.IDENTIFIER;
50 case INT_TOKEN: return TokenType.INT;
51 case KEYWORD_TOKEN: return TokenType.KEYWORD;
52 // case MULTI_LINE_COMMENT_TOKEN: return TokenType.MULTI_LINE_COMMENT;
53 // case SCRIPT_TAG_TOKEN: return TokenType.SCRIPT_TAG;
54 // case SINGLE_LINE_COMMENT_TOKEN: return TokenType.SINGLE_LINE_COMMENT;
55 case STRING_TOKEN: return TokenType.STRING;
56 case AMPERSAND_TOKEN: return TokenType.AMPERSAND;
57 case AMPERSAND_AMPERSAND_TOKEN: return TokenType.AMPERSAND_AMPERSAND;
58 // case AMPERSAND_AMPERSAND_EQ_TOKEN:
59 // return TokenType.AMPERSAND_AMPERSAND_EQ;
60 case AMPERSAND_EQ_TOKEN: return TokenType.AMPERSAND_EQ;
61 case AT_TOKEN: return TokenType.AT;
62 case BANG_TOKEN: return TokenType.BANG;
63 case BANG_EQ_TOKEN: return TokenType.BANG_EQ;
64 case BAR_TOKEN: return TokenType.BAR;
65 case BAR_BAR_TOKEN: return TokenType.BAR_BAR;
66 // case BAR_BAR_EQ_TOKEN: return TokenType.BAR_BAR_EQ;
67 case BAR_EQ_TOKEN: return TokenType.BAR_EQ;
68 case COLON_TOKEN: return TokenType.COLON;
69 case COMMA_TOKEN: return TokenType.COMMA;
70 case CARET_TOKEN: return TokenType.CARET;
71 case CARET_EQ_TOKEN: return TokenType.CARET_EQ;
72 case CLOSE_CURLY_BRACKET_TOKEN: return TokenType.CLOSE_CURLY_BRACKET;
73 case CLOSE_PAREN_TOKEN: return TokenType.CLOSE_PAREN;
74 case CLOSE_SQUARE_BRACKET_TOKEN: return TokenType.CLOSE_SQUARE_BRACKET;
75 case EQ_TOKEN: return TokenType.EQ;
76 case EQ_EQ_TOKEN: return TokenType.EQ_EQ;
77 case FUNCTION_TOKEN: return TokenType.FUNCTION;
78 case GT_TOKEN: return TokenType.GT;
79 case GT_EQ_TOKEN: return TokenType.GT_EQ;
80 case GT_GT_TOKEN: return TokenType.GT_GT;
81 case GT_GT_EQ_TOKEN: return TokenType.GT_GT_EQ;
82 case HASH_TOKEN: return TokenType.HASH;
83 case INDEX_TOKEN: return TokenType.INDEX;
84 case INDEX_EQ_TOKEN: return TokenType.INDEX_EQ;
85 // case IS_TOKEN: return TokenType.IS;
86 case LT_TOKEN: return TokenType.LT;
87 case LT_EQ_TOKEN: return TokenType.LT_EQ;
88 case LT_LT_TOKEN: return TokenType.LT_LT;
89 case LT_LT_EQ_TOKEN: return TokenType.LT_LT_EQ;
90 case MINUS_TOKEN: return TokenType.MINUS;
91 case MINUS_EQ_TOKEN: return TokenType.MINUS_EQ;
92 case MINUS_MINUS_TOKEN: return TokenType.MINUS_MINUS;
93 case OPEN_CURLY_BRACKET_TOKEN: return TokenType.OPEN_CURLY_BRACKET;
94 case OPEN_PAREN_TOKEN: return TokenType.OPEN_PAREN;
95 case OPEN_SQUARE_BRACKET_TOKEN: return TokenType.OPEN_SQUARE_BRACKET;
96 case PERCENT_TOKEN: return TokenType.PERCENT;
97 case PERCENT_EQ_TOKEN: return TokenType.PERCENT_EQ;
98 case PERIOD_TOKEN: return TokenType.PERIOD;
99 case PERIOD_PERIOD_TOKEN: return TokenType.PERIOD_PERIOD;
100 case PLUS_TOKEN: return TokenType.PLUS;
101 case PLUS_EQ_TOKEN: return TokenType.PLUS_EQ;
102 case PLUS_PLUS_TOKEN: return TokenType.PLUS_PLUS;
103 case QUESTION_TOKEN: return TokenType.QUESTION;
104 case QUESTION_PERIOD_TOKEN: return TokenType.QUESTION_PERIOD;
105 case QUESTION_QUESTION_TOKEN: return TokenType.QUESTION_QUESTION;
106 case QUESTION_QUESTION_EQ_TOKEN: return TokenType.QUESTION_QUESTION_EQ;
107 case SEMICOLON_TOKEN: return TokenType.SEMICOLON;
108 case SLASH_TOKEN: return TokenType.SLASH;
109 case SLASH_EQ_TOKEN: return TokenType.SLASH_EQ;
110 case STAR_TOKEN: return TokenType.STAR;
111 case STAR_EQ_TOKEN: return TokenType.STAR_EQ;
112 // case STRING_INTERPOLATION_EXPRESSION_TOKEN:
113 // return TokenType.STRING_INTERPOLATION_EXPRESSION;
114 case STRING_INTERPOLATION_IDENTIFIER_TOKEN:
115 return TokenType.STRING_INTERPOLATION_IDENTIFIER;
116 case TILDE_TOKEN: return TokenType.TILDE;
117 case TILDE_SLASH_TOKEN: return TokenType.TILDE_SLASH;
118 case TILDE_SLASH_EQ_TOKEN: return TokenType.TILDE_SLASH_EQ;
119 case BACKPING_TOKEN: return TokenType.BACKPING;
120 case BACKSLASH_TOKEN: return TokenType.BACKSLASH;
121 case PERIOD_PERIOD_PERIOD_TOKEN: return TokenType.PERIOD_PERIOD_PERIOD;
122 // case GENERIC_METHOD_TYPE_LIST_TOKEN:
123 // return TokenType.GENERIC_METHOD_TYPE_LIST;
124 // case GENERIC_METHOD_TYPE_ASSIGN_TOKEN:
125 // return TokenType.GENERIC_METHOD_TYPE_ASSIGN;
126 default:
127 return internalError("Unhandled token ${token.info}");
128 }
129 }
OLDNEW
« 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