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

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

Issue 2759663002: Improve parsing of async and generator methods. (Closed)
Patch Set: Ignore some error messages already handled by dart2js. Created 3 years, 9 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/front_end/lib/src/fasta/parser/parser.dart ('k') | tests/co19/co19-kernel.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 'keyword.dart' show Keyword; 7 import 'keyword.dart' show Keyword;
8 8
9 import 'precedence.dart' show BAD_INPUT_INFO, EOF_INFO, PrecedenceInfo; 9 import 'precedence.dart' show BAD_INPUT_INFO, EOF_INFO, PrecedenceInfo;
10 10
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 * The precedence level for this token. 89 * The precedence level for this token.
90 */ 90 */
91 int get precedence => info.precedence; 91 int get precedence => info.precedence;
92 92
93 /** 93 /**
94 * True if this token is an identifier. Some keywords allowed as identifiers, 94 * True if this token is an identifier. Some keywords allowed as identifiers,
95 * see implementation in [KeywordToken]. 95 * see implementation in [KeywordToken].
96 */ 96 */
97 bool isIdentifier(); 97 bool isIdentifier();
98 98
99 bool get isPseudo => false;
100
99 /** 101 /**
100 * Returns a textual representation of this token to be used for debugging 102 * Returns a textual representation of this token to be used for debugging
101 * purposes. The resulting string might contain information about the 103 * purposes. The resulting string might contain information about the
102 * structure of the token, for example 'StringToken(foo)' for the identifier 104 * structure of the token, for example 'StringToken(foo)' for the identifier
103 * token 'foo'. 105 * token 'foo'.
104 * 106 *
105 * Use [lexeme] for the text actually parsed by the token. 107 * Use [lexeme] for the text actually parsed by the token.
106 */ 108 */
107 String toString(); 109 String toString();
108 110
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 KeywordToken(this.keyword, int charOffset) : super(charOffset); 173 KeywordToken(this.keyword, int charOffset) : super(charOffset);
172 174
173 PrecedenceInfo get info => keyword.info; 175 PrecedenceInfo get info => keyword.info;
174 176
175 String get lexeme => keyword.syntax; 177 String get lexeme => keyword.syntax;
176 178
177 String get stringValue => keyword.syntax; 179 String get stringValue => keyword.syntax;
178 180
179 bool isIdentifier() => keyword.isPseudo || keyword.isBuiltIn; 181 bool isIdentifier() => keyword.isPseudo || keyword.isBuiltIn;
180 182
183 bool get isPseudo => keyword.isPseudo;
184
181 bool get isBuiltInIdentifier { 185 bool get isBuiltInIdentifier {
182 // TODO(ahe): Remove special case for "deferred" once dartbug.com/29069 is 186 // TODO(ahe): Remove special case for "deferred" once dartbug.com/29069 is
183 // fixed. 187 // fixed.
184 return keyword.isBuiltIn || identical("deferred", lexeme); 188 return keyword.isBuiltIn || identical("deferred", lexeme);
185 } 189 }
186 190
187 String toString() => "KeywordToken($lexeme)"; 191 String toString() => "KeywordToken($lexeme)";
188 } 192 }
189 193
190 /** 194 /**
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 identical(value, "<=") || 382 identical(value, "<=") ||
379 identical(value, "<") || 383 identical(value, "<") ||
380 identical(value, "&") || 384 identical(value, "&") ||
381 identical(value, "^") || 385 identical(value, "^") ||
382 identical(value, "|"); 386 identical(value, "|");
383 } 387 }
384 388
385 bool isTernaryOperator(String value) => identical(value, "[]="); 389 bool isTernaryOperator(String value) => identical(value, "[]=");
386 390
387 bool isMinusOperator(String value) => identical(value, "-"); 391 bool isMinusOperator(String value) => identical(value, "-");
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/parser/parser.dart ('k') | tests/co19/co19-kernel.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698