| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.precedence; | 5 library fasta.scanner.precedence; |
| 6 | 6 |
| 7 import 'token_constants.dart'; | 7 import 'token_constants.dart'; |
| 8 | 8 |
| 9 class PrecedenceInfo { | 9 class PrecedenceInfo { |
| 10 final String value; | 10 final String value; |
| 11 final int precedence; | 11 final int precedence; |
| 12 final int kind; | 12 final int kind; |
| 13 | 13 |
| 14 const PrecedenceInfo(this.value, this.precedence, this.kind); | 14 const PrecedenceInfo(this.value, this.precedence, this.kind); |
| 15 | 15 |
| 16 toString() => 'PrecedenceInfo($value, $precedence, $kind)'; | 16 toString() => 'PrecedenceInfo($value, $precedence, $kind)'; |
| 17 |
| 18 static const List<PrecedenceInfo> all = const <PrecedenceInfo>[ |
| 19 BACKPING_INFO, |
| 20 BACKSLASH_INFO, |
| 21 PERIOD_PERIOD_PERIOD_INFO, |
| 22 PERIOD_PERIOD_INFO, |
| 23 BANG_INFO, |
| 24 COLON_INFO, |
| 25 INDEX_INFO, |
| 26 MINUS_MINUS_INFO, |
| 27 PLUS_PLUS_INFO, |
| 28 TILDE_INFO, |
| 29 FUNCTION_INFO, |
| 30 HASH_INFO, |
| 31 INDEX_EQ_INFO, |
| 32 SEMICOLON_INFO, |
| 33 COMMA_INFO, |
| 34 AT_INFO, |
| 35 AMPERSAND_EQ_INFO, |
| 36 BAR_EQ_INFO, |
| 37 CARET_EQ_INFO, |
| 38 EQ_INFO, |
| 39 GT_GT_EQ_INFO, |
| 40 LT_LT_EQ_INFO, |
| 41 MINUS_EQ_INFO, |
| 42 PERCENT_EQ_INFO, |
| 43 PLUS_EQ_INFO, |
| 44 SLASH_EQ_INFO, |
| 45 STAR_EQ_INFO, |
| 46 TILDE_SLASH_EQ_INFO, |
| 47 QUESTION_QUESTION_EQ_INFO, |
| 48 QUESTION_INFO, |
| 49 QUESTION_QUESTION_INFO, |
| 50 BAR_BAR_INFO, |
| 51 AMPERSAND_AMPERSAND_INFO, |
| 52 BAR_INFO, |
| 53 CARET_INFO, |
| 54 AMPERSAND_INFO, |
| 55 BANG_EQ_EQ_INFO, |
| 56 BANG_EQ_INFO, |
| 57 EQ_EQ_EQ_INFO, |
| 58 EQ_EQ_INFO, |
| 59 GT_EQ_INFO, |
| 60 GT_INFO, |
| 61 IS_INFO, |
| 62 AS_INFO, |
| 63 LT_EQ_INFO, |
| 64 LT_INFO, |
| 65 GT_GT_INFO, |
| 66 LT_LT_INFO, |
| 67 MINUS_INFO, |
| 68 PLUS_INFO, |
| 69 PERCENT_INFO, |
| 70 SLASH_INFO, |
| 71 STAR_INFO, |
| 72 TILDE_SLASH_INFO, |
| 73 PERIOD_INFO, |
| 74 QUESTION_PERIOD_INFO, |
| 75 KEYWORD_INFO, |
| 76 EOF_INFO, |
| 77 IDENTIFIER_INFO, |
| 78 BAD_INPUT_INFO, |
| 79 OPEN_PAREN_INFO, |
| 80 CLOSE_PAREN_INFO, |
| 81 OPEN_CURLY_BRACKET_INFO, |
| 82 CLOSE_CURLY_BRACKET_INFO, |
| 83 INT_INFO, |
| 84 STRING_INFO, |
| 85 OPEN_SQUARE_BRACKET_INFO, |
| 86 CLOSE_SQUARE_BRACKET_INFO, |
| 87 DOUBLE_INFO, |
| 88 STRING_INTERPOLATION_INFO, |
| 89 STRING_INTERPOLATION_IDENTIFIER_INFO, |
| 90 HEXADECIMAL_INFO, |
| 91 COMMENT_INFO, |
| 92 ]; |
| 17 } | 93 } |
| 18 | 94 |
| 19 // TODO(ahe): The following are not tokens in Dart. | 95 // TODO(ahe): The following are not tokens in Dart. |
| 20 const PrecedenceInfo BACKPING_INFO = | 96 const PrecedenceInfo BACKPING_INFO = |
| 21 const PrecedenceInfo('`', 0, BACKPING_TOKEN); | 97 const PrecedenceInfo('`', 0, BACKPING_TOKEN); |
| 22 const PrecedenceInfo BACKSLASH_INFO = | 98 const PrecedenceInfo BACKSLASH_INFO = |
| 23 const PrecedenceInfo('\\', 0, BACKSLASH_TOKEN); | 99 const PrecedenceInfo('\\', 0, BACKSLASH_TOKEN); |
| 24 const PrecedenceInfo PERIOD_PERIOD_PERIOD_INFO = | 100 const PrecedenceInfo PERIOD_PERIOD_PERIOD_INFO = |
| 25 const PrecedenceInfo('...', 0, PERIOD_PERIOD_PERIOD_TOKEN); | 101 const PrecedenceInfo('...', 0, PERIOD_PERIOD_PERIOD_TOKEN); |
| 26 | 102 |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 const PrecedenceInfo('\${', 0, STRING_INTERPOLATION_TOKEN); | 265 const PrecedenceInfo('\${', 0, STRING_INTERPOLATION_TOKEN); |
| 190 | 266 |
| 191 const PrecedenceInfo STRING_INTERPOLATION_IDENTIFIER_INFO = | 267 const PrecedenceInfo STRING_INTERPOLATION_IDENTIFIER_INFO = |
| 192 const PrecedenceInfo('\$', 0, STRING_INTERPOLATION_IDENTIFIER_TOKEN); | 268 const PrecedenceInfo('\$', 0, STRING_INTERPOLATION_IDENTIFIER_TOKEN); |
| 193 | 269 |
| 194 const PrecedenceInfo HEXADECIMAL_INFO = | 270 const PrecedenceInfo HEXADECIMAL_INFO = |
| 195 const PrecedenceInfo('hexadecimal', 0, HEXADECIMAL_TOKEN); | 271 const PrecedenceInfo('hexadecimal', 0, HEXADECIMAL_TOKEN); |
| 196 | 272 |
| 197 const PrecedenceInfo COMMENT_INFO = | 273 const PrecedenceInfo COMMENT_INFO = |
| 198 const PrecedenceInfo('comment', 0, COMMENT_TOKEN); | 274 const PrecedenceInfo('comment', 0, COMMENT_TOKEN); |
| OLD | NEW |