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

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

Issue 2799133003: enhance analyzer to parse uppercase and built-in/pseudo keywords (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 8
9 import 'keyword.dart' show Keyword; 9 import 'keyword.dart' show Keyword;
10 10
11 import 'precedence.dart' 11 import 'precedence.dart'
12 show 12 show
13 AS_INFO, 13 AS_INFO,
14 BAD_INPUT_INFO, 14 BAD_INPUT_INFO,
15 EOF_INFO, 15 EOF_INFO,
16 IDENTIFIER_INFO,
17 IS_INFO, 16 IS_INFO,
18 KEYWORD_INFO, 17 KEYWORD_INFO,
19 PrecedenceInfo; 18 PrecedenceInfo;
20 19
21 import 'token_constants.dart' show IDENTIFIER_TOKEN; 20 import 'token_constants.dart' show IDENTIFIER_TOKEN;
22 21
23 import 'string_canonicalizer.dart'; 22 import 'string_canonicalizer.dart';
24 23
25 /** 24 /**
26 * A token that doubles as a linked list. 25 * A token that doubles as a linked list.
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 bool get isPseudo => keyword.isPseudo; 350 bool get isPseudo => keyword.isPseudo;
352 351
353 bool get isBuiltInIdentifier => keyword.isBuiltIn; 352 bool get isBuiltInIdentifier => keyword.isBuiltIn;
354 353
355 String toString() => "KeywordToken($lexeme)"; 354 String toString() => "KeywordToken($lexeme)";
356 355
357 @override 356 @override
358 Token copyWithoutComments() => new KeywordToken(keyword, charOffset); 357 Token copyWithoutComments() => new KeywordToken(keyword, charOffset);
359 358
360 @override 359 @override
361 // Analyzer considers pseudo-keywords to have a different value 360 Keyword value() => keyword;
362 Object value() => isPseudo ? lexeme : keyword;
363 361
364 @override 362 @override
365 // Analyzer considers pseudo-keywords to be identifiers 363 analyzer.TokenType get type => KEYWORD_INFO;
366 analyzer.TokenType get type => isPseudo ? IDENTIFIER_INFO : KEYWORD_INFO;
367 } 364 }
368 365
369 /** 366 /**
370 * A synthetic keyword token. 367 * A synthetic keyword token.
371 */ 368 */
372 class SyntheticKeywordToken extends KeywordToken 369 class SyntheticKeywordToken extends KeywordToken
373 implements analyzer.SyntheticKeywordToken { 370 implements analyzer.SyntheticKeywordToken {
374 /** 371 /**
375 * Initialize a newly created token to represent the given [keyword] at the 372 * Initialize a newly created token to represent the given [keyword] at the
376 * given [offset]. 373 * given [offset].
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 identical(value, "<=") || 690 identical(value, "<=") ||
694 identical(value, "<") || 691 identical(value, "<") ||
695 identical(value, "&") || 692 identical(value, "&") ||
696 identical(value, "^") || 693 identical(value, "^") ||
697 identical(value, "|"); 694 identical(value, "|");
698 } 695 }
699 696
700 bool isTernaryOperator(String value) => identical(value, "[]="); 697 bool isTernaryOperator(String value) => identical(value, "[]=");
701 698
702 bool isMinusOperator(String value) => identical(value, "-"); 699 bool isMinusOperator(String value) => identical(value, "-");
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698