Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: lib/compiler/implementation/scanner/token.dart

Issue 10236005: Fix small problems with precedence of cascades. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Make withoutCascade flag local. Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 final int EOF_TOKEN = 0;
6 6
7 final int KEYWORD_TOKEN = $k; 7 final int KEYWORD_TOKEN = $k;
8 final int IDENTIFIER_TOKEN = $a; 8 final int IDENTIFIER_TOKEN = $a;
9 final int DOUBLE_TOKEN = $d; 9 final int DOUBLE_TOKEN = $d;
10 final int INT_TOKEN = $i; 10 final int INT_TOKEN = $i;
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 // TODO(ahe): The following are not tokens in Dart. 242 // TODO(ahe): The following are not tokens in Dart.
243 final PrecedenceInfo BACKPING_INFO = 243 final PrecedenceInfo BACKPING_INFO =
244 const PrecedenceInfo(const SourceString('`'), 0, BACKPING_TOKEN); 244 const PrecedenceInfo(const SourceString('`'), 0, BACKPING_TOKEN);
245 final PrecedenceInfo BACKSLASH_INFO = 245 final PrecedenceInfo BACKSLASH_INFO =
246 const PrecedenceInfo(const SourceString('\\'), 0, BACKSLASH_TOKEN); 246 const PrecedenceInfo(const SourceString('\\'), 0, BACKSLASH_TOKEN);
247 final PrecedenceInfo PERIOD_PERIOD_PERIOD_INFO = 247 final PrecedenceInfo PERIOD_PERIOD_PERIOD_INFO =
248 const PrecedenceInfo(const SourceString('...'), 0, 248 const PrecedenceInfo(const SourceString('...'), 0,
249 PERIOD_PERIOD_PERIOD_TOKEN); 249 PERIOD_PERIOD_PERIOD_TOKEN);
250 250
251 /** 251 /**
252 * The cascade operator has the lowest precedence of any operator. 252 * The cascade operator has the lowest precedence of any operator
253 * except assignment.
253 */ 254 */
254 final int CASCADE_PRECEDENCE = 1; 255 final int CASCADE_PRECEDENCE = 2;
255 final PrecedenceInfo PERIOD_PERIOD_INFO = 256 final PrecedenceInfo PERIOD_PERIOD_INFO =
256 const PrecedenceInfo(const SourceString('..'), CASCADE_PRECEDENCE, 257 const PrecedenceInfo(const SourceString('..'), CASCADE_PRECEDENCE,
257 PERIOD_PERIOD_TOKEN); 258 PERIOD_PERIOD_TOKEN);
258 259
259 final PrecedenceInfo BANG_INFO = 260 final PrecedenceInfo BANG_INFO =
260 const PrecedenceInfo(const SourceString('!'), 0, BANG_TOKEN); 261 const PrecedenceInfo(const SourceString('!'), 0, BANG_TOKEN);
261 final PrecedenceInfo COLON_INFO = 262 final PrecedenceInfo COLON_INFO =
262 const PrecedenceInfo(const SourceString(':'), 0, COLON_TOKEN); 263 const PrecedenceInfo(const SourceString(':'), 0, COLON_TOKEN);
263 final PrecedenceInfo INDEX_INFO = 264 final PrecedenceInfo INDEX_INFO =
264 const PrecedenceInfo(const SourceString('[]'), 0, INDEX_TOKEN); 265 const PrecedenceInfo(const SourceString('[]'), 0, INDEX_TOKEN);
(...skipping 11 matching lines...) Expand all
276 final PrecedenceInfo HASH_INFO = 277 final PrecedenceInfo HASH_INFO =
277 const PrecedenceInfo(const SourceString('#'), 0, HASH_TOKEN); 278 const PrecedenceInfo(const SourceString('#'), 0, HASH_TOKEN);
278 final PrecedenceInfo INDEX_EQ_INFO = 279 final PrecedenceInfo INDEX_EQ_INFO =
279 const PrecedenceInfo(const SourceString('[]='), 0, INDEX_EQ_TOKEN); 280 const PrecedenceInfo(const SourceString('[]='), 0, INDEX_EQ_TOKEN);
280 final PrecedenceInfo SEMICOLON_INFO = 281 final PrecedenceInfo SEMICOLON_INFO =
281 const PrecedenceInfo(const SourceString(';'), 0, SEMICOLON_TOKEN); 282 const PrecedenceInfo(const SourceString(';'), 0, SEMICOLON_TOKEN);
282 final PrecedenceInfo COMMA_INFO = 283 final PrecedenceInfo COMMA_INFO =
283 const PrecedenceInfo(const SourceString(','), 0, COMMA_TOKEN); 284 const PrecedenceInfo(const SourceString(','), 0, COMMA_TOKEN);
284 285
285 // Assignment operators. 286 // Assignment operators.
286 final int ASSIGNMENT_PRECEDENCE = 2; 287 final int ASSIGNMENT_PRECEDENCE = 1;
287 final PrecedenceInfo AMPERSAND_EQ_INFO = 288 final PrecedenceInfo AMPERSAND_EQ_INFO =
288 const PrecedenceInfo(const SourceString('&='), 289 const PrecedenceInfo(const SourceString('&='),
289 ASSIGNMENT_PRECEDENCE, AMPERSAND_EQ_TOKEN); 290 ASSIGNMENT_PRECEDENCE, AMPERSAND_EQ_TOKEN);
290 final PrecedenceInfo BAR_EQ_INFO = 291 final PrecedenceInfo BAR_EQ_INFO =
291 const PrecedenceInfo(const SourceString('|='), 292 const PrecedenceInfo(const SourceString('|='),
292 ASSIGNMENT_PRECEDENCE, BAR_EQ_TOKEN); 293 ASSIGNMENT_PRECEDENCE, BAR_EQ_TOKEN);
293 final PrecedenceInfo CARET_EQ_INFO = 294 final PrecedenceInfo CARET_EQ_INFO =
294 const PrecedenceInfo(const SourceString('^='), 295 const PrecedenceInfo(const SourceString('^='),
295 ASSIGNMENT_PRECEDENCE, CARET_EQ_TOKEN); 296 ASSIGNMENT_PRECEDENCE, CARET_EQ_TOKEN);
296 final PrecedenceInfo EQ_INFO = 297 final PrecedenceInfo EQ_INFO =
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 final PrecedenceInfo STRING_INTERPOLATION_INFO = 435 final PrecedenceInfo STRING_INTERPOLATION_INFO =
435 const PrecedenceInfo(const SourceString('\${'), 0, 436 const PrecedenceInfo(const SourceString('\${'), 0,
436 STRING_INTERPOLATION_TOKEN); 437 STRING_INTERPOLATION_TOKEN);
437 438
438 final PrecedenceInfo HEXADECIMAL_INFO = 439 final PrecedenceInfo HEXADECIMAL_INFO =
439 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN); 440 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN);
440 441
441 // For reporting lexical errors. 442 // For reporting lexical errors.
442 final PrecedenceInfo ERROR_INFO = 443 final PrecedenceInfo ERROR_INFO =
443 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN); 444 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698