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

Side by Side Diff: pkg/compiler/lib/src/parser/partial_parser.dart

Issue 2385643003: Fixes in dart2js parser to be able to parse files without the diet-parser (Closed)
Patch Set: Created 4 years, 2 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
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 library dart2js.parser.partial; 5 library dart2js.parser.partial;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../options.dart' show ParserOptions; 8 import '../options.dart' show ParserOptions;
9 import '../tokens/token.dart' show BeginGroupToken, ErrorToken, Token; 9 import '../tokens/token.dart' show BeginGroupToken, ErrorToken, Token;
10 import '../tokens/token_constants.dart' as Tokens show EOF_TOKEN; 10 import '../tokens/token_constants.dart' as Tokens show EOF_TOKEN;
11 import '../util/characters.dart' as Characters show $CLOSE_CURLY_BRACKET; 11 import '../util/characters.dart' as Characters show $CLOSE_CURLY_BRACKET;
12 import 'listener.dart' show Listener; 12 import 'listener.dart' show Listener;
13 import 'parser.dart' show Parser; 13 import 'parser.dart' show Parser;
14 14
15 class PartialParser extends Parser { 15 class PartialParser extends Parser {
16 PartialParser(Listener listener, ParserOptions options) 16 PartialParser(Listener listener, ParserOptions options)
17 : super(listener, options); 17 : super(listener, options);
18 18
19 Token parseClassBody(Token token) => skipClassBody(token); 19 Token parseClassBody(Token token) => skipClassBody(token);
20 20
21 Token fullParseClassBody(Token token) => super.parseClassBody(token); 21 Token fullParseClassBody(Token token) => super.parseClassBody(token);
22 22
23 Token parseExpression(Token token) => skipExpression(token); 23 Token parseExpression(Token token) => skipExpression(token);
24 24
25 Token parseArgumentsOpt(Token token) { 25 Token parseArgumentsOpt(Token token) {
26 // This method is overridden for two reasons: 26 // This method is overridden for two reasons:
27 // 1. Avoid generating events for arguments. 27 // 1. Avoid generating events for arguments.
28 // 2. Avoid calling skip expression for each argument (which doesn't work). 28 // 2. Avoid calling skip expression for each argument (which doesn't work).
29 listener.handleNoArguments(token);
Siggi Cherem (dart-lang) 2016/09/30 22:28:07 note: listeners now assume that metadata is always
29 if (optional('(', token)) { 30 if (optional('(', token)) {
30 BeginGroupToken begin = token; 31 BeginGroupToken begin = token;
31 return begin.endGroup.next; 32 return begin.endGroup.next;
32 } else { 33 } else {
33 return token; 34 return token;
34 } 35 }
35 } 36 }
36 37
37 Token skipExpression(Token token) { 38 Token skipExpression(Token token) {
38 while (true) { 39 while (true) {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 return token; 168 return token;
168 } 169 }
169 return listener.unexpected(token); 170 return listener.unexpected(token);
170 } 171 }
171 BeginGroupToken beginGroupToken = token; 172 BeginGroupToken beginGroupToken = token;
172 Token endToken = beginGroupToken.endGroup; 173 Token endToken = beginGroupToken.endGroup;
173 listener.endFormalParameters(0, token, endToken); 174 listener.endFormalParameters(0, token, endToken);
174 return endToken.next; 175 return endToken.next;
175 } 176 }
176 } 177 }
OLDNEW
« pkg/compiler/lib/src/parser/parser.dart ('K') | « pkg/compiler/lib/src/parser/parser.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698