| OLD | NEW |
| 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 const int EOF_TOKEN = 0; | 5 const int EOF_TOKEN = 0; |
| 6 | 6 |
| 7 const int KEYWORD_TOKEN = $k; | 7 const int KEYWORD_TOKEN = $k; |
| 8 const int IDENTIFIER_TOKEN = $a; | 8 const int IDENTIFIER_TOKEN = $a; |
| 9 const int BAD_INPUT_TOKEN = $X; | 9 const int BAD_INPUT_TOKEN = $X; |
| 10 const int DOUBLE_TOKEN = $d; | 10 const int DOUBLE_TOKEN = $d; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 const int FUNCTION_TOKEN = LT_EQ_TOKEN + 1; | 46 const int FUNCTION_TOKEN = LT_EQ_TOKEN + 1; |
| 47 const int SLASH_EQ_TOKEN = FUNCTION_TOKEN + 1; | 47 const int SLASH_EQ_TOKEN = FUNCTION_TOKEN + 1; |
| 48 const int PERIOD_PERIOD_PERIOD_TOKEN = SLASH_EQ_TOKEN + 1; | 48 const int PERIOD_PERIOD_PERIOD_TOKEN = SLASH_EQ_TOKEN + 1; |
| 49 const int PERIOD_PERIOD_TOKEN = PERIOD_PERIOD_PERIOD_TOKEN + 1; | 49 const int PERIOD_PERIOD_TOKEN = PERIOD_PERIOD_PERIOD_TOKEN + 1; |
| 50 const int EQ_EQ_EQ_TOKEN = PERIOD_PERIOD_TOKEN + 1; | 50 const int EQ_EQ_EQ_TOKEN = PERIOD_PERIOD_TOKEN + 1; |
| 51 const int EQ_EQ_TOKEN = EQ_EQ_EQ_TOKEN + 1; | 51 const int EQ_EQ_TOKEN = EQ_EQ_EQ_TOKEN + 1; |
| 52 const int LT_LT_EQ_TOKEN = EQ_EQ_TOKEN + 1; | 52 const int LT_LT_EQ_TOKEN = EQ_EQ_TOKEN + 1; |
| 53 const int LT_LT_TOKEN = LT_LT_EQ_TOKEN + 1; | 53 const int LT_LT_TOKEN = LT_LT_EQ_TOKEN + 1; |
| 54 const int GT_EQ_TOKEN = LT_LT_TOKEN + 1; | 54 const int GT_EQ_TOKEN = LT_LT_TOKEN + 1; |
| 55 const int GT_GT_EQ_TOKEN = GT_EQ_TOKEN + 1; | 55 const int GT_GT_EQ_TOKEN = GT_EQ_TOKEN + 1; |
| 56 const int GT_GT_GT_EQ_TOKEN = GT_GT_EQ_TOKEN + 1; | 56 const int INDEX_EQ_TOKEN = GT_GT_EQ_TOKEN + 1; |
| 57 const int INDEX_EQ_TOKEN = GT_GT_GT_EQ_TOKEN + 1; | |
| 58 const int INDEX_TOKEN = INDEX_EQ_TOKEN + 1; | 57 const int INDEX_TOKEN = INDEX_EQ_TOKEN + 1; |
| 59 const int BANG_EQ_EQ_TOKEN = INDEX_TOKEN + 1; | 58 const int BANG_EQ_EQ_TOKEN = INDEX_TOKEN + 1; |
| 60 const int BANG_EQ_TOKEN = BANG_EQ_EQ_TOKEN + 1; | 59 const int BANG_EQ_TOKEN = BANG_EQ_EQ_TOKEN + 1; |
| 61 const int AMPERSAND_AMPERSAND_TOKEN = BANG_EQ_TOKEN + 1; | 60 const int AMPERSAND_AMPERSAND_TOKEN = BANG_EQ_TOKEN + 1; |
| 62 const int AMPERSAND_EQ_TOKEN = AMPERSAND_AMPERSAND_TOKEN + 1; | 61 const int AMPERSAND_EQ_TOKEN = AMPERSAND_AMPERSAND_TOKEN + 1; |
| 63 const int BAR_BAR_TOKEN = AMPERSAND_EQ_TOKEN + 1; | 62 const int BAR_BAR_TOKEN = AMPERSAND_EQ_TOKEN + 1; |
| 64 const int BAR_EQ_TOKEN = BAR_BAR_TOKEN + 1; | 63 const int BAR_EQ_TOKEN = BAR_BAR_TOKEN + 1; |
| 65 const int STAR_EQ_TOKEN = BAR_EQ_TOKEN + 1; | 64 const int STAR_EQ_TOKEN = BAR_EQ_TOKEN + 1; |
| 66 const int PLUS_PLUS_TOKEN = STAR_EQ_TOKEN + 1; | 65 const int PLUS_PLUS_TOKEN = STAR_EQ_TOKEN + 1; |
| 67 const int PLUS_EQ_TOKEN = PLUS_PLUS_TOKEN + 1; | 66 const int PLUS_EQ_TOKEN = PLUS_PLUS_TOKEN + 1; |
| 68 const int MINUS_MINUS_TOKEN = PLUS_EQ_TOKEN + 1; | 67 const int MINUS_MINUS_TOKEN = PLUS_EQ_TOKEN + 1; |
| 69 const int MINUS_EQ_TOKEN = MINUS_MINUS_TOKEN + 1; | 68 const int MINUS_EQ_TOKEN = MINUS_MINUS_TOKEN + 1; |
| 70 const int TILDE_SLASH_EQ_TOKEN = MINUS_EQ_TOKEN + 1; | 69 const int TILDE_SLASH_EQ_TOKEN = MINUS_EQ_TOKEN + 1; |
| 71 const int TILDE_SLASH_TOKEN = TILDE_SLASH_EQ_TOKEN + 1; | 70 const int TILDE_SLASH_TOKEN = TILDE_SLASH_EQ_TOKEN + 1; |
| 72 const int PERCENT_EQ_TOKEN = TILDE_SLASH_TOKEN + 1; | 71 const int PERCENT_EQ_TOKEN = TILDE_SLASH_TOKEN + 1; |
| 73 const int GT_GT_TOKEN = PERCENT_EQ_TOKEN + 1; | 72 const int GT_GT_TOKEN = PERCENT_EQ_TOKEN + 1; |
| 74 const int CARET_EQ_TOKEN = GT_GT_TOKEN + 1; | 73 const int CARET_EQ_TOKEN = GT_GT_TOKEN + 1; |
| 75 const int IS_TOKEN = CARET_EQ_TOKEN + 1; | 74 const int IS_TOKEN = CARET_EQ_TOKEN + 1; |
| 76 const int AS_TOKEN = IS_TOKEN + 1; | 75 const int AS_TOKEN = IS_TOKEN + 1; |
| 77 const int COMMENT_TOKEN = AS_TOKEN + 1; | 76 const int COMMENT_TOKEN = AS_TOKEN + 1; |
| 78 const int GT_GT_GT_TOKEN = COMMENT_TOKEN + 1; | |
| 79 const int STRING_INTERPOLATION_IDENTIFIER_TOKEN = COMMENT_TOKEN + 1; | 77 const int STRING_INTERPOLATION_IDENTIFIER_TOKEN = COMMENT_TOKEN + 1; |
| 80 | 78 |
| 81 // TODO(ahe): Get rid of this. | 79 // TODO(ahe): Get rid of this. |
| 82 const int UNKNOWN_TOKEN = 1024; | 80 const int UNKNOWN_TOKEN = 1024; |
| 83 | 81 |
| 84 /** | 82 /** |
| 85 * A token that doubles as a linked list. | 83 * A token that doubles as a linked list. |
| 86 */ | 84 */ |
| 87 class Token { | 85 class Token { |
| 88 /** | 86 /** |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 (value === '~') || | 261 (value === '~') || |
| 264 (value === '[]') || | 262 (value === '[]') || |
| 265 (value === '[]=') || | 263 (value === '[]=') || |
| 266 (value === '*') || | 264 (value === '*') || |
| 267 (value === '/') || | 265 (value === '/') || |
| 268 (value === '%') || | 266 (value === '%') || |
| 269 (value === '~/') || | 267 (value === '~/') || |
| 270 (value === '+') || | 268 (value === '+') || |
| 271 (value === '-') || | 269 (value === '-') || |
| 272 (value === '<<') || | 270 (value === '<<') || |
| 273 (value === '>>>') || | |
| 274 (value === '>>') || | 271 (value === '>>') || |
| 275 (value === '>=') || | 272 (value === '>=') || |
| 276 (value === '>') || | 273 (value === '>') || |
| 277 (value === '<=') || | 274 (value === '<=') || |
| 278 (value === '<') || | 275 (value === '<') || |
| 279 (value === '&') || | 276 (value === '&') || |
| 280 (value === '^') || | 277 (value === '^') || |
| 281 (value === '|'); | 278 (value === '|'); |
| 282 } | 279 } |
| 283 | 280 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 ASSIGNMENT_PRECEDENCE, BAR_EQ_TOKEN); | 345 ASSIGNMENT_PRECEDENCE, BAR_EQ_TOKEN); |
| 349 const PrecedenceInfo CARET_EQ_INFO = | 346 const PrecedenceInfo CARET_EQ_INFO = |
| 350 const PrecedenceInfo(const SourceString('^='), | 347 const PrecedenceInfo(const SourceString('^='), |
| 351 ASSIGNMENT_PRECEDENCE, CARET_EQ_TOKEN); | 348 ASSIGNMENT_PRECEDENCE, CARET_EQ_TOKEN); |
| 352 const PrecedenceInfo EQ_INFO = | 349 const PrecedenceInfo EQ_INFO = |
| 353 const PrecedenceInfo(const SourceString('='), | 350 const PrecedenceInfo(const SourceString('='), |
| 354 ASSIGNMENT_PRECEDENCE, EQ_TOKEN); | 351 ASSIGNMENT_PRECEDENCE, EQ_TOKEN); |
| 355 const PrecedenceInfo GT_GT_EQ_INFO = | 352 const PrecedenceInfo GT_GT_EQ_INFO = |
| 356 const PrecedenceInfo(const SourceString('>>='), | 353 const PrecedenceInfo(const SourceString('>>='), |
| 357 ASSIGNMENT_PRECEDENCE, GT_GT_EQ_TOKEN); | 354 ASSIGNMENT_PRECEDENCE, GT_GT_EQ_TOKEN); |
| 358 const PrecedenceInfo GT_GT_GT_EQ_INFO = | |
| 359 const PrecedenceInfo(const SourceString('>>>='), | |
| 360 ASSIGNMENT_PRECEDENCE, GT_GT_GT_EQ_TOKEN); | |
| 361 const PrecedenceInfo LT_LT_EQ_INFO = | 355 const PrecedenceInfo LT_LT_EQ_INFO = |
| 362 const PrecedenceInfo(const SourceString('<<='), | 356 const PrecedenceInfo(const SourceString('<<='), |
| 363 ASSIGNMENT_PRECEDENCE, LT_LT_EQ_TOKEN); | 357 ASSIGNMENT_PRECEDENCE, LT_LT_EQ_TOKEN); |
| 364 const PrecedenceInfo MINUS_EQ_INFO = | 358 const PrecedenceInfo MINUS_EQ_INFO = |
| 365 const PrecedenceInfo(const SourceString('-='), | 359 const PrecedenceInfo(const SourceString('-='), |
| 366 ASSIGNMENT_PRECEDENCE, MINUS_EQ_TOKEN); | 360 ASSIGNMENT_PRECEDENCE, MINUS_EQ_TOKEN); |
| 367 const PrecedenceInfo PERCENT_EQ_INFO = | 361 const PrecedenceInfo PERCENT_EQ_INFO = |
| 368 const PrecedenceInfo(const SourceString('%='), | 362 const PrecedenceInfo(const SourceString('%='), |
| 369 ASSIGNMENT_PRECEDENCE, PERCENT_EQ_TOKEN); | 363 ASSIGNMENT_PRECEDENCE, PERCENT_EQ_TOKEN); |
| 370 const PrecedenceInfo PLUS_EQ_INFO = | 364 const PrecedenceInfo PLUS_EQ_INFO = |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 const PrecedenceInfo IS_INFO = | 410 const PrecedenceInfo IS_INFO = |
| 417 const PrecedenceInfo(const SourceString('is'), 10, IS_TOKEN); | 411 const PrecedenceInfo(const SourceString('is'), 10, IS_TOKEN); |
| 418 const PrecedenceInfo AS_INFO = | 412 const PrecedenceInfo AS_INFO = |
| 419 const PrecedenceInfo(const SourceString('as'), 10, AS_TOKEN); | 413 const PrecedenceInfo(const SourceString('as'), 10, AS_TOKEN); |
| 420 const PrecedenceInfo LT_EQ_INFO = | 414 const PrecedenceInfo LT_EQ_INFO = |
| 421 const PrecedenceInfo(const SourceString('<='), 10, LT_EQ_TOKEN); | 415 const PrecedenceInfo(const SourceString('<='), 10, LT_EQ_TOKEN); |
| 422 const PrecedenceInfo LT_INFO = | 416 const PrecedenceInfo LT_INFO = |
| 423 const PrecedenceInfo(const SourceString('<'), 10, LT_TOKEN); | 417 const PrecedenceInfo(const SourceString('<'), 10, LT_TOKEN); |
| 424 | 418 |
| 425 // Shift operators. | 419 // Shift operators. |
| 426 const PrecedenceInfo GT_GT_GT_INFO = | |
| 427 const PrecedenceInfo(const SourceString('>>>'), 11, GT_GT_GT_TOKEN); | |
| 428 const PrecedenceInfo GT_GT_INFO = | 420 const PrecedenceInfo GT_GT_INFO = |
| 429 const PrecedenceInfo(const SourceString('>>'), 11, GT_GT_TOKEN); | 421 const PrecedenceInfo(const SourceString('>>'), 11, GT_GT_TOKEN); |
| 430 const PrecedenceInfo LT_LT_INFO = | 422 const PrecedenceInfo LT_LT_INFO = |
| 431 const PrecedenceInfo(const SourceString('<<'), 11, LT_LT_TOKEN); | 423 const PrecedenceInfo(const SourceString('<<'), 11, LT_LT_TOKEN); |
| 432 | 424 |
| 433 // Additive operators. | 425 // Additive operators. |
| 434 const PrecedenceInfo MINUS_INFO = | 426 const PrecedenceInfo MINUS_INFO = |
| 435 const PrecedenceInfo(const SourceString('-'), 12, MINUS_TOKEN); | 427 const PrecedenceInfo(const SourceString('-'), 12, MINUS_TOKEN); |
| 436 const PrecedenceInfo PLUS_INFO = | 428 const PrecedenceInfo PLUS_INFO = |
| 437 const PrecedenceInfo(const SourceString('+'), 12, PLUS_TOKEN); | 429 const PrecedenceInfo(const SourceString('+'), 12, PLUS_TOKEN); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 | 495 |
| 504 const PrecedenceInfo HEXADECIMAL_INFO = | 496 const PrecedenceInfo HEXADECIMAL_INFO = |
| 505 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN); | 497 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN); |
| 506 | 498 |
| 507 const PrecedenceInfo COMMENT_INFO = | 499 const PrecedenceInfo COMMENT_INFO = |
| 508 const PrecedenceInfo(const SourceString('comment'), 0, COMMENT_TOKEN); | 500 const PrecedenceInfo(const SourceString('comment'), 0, COMMENT_TOKEN); |
| 509 | 501 |
| 510 // For reporting lexical errors. | 502 // For reporting lexical errors. |
| 511 const PrecedenceInfo ERROR_INFO = | 503 const PrecedenceInfo ERROR_INFO = |
| 512 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN); | 504 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN); |
| OLD | NEW |