| 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; |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 /** | 105 /** |
| 106 * The cascade operator has the lowest precedence of any operator | 106 * The cascade operator has the lowest precedence of any operator |
| 107 * except assignment. | 107 * except assignment. |
| 108 */ | 108 */ |
| 109 const int CASCADE_PRECEDENCE = 2; | 109 const int CASCADE_PRECEDENCE = 2; |
| 110 const PrecedenceInfo PERIOD_PERIOD_INFO = const PrecedenceInfo( | 110 const PrecedenceInfo PERIOD_PERIOD_INFO = const PrecedenceInfo( |
| 111 '..', CASCADE_PRECEDENCE, PERIOD_PERIOD_TOKEN, | 111 '..', CASCADE_PRECEDENCE, PERIOD_PERIOD_TOKEN, |
| 112 isOperator: true); | 112 isOperator: true); |
| 113 | 113 |
| 114 const PrecedenceInfo BANG_INFO = | 114 const PrecedenceInfo BANG_INFO = |
| 115 const PrecedenceInfo('!', 0, BANG_TOKEN, isOperator: true); | 115 const PrecedenceInfo('!', 15, BANG_TOKEN, isOperator: true); |
| 116 const PrecedenceInfo COLON_INFO = const PrecedenceInfo(':', 0, COLON_TOKEN); | 116 const PrecedenceInfo COLON_INFO = const PrecedenceInfo(':', 0, COLON_TOKEN); |
| 117 const PrecedenceInfo INDEX_INFO = | 117 const PrecedenceInfo INDEX_INFO = |
| 118 const PrecedenceInfo('[]', 0, INDEX_TOKEN, isOperator: true); | 118 const PrecedenceInfo('[]', 16, INDEX_TOKEN, isOperator: true); |
| 119 const PrecedenceInfo MINUS_MINUS_INFO = const PrecedenceInfo( | 119 const PrecedenceInfo MINUS_MINUS_INFO = const PrecedenceInfo( |
| 120 '--', POSTFIX_PRECEDENCE, MINUS_MINUS_TOKEN, | 120 '--', 16, MINUS_MINUS_TOKEN, |
| 121 isOperator: true); | 121 isOperator: true); |
| 122 const PrecedenceInfo PLUS_PLUS_INFO = const PrecedenceInfo( | 122 const PrecedenceInfo PLUS_PLUS_INFO = const PrecedenceInfo( |
| 123 '++', POSTFIX_PRECEDENCE, PLUS_PLUS_TOKEN, | 123 '++', 16, PLUS_PLUS_TOKEN, |
| 124 isOperator: true); | 124 isOperator: true); |
| 125 const PrecedenceInfo TILDE_INFO = | 125 const PrecedenceInfo TILDE_INFO = |
| 126 const PrecedenceInfo('~', 0, TILDE_TOKEN, isOperator: true); | 126 const PrecedenceInfo('~', 15, TILDE_TOKEN, isOperator: true); |
| 127 | 127 |
| 128 const PrecedenceInfo FUNCTION_INFO = | 128 const PrecedenceInfo FUNCTION_INFO = |
| 129 const PrecedenceInfo('=>', 0, FUNCTION_TOKEN); | 129 const PrecedenceInfo('=>', 0, FUNCTION_TOKEN); |
| 130 const PrecedenceInfo HASH_INFO = const PrecedenceInfo('#', 0, HASH_TOKEN); | 130 const PrecedenceInfo HASH_INFO = const PrecedenceInfo('#', 0, HASH_TOKEN); |
| 131 const PrecedenceInfo INDEX_EQ_INFO = | 131 const PrecedenceInfo INDEX_EQ_INFO = |
| 132 const PrecedenceInfo('[]=', 0, INDEX_EQ_TOKEN, isOperator: true); | 132 const PrecedenceInfo('[]=', 16, INDEX_EQ_TOKEN, isOperator: true); |
| 133 const PrecedenceInfo SEMICOLON_INFO = | 133 const PrecedenceInfo SEMICOLON_INFO = |
| 134 const PrecedenceInfo(';', 0, SEMICOLON_TOKEN); | 134 const PrecedenceInfo(';', 0, SEMICOLON_TOKEN); |
| 135 const PrecedenceInfo COMMA_INFO = const PrecedenceInfo(',', 0, COMMA_TOKEN); | 135 const PrecedenceInfo COMMA_INFO = const PrecedenceInfo(',', 0, COMMA_TOKEN); |
| 136 | 136 |
| 137 const PrecedenceInfo AT_INFO = const PrecedenceInfo('@', 0, AT_TOKEN); | 137 const PrecedenceInfo AT_INFO = const PrecedenceInfo('@', 0, AT_TOKEN); |
| 138 | 138 |
| 139 // Assignment operators. | 139 // Assignment operators. |
| 140 const int ASSIGNMENT_PRECEDENCE = 1; | 140 const int ASSIGNMENT_PRECEDENCE = 1; |
| 141 const PrecedenceInfo AMPERSAND_EQ_INFO = const PrecedenceInfo( | 141 const PrecedenceInfo AMPERSAND_EQ_INFO = const PrecedenceInfo( |
| 142 '&=', ASSIGNMENT_PRECEDENCE, AMPERSAND_EQ_TOKEN, | 142 '&=', ASSIGNMENT_PRECEDENCE, AMPERSAND_EQ_TOKEN, |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 // Multiplicative operators. | 246 // Multiplicative operators. |
| 247 const PrecedenceInfo PERCENT_INFO = | 247 const PrecedenceInfo PERCENT_INFO = |
| 248 const PrecedenceInfo('%', 14, PERCENT_TOKEN, isOperator: true); | 248 const PrecedenceInfo('%', 14, PERCENT_TOKEN, isOperator: true); |
| 249 const PrecedenceInfo SLASH_INFO = | 249 const PrecedenceInfo SLASH_INFO = |
| 250 const PrecedenceInfo('/', 14, SLASH_TOKEN, isOperator: true); | 250 const PrecedenceInfo('/', 14, SLASH_TOKEN, isOperator: true); |
| 251 const PrecedenceInfo STAR_INFO = | 251 const PrecedenceInfo STAR_INFO = |
| 252 const PrecedenceInfo('*', 14, STAR_TOKEN, isOperator: true); | 252 const PrecedenceInfo('*', 14, STAR_TOKEN, isOperator: true); |
| 253 const PrecedenceInfo TILDE_SLASH_INFO = | 253 const PrecedenceInfo TILDE_SLASH_INFO = |
| 254 const PrecedenceInfo('~/', 14, TILDE_SLASH_TOKEN, isOperator: true); | 254 const PrecedenceInfo('~/', 14, TILDE_SLASH_TOKEN, isOperator: true); |
| 255 | 255 |
| 256 const int POSTFIX_PRECEDENCE = 15; | 256 const int POSTFIX_PRECEDENCE = 16; |
| 257 const PrecedenceInfo PERIOD_INFO = | 257 const PrecedenceInfo PERIOD_INFO = |
| 258 const PrecedenceInfo('.', POSTFIX_PRECEDENCE, PERIOD_TOKEN); | 258 const PrecedenceInfo('.', POSTFIX_PRECEDENCE, PERIOD_TOKEN); |
| 259 const PrecedenceInfo QUESTION_PERIOD_INFO = const PrecedenceInfo( | 259 const PrecedenceInfo QUESTION_PERIOD_INFO = const PrecedenceInfo( |
| 260 '?.', POSTFIX_PRECEDENCE, QUESTION_PERIOD_TOKEN, | 260 '?.', POSTFIX_PRECEDENCE, QUESTION_PERIOD_TOKEN, |
| 261 isOperator: true); | 261 isOperator: true); |
| 262 | 262 |
| 263 const PrecedenceInfo KEYWORD_INFO = | 263 const PrecedenceInfo KEYWORD_INFO = |
| 264 const PrecedenceInfo('keyword', 0, KEYWORD_TOKEN); | 264 const PrecedenceInfo('keyword', 0, KEYWORD_TOKEN); |
| 265 | 265 |
| 266 const PrecedenceInfo EOF_INFO = const PrecedenceInfo('EOF', 0, EOF_TOKEN); | 266 const PrecedenceInfo EOF_INFO = const PrecedenceInfo('EOF', 0, EOF_TOKEN); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 const PrecedenceInfo('\${', 0, STRING_INTERPOLATION_TOKEN); | 309 const PrecedenceInfo('\${', 0, STRING_INTERPOLATION_TOKEN); |
| 310 | 310 |
| 311 const PrecedenceInfo STRING_INTERPOLATION_IDENTIFIER_INFO = | 311 const PrecedenceInfo STRING_INTERPOLATION_IDENTIFIER_INFO = |
| 312 const PrecedenceInfo('\$', 0, STRING_INTERPOLATION_IDENTIFIER_TOKEN); | 312 const PrecedenceInfo('\$', 0, STRING_INTERPOLATION_IDENTIFIER_TOKEN); |
| 313 | 313 |
| 314 const PrecedenceInfo HEXADECIMAL_INFO = | 314 const PrecedenceInfo HEXADECIMAL_INFO = |
| 315 const PrecedenceInfo('hexadecimal', 0, HEXADECIMAL_TOKEN); | 315 const PrecedenceInfo('hexadecimal', 0, HEXADECIMAL_TOKEN); |
| 316 | 316 |
| 317 const PrecedenceInfo COMMENT_INFO = | 317 const PrecedenceInfo COMMENT_INFO = |
| 318 const PrecedenceInfo('comment', 0, COMMENT_TOKEN); | 318 const PrecedenceInfo('comment', 0, COMMENT_TOKEN); |
| OLD | NEW |