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

Side by Side Diff: dart/sdk/lib/_internal/compiler/implementation/scanner/parser.dart

Issue 11293244: Implement --analyze-all option. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Correctly parse metadata Created 8 years, 1 month 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) 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 part of scanner; 5 part of scanner;
6 6
7 /** 7 /**
8 * An event generating parser of Dart programs. This parser expects 8 * An event generating parser of Dart programs. This parser expects
9 * all tokens in a linked list (aka a token stream). 9 * all tokens in a linked list (aka a token stream).
10 * 10 *
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 /** 203 /**
204 * Parse 204 * Parse
205 * [: '@' qualified (‘.’ identifier)? (arguments)? :] 205 * [: '@' qualified (‘.’ identifier)? (arguments)? :]
206 */ 206 */
207 Token parseMetadata(Token token) { 207 Token parseMetadata(Token token) {
208 listener.beginMetadata(token); 208 listener.beginMetadata(token);
209 Token atToken = token; 209 Token atToken = token;
210 assert(optional('@', token)); 210 assert(optional('@', token));
211 token = parseIdentifier(token.next); 211 token = parseIdentifier(token.next);
212 token = parseQualifiedRestOpt(token); 212 token = parseQualifiedRestOpt(token);
213 token = parseQualifiedRestOpt(token); 213 token = parseTypeArgumentsOpt(token);
214 Token period = null;
215 if (optional('.', token)) {
216 period = token;
217 token = parseIdentifier(token.next);
218 }
214 token = parseArgumentsOpt(token); 219 token = parseArgumentsOpt(token);
215 listener.endMetadata(atToken, token); 220 listener.endMetadata(atToken, period, token);
216 return token; 221 return token;
217 } 222 }
218 223
219 Token parseInterface(Token token) { 224 Token parseInterface(Token token) {
220 Token interfaceKeyword = token; 225 Token interfaceKeyword = token;
221 listener.beginInterface(token); 226 listener.beginInterface(token);
222 token = parseIdentifier(token.next); 227 token = parseIdentifier(token.next);
223 token = parseTypeVariablesOpt(token); 228 token = parseTypeVariablesOpt(token);
224 int supertypeCount = 0; 229 int supertypeCount = 0;
225 Token extendsKeyword = null; 230 Token extendsKeyword = null;
(...skipping 1923 matching lines...) Expand 10 before | Expand all | Expand 10 after
2149 } 2154 }
2150 listener.handleContinueStatement(hasTarget, continueKeyword, token); 2155 listener.handleContinueStatement(hasTarget, continueKeyword, token);
2151 return expectSemicolon(token); 2156 return expectSemicolon(token);
2152 } 2157 }
2153 2158
2154 Token parseEmptyStatement(Token token) { 2159 Token parseEmptyStatement(Token token) {
2155 listener.handleEmptyStatement(token); 2160 listener.handleEmptyStatement(token);
2156 return expectSemicolon(token); 2161 return expectSemicolon(token);
2157 } 2162 }
2158 } 2163 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698