OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 library dart2js.tokens.precedence.constants; | |
6 | |
7 import 'precedence.dart' show PrecedenceInfo; | |
8 import 'token_constants.dart'; | |
9 | |
10 // TODO(ahe): The following are not tokens in Dart. | |
11 const PrecedenceInfo BACKPING_INFO = | |
12 const PrecedenceInfo('`', 0, BACKPING_TOKEN); | |
13 const PrecedenceInfo BACKSLASH_INFO = | |
14 const PrecedenceInfo('\\', 0, BACKSLASH_TOKEN); | |
15 const PrecedenceInfo PERIOD_PERIOD_PERIOD_INFO = | |
16 const PrecedenceInfo('...', 0, PERIOD_PERIOD_PERIOD_TOKEN); | |
17 | |
18 /** | |
19 * The cascade operator has the lowest precedence of any operator | |
20 * except assignment. | |
21 */ | |
22 const int CASCADE_PRECEDENCE = 2; | |
23 const PrecedenceInfo PERIOD_PERIOD_INFO = | |
24 const PrecedenceInfo('..', CASCADE_PRECEDENCE, PERIOD_PERIOD_TOKEN); | |
25 | |
26 const PrecedenceInfo BANG_INFO = const PrecedenceInfo('!', 0, BANG_TOKEN); | |
27 const PrecedenceInfo COLON_INFO = const PrecedenceInfo(':', 0, COLON_TOKEN); | |
28 const PrecedenceInfo INDEX_INFO = const PrecedenceInfo('[]', 0, INDEX_TOKEN); | |
29 const PrecedenceInfo MINUS_MINUS_INFO = | |
30 const PrecedenceInfo('--', POSTFIX_PRECEDENCE, MINUS_MINUS_TOKEN); | |
31 const PrecedenceInfo PLUS_PLUS_INFO = | |
32 const PrecedenceInfo('++', POSTFIX_PRECEDENCE, PLUS_PLUS_TOKEN); | |
33 const PrecedenceInfo TILDE_INFO = const PrecedenceInfo('~', 0, TILDE_TOKEN); | |
34 | |
35 const PrecedenceInfo FUNCTION_INFO = | |
36 const PrecedenceInfo('=>', 0, FUNCTION_TOKEN); | |
37 const PrecedenceInfo HASH_INFO = const PrecedenceInfo('#', 0, HASH_TOKEN); | |
38 const PrecedenceInfo INDEX_EQ_INFO = | |
39 const PrecedenceInfo('[]=', 0, INDEX_EQ_TOKEN); | |
40 const PrecedenceInfo SEMICOLON_INFO = | |
41 const PrecedenceInfo(';', 0, SEMICOLON_TOKEN); | |
42 const PrecedenceInfo COMMA_INFO = const PrecedenceInfo(',', 0, COMMA_TOKEN); | |
43 | |
44 const PrecedenceInfo AT_INFO = const PrecedenceInfo('@', 0, AT_TOKEN); | |
45 | |
46 // Assignment operators. | |
47 const int ASSIGNMENT_PRECEDENCE = 1; | |
48 const PrecedenceInfo AMPERSAND_EQ_INFO = | |
49 const PrecedenceInfo('&=', ASSIGNMENT_PRECEDENCE, AMPERSAND_EQ_TOKEN); | |
50 const PrecedenceInfo BAR_EQ_INFO = | |
51 const PrecedenceInfo('|=', ASSIGNMENT_PRECEDENCE, BAR_EQ_TOKEN); | |
52 const PrecedenceInfo CARET_EQ_INFO = | |
53 const PrecedenceInfo('^=', ASSIGNMENT_PRECEDENCE, CARET_EQ_TOKEN); | |
54 const PrecedenceInfo EQ_INFO = | |
55 const PrecedenceInfo('=', ASSIGNMENT_PRECEDENCE, EQ_TOKEN); | |
56 const PrecedenceInfo GT_GT_EQ_INFO = | |
57 const PrecedenceInfo('>>=', ASSIGNMENT_PRECEDENCE, GT_GT_EQ_TOKEN); | |
58 const PrecedenceInfo LT_LT_EQ_INFO = | |
59 const PrecedenceInfo('<<=', ASSIGNMENT_PRECEDENCE, LT_LT_EQ_TOKEN); | |
60 const PrecedenceInfo MINUS_EQ_INFO = | |
61 const PrecedenceInfo('-=', ASSIGNMENT_PRECEDENCE, MINUS_EQ_TOKEN); | |
62 const PrecedenceInfo PERCENT_EQ_INFO = | |
63 const PrecedenceInfo('%=', ASSIGNMENT_PRECEDENCE, PERCENT_EQ_TOKEN); | |
64 const PrecedenceInfo PLUS_EQ_INFO = | |
65 const PrecedenceInfo('+=', ASSIGNMENT_PRECEDENCE, PLUS_EQ_TOKEN); | |
66 const PrecedenceInfo SLASH_EQ_INFO = | |
67 const PrecedenceInfo('/=', ASSIGNMENT_PRECEDENCE, SLASH_EQ_TOKEN); | |
68 const PrecedenceInfo STAR_EQ_INFO = | |
69 const PrecedenceInfo('*=', ASSIGNMENT_PRECEDENCE, STAR_EQ_TOKEN); | |
70 const PrecedenceInfo TILDE_SLASH_EQ_INFO = | |
71 const PrecedenceInfo('~/=', ASSIGNMENT_PRECEDENCE, TILDE_SLASH_EQ_TOKEN); | |
72 const PrecedenceInfo QUESTION_QUESTION_EQ_INFO = const PrecedenceInfo( | |
73 '??=', ASSIGNMENT_PRECEDENCE, QUESTION_QUESTION_EQ_TOKEN); | |
74 | |
75 const PrecedenceInfo QUESTION_INFO = | |
76 const PrecedenceInfo('?', 3, QUESTION_TOKEN); | |
77 | |
78 const PrecedenceInfo QUESTION_QUESTION_INFO = | |
79 const PrecedenceInfo('??', 4, QUESTION_QUESTION_TOKEN); | |
80 | |
81 const PrecedenceInfo BAR_BAR_INFO = | |
82 const PrecedenceInfo('||', 5, BAR_BAR_TOKEN); | |
83 | |
84 const PrecedenceInfo AMPERSAND_AMPERSAND_INFO = | |
85 const PrecedenceInfo('&&', 6, AMPERSAND_AMPERSAND_TOKEN); | |
86 | |
87 const PrecedenceInfo BAR_INFO = const PrecedenceInfo('|', 9, BAR_TOKEN); | |
88 | |
89 const PrecedenceInfo CARET_INFO = const PrecedenceInfo('^', 10, CARET_TOKEN); | |
90 | |
91 const PrecedenceInfo AMPERSAND_INFO = | |
92 const PrecedenceInfo('&', 11, AMPERSAND_TOKEN); | |
93 | |
94 // Equality operators. | |
95 const int EQUALITY_PRECEDENCE = 7; | |
96 const PrecedenceInfo BANG_EQ_EQ_INFO = | |
97 const PrecedenceInfo('!==', EQUALITY_PRECEDENCE, BANG_EQ_EQ_TOKEN); | |
98 const PrecedenceInfo BANG_EQ_INFO = | |
99 const PrecedenceInfo('!=', EQUALITY_PRECEDENCE, BANG_EQ_TOKEN); | |
100 const PrecedenceInfo EQ_EQ_EQ_INFO = | |
101 const PrecedenceInfo('===', EQUALITY_PRECEDENCE, EQ_EQ_EQ_TOKEN); | |
102 const PrecedenceInfo EQ_EQ_INFO = | |
103 const PrecedenceInfo('==', EQUALITY_PRECEDENCE, EQ_EQ_TOKEN); | |
104 | |
105 // Relational operators. | |
106 const int RELATIONAL_PRECEDENCE = 8; | |
107 const PrecedenceInfo GT_EQ_INFO = | |
108 const PrecedenceInfo('>=', RELATIONAL_PRECEDENCE, GT_EQ_TOKEN); | |
109 const PrecedenceInfo GT_INFO = | |
110 const PrecedenceInfo('>', RELATIONAL_PRECEDENCE, GT_TOKEN); | |
111 const PrecedenceInfo IS_INFO = | |
112 const PrecedenceInfo('is', RELATIONAL_PRECEDENCE, KEYWORD_TOKEN); | |
113 const PrecedenceInfo AS_INFO = | |
114 const PrecedenceInfo('as', RELATIONAL_PRECEDENCE, KEYWORD_TOKEN); | |
115 const PrecedenceInfo LT_EQ_INFO = | |
116 const PrecedenceInfo('<=', RELATIONAL_PRECEDENCE, LT_EQ_TOKEN); | |
117 const PrecedenceInfo LT_INFO = | |
118 const PrecedenceInfo('<', RELATIONAL_PRECEDENCE, LT_TOKEN); | |
119 | |
120 // Shift operators. | |
121 const PrecedenceInfo GT_GT_INFO = const PrecedenceInfo('>>', 12, GT_GT_TOKEN); | |
122 const PrecedenceInfo LT_LT_INFO = const PrecedenceInfo('<<', 12, LT_LT_TOKEN); | |
123 | |
124 // Additive operators. | |
125 const PrecedenceInfo MINUS_INFO = const PrecedenceInfo('-', 13, MINUS_TOKEN); | |
126 const PrecedenceInfo PLUS_INFO = const PrecedenceInfo('+', 13, PLUS_TOKEN); | |
127 | |
128 // Multiplicative operators. | |
129 const PrecedenceInfo PERCENT_INFO = | |
130 const PrecedenceInfo('%', 14, PERCENT_TOKEN); | |
131 const PrecedenceInfo SLASH_INFO = const PrecedenceInfo('/', 14, SLASH_TOKEN); | |
132 const PrecedenceInfo STAR_INFO = const PrecedenceInfo('*', 14, STAR_TOKEN); | |
133 const PrecedenceInfo TILDE_SLASH_INFO = | |
134 const PrecedenceInfo('~/', 14, TILDE_SLASH_TOKEN); | |
135 | |
136 const int POSTFIX_PRECEDENCE = 15; | |
137 const PrecedenceInfo PERIOD_INFO = | |
138 const PrecedenceInfo('.', POSTFIX_PRECEDENCE, PERIOD_TOKEN); | |
139 const PrecedenceInfo QUESTION_PERIOD_INFO = | |
140 const PrecedenceInfo('?.', POSTFIX_PRECEDENCE, QUESTION_PERIOD_TOKEN); | |
141 | |
142 const PrecedenceInfo KEYWORD_INFO = | |
143 const PrecedenceInfo('keyword', 0, KEYWORD_TOKEN); | |
144 | |
145 const PrecedenceInfo EOF_INFO = const PrecedenceInfo('EOF', 0, EOF_TOKEN); | |
146 | |
147 const PrecedenceInfo IDENTIFIER_INFO = | |
148 const PrecedenceInfo('identifier', 0, IDENTIFIER_TOKEN); | |
149 | |
150 const PrecedenceInfo BAD_INPUT_INFO = | |
151 const PrecedenceInfo('malformed input', 0, BAD_INPUT_TOKEN); | |
152 | |
153 const PrecedenceInfo OPEN_PAREN_INFO = | |
154 const PrecedenceInfo('(', POSTFIX_PRECEDENCE, OPEN_PAREN_TOKEN); | |
155 | |
156 const PrecedenceInfo CLOSE_PAREN_INFO = | |
157 const PrecedenceInfo(')', 0, CLOSE_PAREN_TOKEN); | |
158 | |
159 const PrecedenceInfo OPEN_CURLY_BRACKET_INFO = | |
160 const PrecedenceInfo('{', 0, OPEN_CURLY_BRACKET_TOKEN); | |
161 | |
162 const PrecedenceInfo CLOSE_CURLY_BRACKET_INFO = | |
163 const PrecedenceInfo('}', 0, CLOSE_CURLY_BRACKET_TOKEN); | |
164 | |
165 const PrecedenceInfo INT_INFO = const PrecedenceInfo('int', 0, INT_TOKEN); | |
166 | |
167 const PrecedenceInfo STRING_INFO = | |
168 const PrecedenceInfo('string', 0, STRING_TOKEN); | |
169 | |
170 const PrecedenceInfo OPEN_SQUARE_BRACKET_INFO = | |
171 const PrecedenceInfo('[', POSTFIX_PRECEDENCE, OPEN_SQUARE_BRACKET_TOKEN); | |
172 | |
173 const PrecedenceInfo CLOSE_SQUARE_BRACKET_INFO = | |
174 const PrecedenceInfo(']', 0, CLOSE_SQUARE_BRACKET_TOKEN); | |
175 | |
176 const PrecedenceInfo DOUBLE_INFO = | |
177 const PrecedenceInfo('double', 0, DOUBLE_TOKEN); | |
178 | |
179 const PrecedenceInfo STRING_INTERPOLATION_INFO = | |
180 const PrecedenceInfo('\${', 0, STRING_INTERPOLATION_TOKEN); | |
181 | |
182 const PrecedenceInfo STRING_INTERPOLATION_IDENTIFIER_INFO = | |
183 const PrecedenceInfo('\$', 0, STRING_INTERPOLATION_IDENTIFIER_TOKEN); | |
184 | |
185 const PrecedenceInfo HEXADECIMAL_INFO = | |
186 const PrecedenceInfo('hexadecimal', 0, HEXADECIMAL_TOKEN); | |
187 | |
188 const PrecedenceInfo COMMENT_INFO = | |
189 const PrecedenceInfo('comment', 0, COMMENT_TOKEN); | |
OLD | NEW |