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

Side by Side Diff: pkg/front_end/lib/src/fasta/scanner/token.dart

Issue 2842643004: flatten Keyword into TokenType (Closed)
Patch Set: Created 3 years, 8 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
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library fasta.scanner.token; 5 library fasta.scanner.token;
6 6
7 import '../../scanner/token.dart' as analyzer; 7 import '../../scanner/token.dart' as analyzer;
8 import '../../scanner/token.dart' show TokenType; 8 import '../../scanner/token.dart' show TokenType;
9 9
10 import 'token_constants.dart' show IDENTIFIER_TOKEN; 10 import 'token_constants.dart' show IDENTIFIER_TOKEN;
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 135
136 bool get isBuiltInIdentifier => false; 136 bool get isBuiltInIdentifier => false;
137 137
138 @override 138 @override
139 bool get isOperator => info.isOperator; 139 bool get isOperator => info.isOperator;
140 140
141 @override 141 @override
142 bool get isUserDefinableOperator => info.isUserDefinableOperator; 142 bool get isUserDefinableOperator => info.isUserDefinableOperator;
143 143
144 @override 144 @override
145 analyzer.TokenType get type { 145 analyzer.TokenType get type => info;
146 // Analyzer has a different concept of what is a Keyword type.
147 return info == TokenType.AS || info == TokenType.IS
148 ? TokenType.KEYWORD
149 : info;
150 }
151 146
152 @override 147 @override
153 int get offset => charOffset; 148 int get offset => charOffset;
154 149
155 @override 150 @override
156 set offset(int newOffset) { 151 set offset(int newOffset) {
157 charOffset = newOffset; 152 charOffset = newOffset;
158 } 153 }
159 154
160 @override 155 @override
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 } 318 }
324 319
325 /** 320 /**
326 * A keyword token. 321 * A keyword token.
327 */ 322 */
328 class KeywordToken extends Token implements analyzer.KeywordTokenWithComment { 323 class KeywordToken extends Token implements analyzer.KeywordTokenWithComment {
329 final analyzer.Keyword keyword; 324 final analyzer.Keyword keyword;
330 325
331 KeywordToken(this.keyword, int charOffset) : super(charOffset); 326 KeywordToken(this.keyword, int charOffset) : super(charOffset);
332 327
333 TokenType get info => keyword.info; 328 TokenType get info => keyword;
334 329
335 String get lexeme => keyword.syntax; 330 String get lexeme => keyword.lexeme;
336 331
337 String get stringValue => keyword.syntax; 332 String get stringValue => keyword.lexeme;
338 333
339 bool isIdentifier() => keyword.isPseudo || keyword.isBuiltIn; 334 bool isIdentifier() => keyword.isPseudo || keyword.isBuiltIn;
340 335
341 bool get isPseudo => keyword.isPseudo; 336 bool get isPseudo => keyword.isPseudo;
342 337
343 bool get isBuiltInIdentifier => keyword.isBuiltIn; 338 bool get isBuiltInIdentifier => keyword.isBuiltIn;
344 339
345 String toString() => "KeywordToken($lexeme)"; 340 String toString() => "KeywordToken($lexeme)";
346 341
347 @override 342 @override
348 Token copyWithoutComments() => new KeywordToken(keyword, charOffset); 343 Token copyWithoutComments() => new KeywordToken(keyword, charOffset);
349 344
350 @override 345 @override
351 analyzer.Keyword value() => keyword; 346 analyzer.Keyword value() => keyword;
352 347
353 @override 348 @override
354 analyzer.TokenType get type => TokenType.KEYWORD; 349 analyzer.TokenType get type => keyword;
355 } 350 }
356 351
357 /** 352 /**
358 * A synthetic keyword token. 353 * A synthetic keyword token.
359 */ 354 */
360 class SyntheticKeywordToken extends KeywordToken 355 class SyntheticKeywordToken extends KeywordToken
361 implements analyzer.SyntheticKeywordToken { 356 implements analyzer.SyntheticKeywordToken {
362 /** 357 /**
363 * Initialize a newly created token to represent the given [keyword] at the 358 * Initialize a newly created token to represent the given [keyword] at the
364 * given [offset]. 359 * given [offset].
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 identical(value, "<=") || 677 identical(value, "<=") ||
683 identical(value, "<") || 678 identical(value, "<") ||
684 identical(value, "&") || 679 identical(value, "&") ||
685 identical(value, "^") || 680 identical(value, "^") ||
686 identical(value, "|"); 681 identical(value, "|");
687 } 682 }
688 683
689 bool isTernaryOperator(String value) => identical(value, "[]="); 684 bool isTernaryOperator(String value) => identical(value, "[]=");
690 685
691 bool isMinusOperator(String value) => identical(value, "-"); 686 bool isMinusOperator(String value) => identical(value, "-");
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/scanner/keyword_state.dart ('k') | pkg/front_end/lib/src/scanner/scanner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698