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

Side by Side Diff: pkg/front_end/lib/src/fasta/parser/parser.dart

Issue 2767543003: Add begin events for const and new expressions. (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « pkg/front_end/lib/src/fasta/parser/listener.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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.parser.parser; 5 library fasta.parser.parser;
6 6
7 import '../scanner.dart' show ErrorToken; 7 import '../scanner.dart' show ErrorToken;
8 8
9 import '../scanner/recover.dart' show closeBraceFor, skipToEof; 9 import '../scanner/recover.dart' show closeBraceFor, skipToEof;
10 10
(...skipping 2997 matching lines...) Expand 10 before | Expand all | Expand 10 after
3008 } else { 3008 } else {
3009 listener.handleNoArguments(token); 3009 listener.handleNoArguments(token);
3010 token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken)?.next; 3010 token = reportUnrecoverableError(token, ErrorKind.UnexpectedToken)?.next;
3011 } 3011 }
3012 return token; 3012 return token;
3013 } 3013 }
3014 3014
3015 Token parseNewExpression(Token token) { 3015 Token parseNewExpression(Token token) {
3016 Token newKeyword = token; 3016 Token newKeyword = token;
3017 token = expect('new', token); 3017 token = expect('new', token);
3018 listener.beginNewExpression(newKeyword);
3018 token = parseConstructorReference(token); 3019 token = parseConstructorReference(token);
3019 token = parseRequiredArguments(token); 3020 token = parseRequiredArguments(token);
3020 listener.handleNewExpression(newKeyword); 3021 listener.endNewExpression(newKeyword);
3021 return token; 3022 return token;
3022 } 3023 }
3023 3024
3024 Token parseConstExpression(Token token) { 3025 Token parseConstExpression(Token token) {
3025 Token constKeyword = token; 3026 Token constKeyword = token;
3026 token = expect('const', token); 3027 token = expect('const', token);
3027 final String value = token.stringValue; 3028 final String value = token.stringValue;
3028 if ((identical(value, '[')) || (identical(value, '[]'))) { 3029 if ((identical(value, '[')) || (identical(value, '[]'))) {
3029 listener.handleNoTypeArguments(token); 3030 listener.handleNoTypeArguments(token);
3030 return parseLiteralListSuffix(token, constKeyword); 3031 return parseLiteralListSuffix(token, constKeyword);
3031 } 3032 }
3032 if (identical(value, '{')) { 3033 if (identical(value, '{')) {
3033 listener.handleNoTypeArguments(token); 3034 listener.handleNoTypeArguments(token);
3034 return parseLiteralMapSuffix(token, constKeyword); 3035 return parseLiteralMapSuffix(token, constKeyword);
3035 } 3036 }
3036 if (identical(value, '<')) { 3037 if (identical(value, '<')) {
3037 return parseLiteralListOrMapOrFunction(token, constKeyword); 3038 return parseLiteralListOrMapOrFunction(token, constKeyword);
3038 } 3039 }
3040 listener.beginConstExpression(constKeyword);
3039 token = parseConstructorReference(token); 3041 token = parseConstructorReference(token);
3040 token = parseRequiredArguments(token); 3042 token = parseRequiredArguments(token);
3041 listener.handleConstExpression(constKeyword); 3043 listener.endConstExpression(constKeyword);
3042 return token; 3044 return token;
3043 } 3045 }
3044 3046
3045 Token parseLiteralInt(Token token) { 3047 Token parseLiteralInt(Token token) {
3046 listener.handleLiteralInt(token); 3048 listener.handleLiteralInt(token);
3047 return token.next; 3049 return token.next;
3048 } 3050 }
3049 3051
3050 Token parseLiteralDouble(Token token) { 3052 Token parseLiteralDouble(Token token) {
3051 listener.handleLiteralDouble(token); 3053 listener.handleLiteralDouble(token);
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
3697 break; 3699 break;
3698 } 3700 }
3699 if (isRecoverable) { 3701 if (isRecoverable) {
3700 listener.handleRecoverableError(token, kind, arguments); 3702 listener.handleRecoverableError(token, kind, arguments);
3701 return null; 3703 return null;
3702 } else { 3704 } else {
3703 return listener.handleUnrecoverableError(token, kind, arguments); 3705 return listener.handleUnrecoverableError(token, kind, arguments);
3704 } 3706 }
3705 } 3707 }
3706 } 3708 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/parser/listener.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698