| 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 final int EOF_TOKEN = 0; | 5 const int EOF_TOKEN = 0; |
| 6 | 6 |
| 7 final int KEYWORD_TOKEN = $k; | 7 const int KEYWORD_TOKEN = $k; |
| 8 final int IDENTIFIER_TOKEN = $a; | 8 const int IDENTIFIER_TOKEN = $a; |
| 9 final int DOUBLE_TOKEN = $d; | 9 const int DOUBLE_TOKEN = $d; |
| 10 final int INT_TOKEN = $i; | 10 const int INT_TOKEN = $i; |
| 11 final int HEXADECIMAL_TOKEN = $x; | 11 const int HEXADECIMAL_TOKEN = $x; |
| 12 final int STRING_TOKEN = $SQ; | 12 const int STRING_TOKEN = $SQ; |
| 13 | 13 |
| 14 final int AMPERSAND_TOKEN = $AMPERSAND; | 14 const int AMPERSAND_TOKEN = $AMPERSAND; |
| 15 final int BACKPING_TOKEN = $BACKPING; | 15 const int BACKPING_TOKEN = $BACKPING; |
| 16 final int BACKSLASH_TOKEN = $BACKSLASH; | 16 const int BACKSLASH_TOKEN = $BACKSLASH; |
| 17 final int BANG_TOKEN = $BANG; | 17 const int BANG_TOKEN = $BANG; |
| 18 final int BAR_TOKEN = $BAR; | 18 const int BAR_TOKEN = $BAR; |
| 19 final int COLON_TOKEN = $COLON; | 19 const int COLON_TOKEN = $COLON; |
| 20 final int COMMA_TOKEN = $COMMA; | 20 const int COMMA_TOKEN = $COMMA; |
| 21 final int EQ_TOKEN = $EQ; | 21 const int EQ_TOKEN = $EQ; |
| 22 final int GT_TOKEN = $GT; | 22 const int GT_TOKEN = $GT; |
| 23 final int HASH_TOKEN = $HASH; | 23 const int HASH_TOKEN = $HASH; |
| 24 final int OPEN_CURLY_BRACKET_TOKEN = $OPEN_CURLY_BRACKET; | 24 const int OPEN_CURLY_BRACKET_TOKEN = $OPEN_CURLY_BRACKET; |
| 25 final int OPEN_SQUARE_BRACKET_TOKEN = $OPEN_SQUARE_BRACKET; | 25 const int OPEN_SQUARE_BRACKET_TOKEN = $OPEN_SQUARE_BRACKET; |
| 26 final int OPEN_PAREN_TOKEN = $OPEN_PAREN; | 26 const int OPEN_PAREN_TOKEN = $OPEN_PAREN; |
| 27 final int LT_TOKEN = $LT; | 27 const int LT_TOKEN = $LT; |
| 28 final int MINUS_TOKEN = $MINUS; | 28 const int MINUS_TOKEN = $MINUS; |
| 29 final int PERIOD_TOKEN = $PERIOD; | 29 const int PERIOD_TOKEN = $PERIOD; |
| 30 final int PLUS_TOKEN = $PLUS; | 30 const int PLUS_TOKEN = $PLUS; |
| 31 final int QUESTION_TOKEN = $QUESTION; | 31 const int QUESTION_TOKEN = $QUESTION; |
| 32 final int AT_TOKEN = $AT; | 32 const int AT_TOKEN = $AT; |
| 33 final int CLOSE_CURLY_BRACKET_TOKEN = $CLOSE_CURLY_BRACKET; | 33 const int CLOSE_CURLY_BRACKET_TOKEN = $CLOSE_CURLY_BRACKET; |
| 34 final int CLOSE_SQUARE_BRACKET_TOKEN = $CLOSE_SQUARE_BRACKET; | 34 const int CLOSE_SQUARE_BRACKET_TOKEN = $CLOSE_SQUARE_BRACKET; |
| 35 final int CLOSE_PAREN_TOKEN = $CLOSE_PAREN; | 35 const int CLOSE_PAREN_TOKEN = $CLOSE_PAREN; |
| 36 final int SEMICOLON_TOKEN = $SEMICOLON; | 36 const int SEMICOLON_TOKEN = $SEMICOLON; |
| 37 final int SLASH_TOKEN = $SLASH; | 37 const int SLASH_TOKEN = $SLASH; |
| 38 final int TILDE_TOKEN = $TILDE; | 38 const int TILDE_TOKEN = $TILDE; |
| 39 final int STAR_TOKEN = $STAR; | 39 const int STAR_TOKEN = $STAR; |
| 40 final int PERCENT_TOKEN = $PERCENT; | 40 const int PERCENT_TOKEN = $PERCENT; |
| 41 final int CARET_TOKEN = $CARET; | 41 const int CARET_TOKEN = $CARET; |
| 42 | 42 |
| 43 final int STRING_INTERPOLATION_TOKEN = 128; | 43 const int STRING_INTERPOLATION_TOKEN = 128; |
| 44 final int LT_EQ_TOKEN = STRING_INTERPOLATION_TOKEN + 1; | 44 const int LT_EQ_TOKEN = STRING_INTERPOLATION_TOKEN + 1; |
| 45 final int FUNCTION_TOKEN = LT_EQ_TOKEN + 1; | 45 const int FUNCTION_TOKEN = LT_EQ_TOKEN + 1; |
| 46 final int SLASH_EQ_TOKEN = FUNCTION_TOKEN + 1; | 46 const int SLASH_EQ_TOKEN = FUNCTION_TOKEN + 1; |
| 47 final int PERIOD_PERIOD_PERIOD_TOKEN = SLASH_EQ_TOKEN + 1; | 47 const int PERIOD_PERIOD_PERIOD_TOKEN = SLASH_EQ_TOKEN + 1; |
| 48 final int PERIOD_PERIOD_TOKEN = PERIOD_PERIOD_PERIOD_TOKEN + 1; | 48 const int PERIOD_PERIOD_TOKEN = PERIOD_PERIOD_PERIOD_TOKEN + 1; |
| 49 final int EQ_EQ_EQ_TOKEN = PERIOD_PERIOD_TOKEN + 1; | 49 const int EQ_EQ_EQ_TOKEN = PERIOD_PERIOD_TOKEN + 1; |
| 50 final int EQ_EQ_TOKEN = EQ_EQ_EQ_TOKEN + 1; | 50 const int EQ_EQ_TOKEN = EQ_EQ_EQ_TOKEN + 1; |
| 51 final int LT_LT_EQ_TOKEN = EQ_EQ_TOKEN + 1; | 51 const int LT_LT_EQ_TOKEN = EQ_EQ_TOKEN + 1; |
| 52 final int LT_LT_TOKEN = LT_LT_EQ_TOKEN + 1; | 52 const int LT_LT_TOKEN = LT_LT_EQ_TOKEN + 1; |
| 53 final int GT_EQ_TOKEN = LT_LT_TOKEN + 1; | 53 const int GT_EQ_TOKEN = LT_LT_TOKEN + 1; |
| 54 final int GT_GT_EQ_TOKEN = GT_EQ_TOKEN + 1; | 54 const int GT_GT_EQ_TOKEN = GT_EQ_TOKEN + 1; |
| 55 final int GT_GT_GT_EQ_TOKEN = GT_GT_EQ_TOKEN + 1; | 55 const int GT_GT_GT_EQ_TOKEN = GT_GT_EQ_TOKEN + 1; |
| 56 final int INDEX_EQ_TOKEN = GT_GT_GT_EQ_TOKEN + 1; | 56 const int INDEX_EQ_TOKEN = GT_GT_GT_EQ_TOKEN + 1; |
| 57 final int INDEX_TOKEN = INDEX_EQ_TOKEN + 1; | 57 const int INDEX_TOKEN = INDEX_EQ_TOKEN + 1; |
| 58 final int BANG_EQ_EQ_TOKEN = INDEX_TOKEN + 1; | 58 const int BANG_EQ_EQ_TOKEN = INDEX_TOKEN + 1; |
| 59 final int BANG_EQ_TOKEN = BANG_EQ_EQ_TOKEN + 1; | 59 const int BANG_EQ_TOKEN = BANG_EQ_EQ_TOKEN + 1; |
| 60 final int AMPERSAND_AMPERSAND_TOKEN = BANG_EQ_TOKEN + 1; | 60 const int AMPERSAND_AMPERSAND_TOKEN = BANG_EQ_TOKEN + 1; |
| 61 final int AMPERSAND_EQ_TOKEN = AMPERSAND_AMPERSAND_TOKEN + 1; | 61 const int AMPERSAND_EQ_TOKEN = AMPERSAND_AMPERSAND_TOKEN + 1; |
| 62 final int BAR_BAR_TOKEN = AMPERSAND_EQ_TOKEN + 1; | 62 const int BAR_BAR_TOKEN = AMPERSAND_EQ_TOKEN + 1; |
| 63 final int BAR_EQ_TOKEN = BAR_BAR_TOKEN + 1; | 63 const int BAR_EQ_TOKEN = BAR_BAR_TOKEN + 1; |
| 64 final int STAR_EQ_TOKEN = BAR_EQ_TOKEN + 1; | 64 const int STAR_EQ_TOKEN = BAR_EQ_TOKEN + 1; |
| 65 final int PLUS_PLUS_TOKEN = STAR_EQ_TOKEN + 1; | 65 const int PLUS_PLUS_TOKEN = STAR_EQ_TOKEN + 1; |
| 66 final int PLUS_EQ_TOKEN = PLUS_PLUS_TOKEN + 1; | 66 const int PLUS_EQ_TOKEN = PLUS_PLUS_TOKEN + 1; |
| 67 final int MINUS_MINUS_TOKEN = PLUS_EQ_TOKEN + 1; | 67 const int MINUS_MINUS_TOKEN = PLUS_EQ_TOKEN + 1; |
| 68 final int MINUS_EQ_TOKEN = MINUS_MINUS_TOKEN + 1; | 68 const int MINUS_EQ_TOKEN = MINUS_MINUS_TOKEN + 1; |
| 69 final int TILDE_SLASH_EQ_TOKEN = MINUS_EQ_TOKEN + 1; | 69 const int TILDE_SLASH_EQ_TOKEN = MINUS_EQ_TOKEN + 1; |
| 70 final int TILDE_SLASH_TOKEN = TILDE_SLASH_EQ_TOKEN + 1; | 70 const int TILDE_SLASH_TOKEN = TILDE_SLASH_EQ_TOKEN + 1; |
| 71 final int PERCENT_EQ_TOKEN = TILDE_SLASH_TOKEN + 1; | 71 const int PERCENT_EQ_TOKEN = TILDE_SLASH_TOKEN + 1; |
| 72 final int GT_GT_TOKEN = PERCENT_EQ_TOKEN + 1; | 72 const int GT_GT_TOKEN = PERCENT_EQ_TOKEN + 1; |
| 73 final int CARET_EQ_TOKEN = GT_GT_TOKEN + 1; | 73 const int CARET_EQ_TOKEN = GT_GT_TOKEN + 1; |
| 74 final int IS_TOKEN = CARET_EQ_TOKEN + 1; | 74 const int IS_TOKEN = CARET_EQ_TOKEN + 1; |
| 75 final int AS_TOKEN = IS_TOKEN + 1; | 75 const int AS_TOKEN = IS_TOKEN + 1; |
| 76 final int COMMENT_TOKEN = AS_TOKEN + 1; | 76 const int COMMENT_TOKEN = AS_TOKEN + 1; |
| 77 final int GT_GT_GT_TOKEN = COMMENT_TOKEN + 1; | 77 const int GT_GT_GT_TOKEN = COMMENT_TOKEN + 1; |
| 78 final int STRING_INTERPOLATION_IDENTIFIER_TOKEN = COMMENT_TOKEN + 1; | 78 const int STRING_INTERPOLATION_IDENTIFIER_TOKEN = COMMENT_TOKEN + 1; |
| 79 | 79 |
| 80 // TODO(ahe): Get rid of this. | 80 // TODO(ahe): Get rid of this. |
| 81 final int UNKNOWN_TOKEN = 1024; | 81 const int UNKNOWN_TOKEN = 1024; |
| 82 | 82 |
| 83 /** | 83 /** |
| 84 * A token that doubles as a linked list. | 84 * A token that doubles as a linked list. |
| 85 */ | 85 */ |
| 86 class Token { | 86 class Token { |
| 87 /** | 87 /** |
| 88 * The precedence info for this token. [info] determines the kind and the | 88 * The precedence info for this token. [info] determines the kind and the |
| 89 * precedence level of this token. | 89 * precedence level of this token. |
| 90 */ | 90 */ |
| 91 final PrecedenceInfo info; | 91 final PrecedenceInfo info; |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 final SourceString value; | 281 final SourceString value; |
| 282 final int precedence; | 282 final int precedence; |
| 283 final int kind; | 283 final int kind; |
| 284 | 284 |
| 285 const PrecedenceInfo(this.value, this.precedence, this.kind); | 285 const PrecedenceInfo(this.value, this.precedence, this.kind); |
| 286 | 286 |
| 287 toString() => 'PrecedenceInfo($value, $precedence, $kind)'; | 287 toString() => 'PrecedenceInfo($value, $precedence, $kind)'; |
| 288 } | 288 } |
| 289 | 289 |
| 290 // TODO(ahe): The following are not tokens in Dart. | 290 // TODO(ahe): The following are not tokens in Dart. |
| 291 final PrecedenceInfo BACKPING_INFO = | 291 const PrecedenceInfo BACKPING_INFO = |
| 292 const PrecedenceInfo(const SourceString('`'), 0, BACKPING_TOKEN); | 292 const PrecedenceInfo(const SourceString('`'), 0, BACKPING_TOKEN); |
| 293 final PrecedenceInfo BACKSLASH_INFO = | 293 const PrecedenceInfo BACKSLASH_INFO = |
| 294 const PrecedenceInfo(const SourceString('\\'), 0, BACKSLASH_TOKEN); | 294 const PrecedenceInfo(const SourceString('\\'), 0, BACKSLASH_TOKEN); |
| 295 final PrecedenceInfo PERIOD_PERIOD_PERIOD_INFO = | 295 const PrecedenceInfo PERIOD_PERIOD_PERIOD_INFO = |
| 296 const PrecedenceInfo(const SourceString('...'), 0, | 296 const PrecedenceInfo(const SourceString('...'), 0, |
| 297 PERIOD_PERIOD_PERIOD_TOKEN); | 297 PERIOD_PERIOD_PERIOD_TOKEN); |
| 298 | 298 |
| 299 /** | 299 /** |
| 300 * The cascade operator has the lowest precedence of any operator | 300 * The cascade operator has the lowest precedence of any operator |
| 301 * except assignment. | 301 * except assignment. |
| 302 */ | 302 */ |
| 303 final int CASCADE_PRECEDENCE = 2; | 303 const int CASCADE_PRECEDENCE = 2; |
| 304 final PrecedenceInfo PERIOD_PERIOD_INFO = | 304 const PrecedenceInfo PERIOD_PERIOD_INFO = |
| 305 const PrecedenceInfo(const SourceString('..'), CASCADE_PRECEDENCE, | 305 const PrecedenceInfo(const SourceString('..'), CASCADE_PRECEDENCE, |
| 306 PERIOD_PERIOD_TOKEN); | 306 PERIOD_PERIOD_TOKEN); |
| 307 | 307 |
| 308 final PrecedenceInfo BANG_INFO = | 308 const PrecedenceInfo BANG_INFO = |
| 309 const PrecedenceInfo(const SourceString('!'), 0, BANG_TOKEN); | 309 const PrecedenceInfo(const SourceString('!'), 0, BANG_TOKEN); |
| 310 final PrecedenceInfo COLON_INFO = | 310 const PrecedenceInfo COLON_INFO = |
| 311 const PrecedenceInfo(const SourceString(':'), 0, COLON_TOKEN); | 311 const PrecedenceInfo(const SourceString(':'), 0, COLON_TOKEN); |
| 312 final PrecedenceInfo INDEX_INFO = | 312 const PrecedenceInfo INDEX_INFO = |
| 313 const PrecedenceInfo(const SourceString('[]'), 0, INDEX_TOKEN); | 313 const PrecedenceInfo(const SourceString('[]'), 0, INDEX_TOKEN); |
| 314 final PrecedenceInfo MINUS_MINUS_INFO = | 314 const PrecedenceInfo MINUS_MINUS_INFO = |
| 315 const PrecedenceInfo(const SourceString('--'), POSTFIX_PRECEDENCE, | 315 const PrecedenceInfo(const SourceString('--'), POSTFIX_PRECEDENCE, |
| 316 MINUS_MINUS_TOKEN); | 316 MINUS_MINUS_TOKEN); |
| 317 final PrecedenceInfo PLUS_PLUS_INFO = | 317 const PrecedenceInfo PLUS_PLUS_INFO = |
| 318 const PrecedenceInfo(const SourceString('++'), POSTFIX_PRECEDENCE, | 318 const PrecedenceInfo(const SourceString('++'), POSTFIX_PRECEDENCE, |
| 319 PLUS_PLUS_TOKEN); | 319 PLUS_PLUS_TOKEN); |
| 320 final PrecedenceInfo TILDE_INFO = | 320 const PrecedenceInfo TILDE_INFO = |
| 321 const PrecedenceInfo(const SourceString('~'), 0, TILDE_TOKEN); | 321 const PrecedenceInfo(const SourceString('~'), 0, TILDE_TOKEN); |
| 322 | 322 |
| 323 final PrecedenceInfo FUNCTION_INFO = | 323 const PrecedenceInfo FUNCTION_INFO = |
| 324 const PrecedenceInfo(const SourceString('=>'), 0, FUNCTION_TOKEN); | 324 const PrecedenceInfo(const SourceString('=>'), 0, FUNCTION_TOKEN); |
| 325 final PrecedenceInfo HASH_INFO = | 325 const PrecedenceInfo HASH_INFO = |
| 326 const PrecedenceInfo(const SourceString('#'), 0, HASH_TOKEN); | 326 const PrecedenceInfo(const SourceString('#'), 0, HASH_TOKEN); |
| 327 final PrecedenceInfo INDEX_EQ_INFO = | 327 const PrecedenceInfo INDEX_EQ_INFO = |
| 328 const PrecedenceInfo(const SourceString('[]='), 0, INDEX_EQ_TOKEN); | 328 const PrecedenceInfo(const SourceString('[]='), 0, INDEX_EQ_TOKEN); |
| 329 final PrecedenceInfo SEMICOLON_INFO = | 329 const PrecedenceInfo SEMICOLON_INFO = |
| 330 const PrecedenceInfo(const SourceString(';'), 0, SEMICOLON_TOKEN); | 330 const PrecedenceInfo(const SourceString(';'), 0, SEMICOLON_TOKEN); |
| 331 final PrecedenceInfo COMMA_INFO = | 331 const PrecedenceInfo COMMA_INFO = |
| 332 const PrecedenceInfo(const SourceString(','), 0, COMMA_TOKEN); | 332 const PrecedenceInfo(const SourceString(','), 0, COMMA_TOKEN); |
| 333 | 333 |
| 334 final PrecedenceInfo AT_INFO = | 334 const PrecedenceInfo AT_INFO = |
| 335 const PrecedenceInfo(const SourceString('@'), 0, AT_TOKEN); | 335 const PrecedenceInfo(const SourceString('@'), 0, AT_TOKEN); |
| 336 | 336 |
| 337 // Assignment operators. | 337 // Assignment operators. |
| 338 final int ASSIGNMENT_PRECEDENCE = 1; | 338 const int ASSIGNMENT_PRECEDENCE = 1; |
| 339 final PrecedenceInfo AMPERSAND_EQ_INFO = | 339 const PrecedenceInfo AMPERSAND_EQ_INFO = |
| 340 const PrecedenceInfo(const SourceString('&='), | 340 const PrecedenceInfo(const SourceString('&='), |
| 341 ASSIGNMENT_PRECEDENCE, AMPERSAND_EQ_TOKEN); | 341 ASSIGNMENT_PRECEDENCE, AMPERSAND_EQ_TOKEN); |
| 342 final PrecedenceInfo BAR_EQ_INFO = | 342 const PrecedenceInfo BAR_EQ_INFO = |
| 343 const PrecedenceInfo(const SourceString('|='), | 343 const PrecedenceInfo(const SourceString('|='), |
| 344 ASSIGNMENT_PRECEDENCE, BAR_EQ_TOKEN); | 344 ASSIGNMENT_PRECEDENCE, BAR_EQ_TOKEN); |
| 345 final PrecedenceInfo CARET_EQ_INFO = | 345 const PrecedenceInfo CARET_EQ_INFO = |
| 346 const PrecedenceInfo(const SourceString('^='), | 346 const PrecedenceInfo(const SourceString('^='), |
| 347 ASSIGNMENT_PRECEDENCE, CARET_EQ_TOKEN); | 347 ASSIGNMENT_PRECEDENCE, CARET_EQ_TOKEN); |
| 348 final PrecedenceInfo EQ_INFO = | 348 const PrecedenceInfo EQ_INFO = |
| 349 const PrecedenceInfo(const SourceString('='), | 349 const PrecedenceInfo(const SourceString('='), |
| 350 ASSIGNMENT_PRECEDENCE, EQ_TOKEN); | 350 ASSIGNMENT_PRECEDENCE, EQ_TOKEN); |
| 351 final PrecedenceInfo GT_GT_EQ_INFO = | 351 const PrecedenceInfo GT_GT_EQ_INFO = |
| 352 const PrecedenceInfo(const SourceString('>>='), | 352 const PrecedenceInfo(const SourceString('>>='), |
| 353 ASSIGNMENT_PRECEDENCE, GT_GT_EQ_TOKEN); | 353 ASSIGNMENT_PRECEDENCE, GT_GT_EQ_TOKEN); |
| 354 final PrecedenceInfo GT_GT_GT_EQ_INFO = | 354 const PrecedenceInfo GT_GT_GT_EQ_INFO = |
| 355 const PrecedenceInfo(const SourceString('>>>='), | 355 const PrecedenceInfo(const SourceString('>>>='), |
| 356 ASSIGNMENT_PRECEDENCE, GT_GT_GT_EQ_TOKEN); | 356 ASSIGNMENT_PRECEDENCE, GT_GT_GT_EQ_TOKEN); |
| 357 final PrecedenceInfo LT_LT_EQ_INFO = | 357 const PrecedenceInfo LT_LT_EQ_INFO = |
| 358 const PrecedenceInfo(const SourceString('<<='), | 358 const PrecedenceInfo(const SourceString('<<='), |
| 359 ASSIGNMENT_PRECEDENCE, LT_LT_EQ_TOKEN); | 359 ASSIGNMENT_PRECEDENCE, LT_LT_EQ_TOKEN); |
| 360 final PrecedenceInfo MINUS_EQ_INFO = | 360 const PrecedenceInfo MINUS_EQ_INFO = |
| 361 const PrecedenceInfo(const SourceString('-='), | 361 const PrecedenceInfo(const SourceString('-='), |
| 362 ASSIGNMENT_PRECEDENCE, MINUS_EQ_TOKEN); | 362 ASSIGNMENT_PRECEDENCE, MINUS_EQ_TOKEN); |
| 363 final PrecedenceInfo PERCENT_EQ_INFO = | 363 const PrecedenceInfo PERCENT_EQ_INFO = |
| 364 const PrecedenceInfo(const SourceString('%='), | 364 const PrecedenceInfo(const SourceString('%='), |
| 365 ASSIGNMENT_PRECEDENCE, PERCENT_EQ_TOKEN); | 365 ASSIGNMENT_PRECEDENCE, PERCENT_EQ_TOKEN); |
| 366 final PrecedenceInfo PLUS_EQ_INFO = | 366 const PrecedenceInfo PLUS_EQ_INFO = |
| 367 const PrecedenceInfo(const SourceString('+='), | 367 const PrecedenceInfo(const SourceString('+='), |
| 368 ASSIGNMENT_PRECEDENCE, PLUS_EQ_TOKEN); | 368 ASSIGNMENT_PRECEDENCE, PLUS_EQ_TOKEN); |
| 369 final PrecedenceInfo SLASH_EQ_INFO = | 369 const PrecedenceInfo SLASH_EQ_INFO = |
| 370 const PrecedenceInfo(const SourceString('/='), | 370 const PrecedenceInfo(const SourceString('/='), |
| 371 ASSIGNMENT_PRECEDENCE, SLASH_EQ_TOKEN); | 371 ASSIGNMENT_PRECEDENCE, SLASH_EQ_TOKEN); |
| 372 final PrecedenceInfo STAR_EQ_INFO = | 372 const PrecedenceInfo STAR_EQ_INFO = |
| 373 const PrecedenceInfo(const SourceString('*='), | 373 const PrecedenceInfo(const SourceString('*='), |
| 374 ASSIGNMENT_PRECEDENCE, STAR_EQ_TOKEN); | 374 ASSIGNMENT_PRECEDENCE, STAR_EQ_TOKEN); |
| 375 final PrecedenceInfo TILDE_SLASH_EQ_INFO = | 375 const PrecedenceInfo TILDE_SLASH_EQ_INFO = |
| 376 const PrecedenceInfo(const SourceString('~/='), | 376 const PrecedenceInfo(const SourceString('~/='), |
| 377 ASSIGNMENT_PRECEDENCE, TILDE_SLASH_EQ_TOKEN); | 377 ASSIGNMENT_PRECEDENCE, TILDE_SLASH_EQ_TOKEN); |
| 378 | 378 |
| 379 final PrecedenceInfo QUESTION_INFO = | 379 const PrecedenceInfo QUESTION_INFO = |
| 380 const PrecedenceInfo(const SourceString('?'), 3, QUESTION_TOKEN); | 380 const PrecedenceInfo(const SourceString('?'), 3, QUESTION_TOKEN); |
| 381 | 381 |
| 382 final PrecedenceInfo BAR_BAR_INFO = | 382 const PrecedenceInfo BAR_BAR_INFO = |
| 383 const PrecedenceInfo(const SourceString('||'), 4, BAR_BAR_TOKEN); | 383 const PrecedenceInfo(const SourceString('||'), 4, BAR_BAR_TOKEN); |
| 384 | 384 |
| 385 final PrecedenceInfo AMPERSAND_AMPERSAND_INFO = | 385 const PrecedenceInfo AMPERSAND_AMPERSAND_INFO = |
| 386 const PrecedenceInfo(const SourceString('&&'), 5, AMPERSAND_AMPERSAND_TOKEN); | 386 const PrecedenceInfo(const SourceString('&&'), 5, AMPERSAND_AMPERSAND_TOKEN); |
| 387 | 387 |
| 388 final PrecedenceInfo BAR_INFO = | 388 const PrecedenceInfo BAR_INFO = |
| 389 const PrecedenceInfo(const SourceString('|'), 6, BAR_TOKEN); | 389 const PrecedenceInfo(const SourceString('|'), 6, BAR_TOKEN); |
| 390 | 390 |
| 391 final PrecedenceInfo CARET_INFO = | 391 const PrecedenceInfo CARET_INFO = |
| 392 const PrecedenceInfo(const SourceString('^'), 7, CARET_TOKEN); | 392 const PrecedenceInfo(const SourceString('^'), 7, CARET_TOKEN); |
| 393 | 393 |
| 394 final PrecedenceInfo AMPERSAND_INFO = | 394 const PrecedenceInfo AMPERSAND_INFO = |
| 395 const PrecedenceInfo(const SourceString('&'), 8, AMPERSAND_TOKEN); | 395 const PrecedenceInfo(const SourceString('&'), 8, AMPERSAND_TOKEN); |
| 396 | 396 |
| 397 // Equality operators. | 397 // Equality operators. |
| 398 final PrecedenceInfo BANG_EQ_EQ_INFO = | 398 const PrecedenceInfo BANG_EQ_EQ_INFO = |
| 399 const PrecedenceInfo(const SourceString('!=='), 9, BANG_EQ_EQ_TOKEN); | 399 const PrecedenceInfo(const SourceString('!=='), 9, BANG_EQ_EQ_TOKEN); |
| 400 final PrecedenceInfo BANG_EQ_INFO = | 400 const PrecedenceInfo BANG_EQ_INFO = |
| 401 const PrecedenceInfo(const SourceString('!='), 9, BANG_EQ_TOKEN); | 401 const PrecedenceInfo(const SourceString('!='), 9, BANG_EQ_TOKEN); |
| 402 final PrecedenceInfo EQ_EQ_EQ_INFO = | 402 const PrecedenceInfo EQ_EQ_EQ_INFO = |
| 403 const PrecedenceInfo(const SourceString('==='), 9, EQ_EQ_EQ_TOKEN); | 403 const PrecedenceInfo(const SourceString('==='), 9, EQ_EQ_EQ_TOKEN); |
| 404 final PrecedenceInfo EQ_EQ_INFO = | 404 const PrecedenceInfo EQ_EQ_INFO = |
| 405 const PrecedenceInfo(const SourceString('=='), 9, EQ_EQ_TOKEN); | 405 const PrecedenceInfo(const SourceString('=='), 9, EQ_EQ_TOKEN); |
| 406 | 406 |
| 407 // Relational operators. | 407 // Relational operators. |
| 408 final PrecedenceInfo GT_EQ_INFO = | 408 const PrecedenceInfo GT_EQ_INFO = |
| 409 const PrecedenceInfo(const SourceString('>='), 10, GT_EQ_TOKEN); | 409 const PrecedenceInfo(const SourceString('>='), 10, GT_EQ_TOKEN); |
| 410 final PrecedenceInfo GT_INFO = | 410 const PrecedenceInfo GT_INFO = |
| 411 const PrecedenceInfo(const SourceString('>'), 10, GT_TOKEN); | 411 const PrecedenceInfo(const SourceString('>'), 10, GT_TOKEN); |
| 412 final PrecedenceInfo IS_INFO = | 412 const PrecedenceInfo IS_INFO = |
| 413 const PrecedenceInfo(const SourceString('is'), 10, IS_TOKEN); | 413 const PrecedenceInfo(const SourceString('is'), 10, IS_TOKEN); |
| 414 final PrecedenceInfo AS_INFO = | 414 const PrecedenceInfo AS_INFO = |
| 415 const PrecedenceInfo(const SourceString('as'), 10, AS_TOKEN); | 415 const PrecedenceInfo(const SourceString('as'), 10, AS_TOKEN); |
| 416 final PrecedenceInfo LT_EQ_INFO = | 416 const PrecedenceInfo LT_EQ_INFO = |
| 417 const PrecedenceInfo(const SourceString('<='), 10, LT_EQ_TOKEN); | 417 const PrecedenceInfo(const SourceString('<='), 10, LT_EQ_TOKEN); |
| 418 final PrecedenceInfo LT_INFO = | 418 const PrecedenceInfo LT_INFO = |
| 419 const PrecedenceInfo(const SourceString('<'), 10, LT_TOKEN); | 419 const PrecedenceInfo(const SourceString('<'), 10, LT_TOKEN); |
| 420 | 420 |
| 421 // Shift operators. | 421 // Shift operators. |
| 422 final PrecedenceInfo GT_GT_GT_INFO = | 422 const PrecedenceInfo GT_GT_GT_INFO = |
| 423 const PrecedenceInfo(const SourceString('>>>'), 11, GT_GT_GT_TOKEN); | 423 const PrecedenceInfo(const SourceString('>>>'), 11, GT_GT_GT_TOKEN); |
| 424 final PrecedenceInfo GT_GT_INFO = | 424 const PrecedenceInfo GT_GT_INFO = |
| 425 const PrecedenceInfo(const SourceString('>>'), 11, GT_GT_TOKEN); | 425 const PrecedenceInfo(const SourceString('>>'), 11, GT_GT_TOKEN); |
| 426 final PrecedenceInfo LT_LT_INFO = | 426 const PrecedenceInfo LT_LT_INFO = |
| 427 const PrecedenceInfo(const SourceString('<<'), 11, LT_LT_TOKEN); | 427 const PrecedenceInfo(const SourceString('<<'), 11, LT_LT_TOKEN); |
| 428 | 428 |
| 429 // Additive operators. | 429 // Additive operators. |
| 430 final PrecedenceInfo MINUS_INFO = | 430 const PrecedenceInfo MINUS_INFO = |
| 431 const PrecedenceInfo(const SourceString('-'), 12, MINUS_TOKEN); | 431 const PrecedenceInfo(const SourceString('-'), 12, MINUS_TOKEN); |
| 432 final PrecedenceInfo PLUS_INFO = | 432 const PrecedenceInfo PLUS_INFO = |
| 433 const PrecedenceInfo(const SourceString('+'), 12, PLUS_TOKEN); | 433 const PrecedenceInfo(const SourceString('+'), 12, PLUS_TOKEN); |
| 434 | 434 |
| 435 // Multiplicative operators. | 435 // Multiplicative operators. |
| 436 final PrecedenceInfo PERCENT_INFO = | 436 const PrecedenceInfo PERCENT_INFO = |
| 437 const PrecedenceInfo(const SourceString('%'), 13, PERCENT_TOKEN); | 437 const PrecedenceInfo(const SourceString('%'), 13, PERCENT_TOKEN); |
| 438 final PrecedenceInfo SLASH_INFO = | 438 const PrecedenceInfo SLASH_INFO = |
| 439 const PrecedenceInfo(const SourceString('/'), 13, SLASH_TOKEN); | 439 const PrecedenceInfo(const SourceString('/'), 13, SLASH_TOKEN); |
| 440 final PrecedenceInfo STAR_INFO = | 440 const PrecedenceInfo STAR_INFO = |
| 441 const PrecedenceInfo(const SourceString('*'), 13, STAR_TOKEN); | 441 const PrecedenceInfo(const SourceString('*'), 13, STAR_TOKEN); |
| 442 final PrecedenceInfo TILDE_SLASH_INFO = | 442 const PrecedenceInfo TILDE_SLASH_INFO = |
| 443 const PrecedenceInfo(const SourceString('~/'), 13, TILDE_SLASH_TOKEN); | 443 const PrecedenceInfo(const SourceString('~/'), 13, TILDE_SLASH_TOKEN); |
| 444 | 444 |
| 445 final int POSTFIX_PRECEDENCE = 14; | 445 const int POSTFIX_PRECEDENCE = 14; |
| 446 final PrecedenceInfo PERIOD_INFO = | 446 const PrecedenceInfo PERIOD_INFO = |
| 447 const PrecedenceInfo(const SourceString('.'), POSTFIX_PRECEDENCE, | 447 const PrecedenceInfo(const SourceString('.'), POSTFIX_PRECEDENCE, |
| 448 PERIOD_TOKEN); | 448 PERIOD_TOKEN); |
| 449 | 449 |
| 450 final PrecedenceInfo KEYWORD_INFO = | 450 const PrecedenceInfo KEYWORD_INFO = |
| 451 const PrecedenceInfo(const SourceString('keyword'), 0, KEYWORD_TOKEN); | 451 const PrecedenceInfo(const SourceString('keyword'), 0, KEYWORD_TOKEN); |
| 452 | 452 |
| 453 final PrecedenceInfo EOF_INFO = | 453 const PrecedenceInfo EOF_INFO = |
| 454 const PrecedenceInfo(const SourceString('EOF'), 0, EOF_TOKEN); | 454 const PrecedenceInfo(const SourceString('EOF'), 0, EOF_TOKEN); |
| 455 | 455 |
| 456 final PrecedenceInfo IDENTIFIER_INFO = | 456 const PrecedenceInfo IDENTIFIER_INFO = |
| 457 const PrecedenceInfo(const SourceString('identifier'), 0, IDENTIFIER_TOKEN); | 457 const PrecedenceInfo(const SourceString('identifier'), 0, IDENTIFIER_TOKEN); |
| 458 | 458 |
| 459 final PrecedenceInfo OPEN_PAREN_INFO = | 459 const PrecedenceInfo OPEN_PAREN_INFO = |
| 460 const PrecedenceInfo(const SourceString('('), POSTFIX_PRECEDENCE, | 460 const PrecedenceInfo(const SourceString('('), POSTFIX_PRECEDENCE, |
| 461 OPEN_PAREN_TOKEN); | 461 OPEN_PAREN_TOKEN); |
| 462 | 462 |
| 463 final PrecedenceInfo CLOSE_PAREN_INFO = | 463 const PrecedenceInfo CLOSE_PAREN_INFO = |
| 464 const PrecedenceInfo(const SourceString(')'), 0, CLOSE_PAREN_TOKEN); | 464 const PrecedenceInfo(const SourceString(')'), 0, CLOSE_PAREN_TOKEN); |
| 465 | 465 |
| 466 final PrecedenceInfo OPEN_CURLY_BRACKET_INFO = | 466 const PrecedenceInfo OPEN_CURLY_BRACKET_INFO = |
| 467 const PrecedenceInfo(const SourceString('{'), 0, OPEN_CURLY_BRACKET_TOKEN); | 467 const PrecedenceInfo(const SourceString('{'), 0, OPEN_CURLY_BRACKET_TOKEN); |
| 468 | 468 |
| 469 final PrecedenceInfo CLOSE_CURLY_BRACKET_INFO = | 469 const PrecedenceInfo CLOSE_CURLY_BRACKET_INFO = |
| 470 const PrecedenceInfo(const SourceString('}'), 0, CLOSE_CURLY_BRACKET_TOKEN); | 470 const PrecedenceInfo(const SourceString('}'), 0, CLOSE_CURLY_BRACKET_TOKEN); |
| 471 | 471 |
| 472 final PrecedenceInfo INT_INFO = | 472 const PrecedenceInfo INT_INFO = |
| 473 const PrecedenceInfo(const SourceString('int'), 0, INT_TOKEN); | 473 const PrecedenceInfo(const SourceString('int'), 0, INT_TOKEN); |
| 474 | 474 |
| 475 final PrecedenceInfo STRING_INFO = | 475 const PrecedenceInfo STRING_INFO = |
| 476 const PrecedenceInfo(const SourceString('string'), 0, STRING_TOKEN); | 476 const PrecedenceInfo(const SourceString('string'), 0, STRING_TOKEN); |
| 477 | 477 |
| 478 final PrecedenceInfo OPEN_SQUARE_BRACKET_INFO = | 478 const PrecedenceInfo OPEN_SQUARE_BRACKET_INFO = |
| 479 const PrecedenceInfo(const SourceString('['), POSTFIX_PRECEDENCE, | 479 const PrecedenceInfo(const SourceString('['), POSTFIX_PRECEDENCE, |
| 480 OPEN_SQUARE_BRACKET_TOKEN); | 480 OPEN_SQUARE_BRACKET_TOKEN); |
| 481 | 481 |
| 482 final PrecedenceInfo CLOSE_SQUARE_BRACKET_INFO = | 482 const PrecedenceInfo CLOSE_SQUARE_BRACKET_INFO = |
| 483 const PrecedenceInfo(const SourceString(']'), 0, CLOSE_SQUARE_BRACKET_TOKEN); | 483 const PrecedenceInfo(const SourceString(']'), 0, CLOSE_SQUARE_BRACKET_TOKEN); |
| 484 | 484 |
| 485 final PrecedenceInfo DOUBLE_INFO = | 485 const PrecedenceInfo DOUBLE_INFO = |
| 486 const PrecedenceInfo(const SourceString('double'), 0, DOUBLE_TOKEN); | 486 const PrecedenceInfo(const SourceString('double'), 0, DOUBLE_TOKEN); |
| 487 | 487 |
| 488 final PrecedenceInfo STRING_INTERPOLATION_INFO = | 488 const PrecedenceInfo STRING_INTERPOLATION_INFO = |
| 489 const PrecedenceInfo(const SourceString('\${'), 0, | 489 const PrecedenceInfo(const SourceString('\${'), 0, |
| 490 STRING_INTERPOLATION_TOKEN); | 490 STRING_INTERPOLATION_TOKEN); |
| 491 | 491 |
| 492 final PrecedenceInfo STRING_INTERPOLATION_IDENTIFIER_INFO = | 492 const PrecedenceInfo STRING_INTERPOLATION_IDENTIFIER_INFO = |
| 493 const PrecedenceInfo(const SourceString('\$'), 0, | 493 const PrecedenceInfo(const SourceString('\$'), 0, |
| 494 STRING_INTERPOLATION_IDENTIFIER_TOKEN); | 494 STRING_INTERPOLATION_IDENTIFIER_TOKEN); |
| 495 | 495 |
| 496 final PrecedenceInfo HEXADECIMAL_INFO = | 496 const PrecedenceInfo HEXADECIMAL_INFO = |
| 497 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN); | 497 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN); |
| 498 | 498 |
| 499 final PrecedenceInfo COMMENT_INFO = | 499 const PrecedenceInfo COMMENT_INFO = |
| 500 const PrecedenceInfo(const SourceString('comment'), 0, COMMENT_TOKEN); | 500 const PrecedenceInfo(const SourceString('comment'), 0, COMMENT_TOKEN); |
| 501 | 501 |
| 502 // For reporting lexical errors. | 502 // For reporting lexical errors. |
| 503 final PrecedenceInfo ERROR_INFO = | 503 const PrecedenceInfo ERROR_INFO = |
| 504 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN); | 504 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN); |
| OLD | NEW |