OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 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 | 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 /** | 5 /** |
6 * Defines the tokens that are produced by the scanner, used by the parser, and | 6 * Defines the tokens that are produced by the scanner, used by the parser, and |
7 * referenced from the [AST structure](ast.dart). | 7 * referenced from the [AST structure](ast.dart). |
8 */ | 8 */ |
9 import 'dart:collection'; | 9 import 'dart:collection'; |
10 | 10 |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 VOID, | 301 VOID, |
302 WHILE, | 302 WHILE, |
303 WITH, | 303 WITH, |
304 ]; | 304 ]; |
305 | 305 |
306 /** | 306 /** |
307 * A table mapping the lexemes of keywords to the corresponding keyword. | 307 * A table mapping the lexemes of keywords to the corresponding keyword. |
308 */ | 308 */ |
309 static final Map<String, Keyword> keywords = _createKeywordMap(); | 309 static final Map<String, Keyword> keywords = _createKeywordMap(); |
310 | 310 |
| 311 final fasta.PrecedenceInfo info; |
| 312 |
| 313 /** |
| 314 * A flag indicating whether the keyword is "built-in" identifier. |
| 315 */ |
| 316 final bool isBuiltIn; |
| 317 |
| 318 /** |
| 319 * A flag indicating whether the keyword can be used as an identifier |
| 320 * in some situations. |
| 321 */ |
| 322 final bool isPseudo; |
| 323 |
| 324 /** |
| 325 * The lexeme for the keyword. |
| 326 */ |
| 327 final String syntax; |
| 328 |
| 329 /** |
| 330 * Initialize a newly created keyword. |
| 331 */ |
| 332 const Keyword(this.syntax, |
| 333 {this.isBuiltIn: false, |
| 334 this.isPseudo: false, |
| 335 this.info: fasta.KEYWORD_INFO}); |
| 336 |
| 337 /** |
| 338 * A flag indicating whether the keyword is "built-in" identifier. |
| 339 * This method exists for backward compatibility and will be removed. |
| 340 * Use [isBuiltIn] instead. |
| 341 */ |
| 342 @deprecated |
| 343 bool get isPseudoKeyword => isBuiltIn; // TODO (danrubel): remove this |
| 344 |
311 /** | 345 /** |
312 * The name of the keyword type. | 346 * The name of the keyword type. |
313 */ | 347 */ |
314 String get name; | 348 String get name => syntax.toUpperCase(); |
315 | 349 |
316 /** | 350 @override |
317 * The lexeme for the keyword. | 351 String toString() => name; |
318 */ | |
319 String get syntax; | |
320 | |
321 /** | |
322 * A flag indicating whether the keyword is a pseudo-keyword. Pseudo keywords | |
323 * can be used as identifiers. | |
324 */ | |
325 bool get isPseudoKeyword; | |
326 | 352 |
327 /** | 353 /** |
328 * Create a table mapping the lexemes of keywords to the corresponding keyword | 354 * Create a table mapping the lexemes of keywords to the corresponding keyword |
329 * and return the table that was created. | 355 * and return the table that was created. |
330 */ | 356 */ |
331 static Map<String, Keyword> _createKeywordMap() { | 357 static Map<String, Keyword> _createKeywordMap() { |
332 LinkedHashMap<String, Keyword> result = | 358 LinkedHashMap<String, Keyword> result = |
333 new LinkedHashMap<String, Keyword>(); | 359 new LinkedHashMap<String, Keyword>(); |
334 for (Keyword keyword in values) { | 360 for (Keyword keyword in values) { |
335 result[keyword.syntax] = keyword; | 361 result[keyword.syntax] = keyword; |
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1190 | 1216 |
1191 void set precedingComments(CommentToken comment) { | 1217 void set precedingComments(CommentToken comment) { |
1192 _precedingComment = comment; | 1218 _precedingComment = comment; |
1193 _setCommentParent(_precedingComment); | 1219 _setCommentParent(_precedingComment); |
1194 } | 1220 } |
1195 | 1221 |
1196 @override | 1222 @override |
1197 Token copy() => | 1223 Token copy() => |
1198 new TokenWithComment(type, offset, copyComments(precedingComments)); | 1224 new TokenWithComment(type, offset, copyComments(precedingComments)); |
1199 } | 1225 } |
OLD | NEW |