OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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.analyzer.ast_builder; | 5 library fasta.analyzer.ast_builder; |
6 | 6 |
7 import 'package:analyzer/analyzer.dart'; | 7 import 'package:analyzer/analyzer.dart'; |
8 import 'package:analyzer/dart/ast/ast_factory.dart' show AstFactory; | 8 import 'package:analyzer/dart/ast/ast_factory.dart' show AstFactory; |
9 import 'package:analyzer/dart/ast/standard_ast_factory.dart' as standard; | 9 import 'package:analyzer/dart/ast/standard_ast_factory.dart' as standard; |
10 import 'package:analyzer/dart/ast/token.dart' as analyzer show Token; | 10 import 'package:analyzer/dart/ast/token.dart' as analyzer show Token; |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 push(ast.enumConstantDeclaration(comment, metadata, identifier)); | 220 push(ast.enumConstantDeclaration(comment, metadata, identifier)); |
221 } else { | 221 } else { |
222 if (context.isScopeReference) { | 222 if (context.isScopeReference) { |
223 String name = token.lexeme; | 223 String name = token.lexeme; |
224 Builder builder = scope.lookup(name, token.charOffset, uri); | 224 Builder builder = scope.lookup(name, token.charOffset, uri); |
225 if (builder != null) { | 225 if (builder != null) { |
226 Element element = elementStore[builder]; | 226 Element element = elementStore[builder]; |
227 assert(element != null); | 227 assert(element != null); |
228 identifier.staticElement = element; | 228 identifier.staticElement = element; |
229 } | 229 } |
230 } else if (context == IdentifierContext.classDeclaration) { | |
231 className = identifier.name; | |
232 } | 230 } |
233 push(identifier); | 231 push(identifier); |
234 } | 232 } |
235 } | 233 } |
236 | 234 |
237 void endSend(Token beginToken, Token endToken) { | 235 void endSend(Token beginToken, Token endToken) { |
238 debugEvent("Send"); | 236 debugEvent("Send"); |
239 MethodInvocation arguments = pop(); | 237 MethodInvocation arguments = pop(); |
240 TypeArgumentList typeArguments = pop(); | 238 TypeArgumentList typeArguments = pop(); |
241 if (arguments != null) { | 239 if (arguments != null) { |
(...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1331 } | 1329 } |
1332 | 1330 |
1333 @override | 1331 @override |
1334 void endClassBody(int memberCount, Token beginToken, Token endToken) { | 1332 void endClassBody(int memberCount, Token beginToken, Token endToken) { |
1335 debugEvent("ClassBody"); | 1333 debugEvent("ClassBody"); |
1336 push(new _ClassBody( | 1334 push(new _ClassBody( |
1337 beginToken, popList(memberCount) ?? <ClassMember>[], endToken)); | 1335 beginToken, popList(memberCount) ?? <ClassMember>[], endToken)); |
1338 } | 1336 } |
1339 | 1337 |
1340 @override | 1338 @override |
| 1339 void beginClassDeclaration(Token beginToken, Token name) { |
| 1340 assert(className == null); |
| 1341 className = name.lexeme; |
| 1342 } |
| 1343 |
| 1344 @override |
1341 void endClassDeclaration( | 1345 void endClassDeclaration( |
1342 int interfacesCount, | 1346 int interfacesCount, |
1343 Token beginToken, | 1347 Token beginToken, |
1344 Token classKeyword, | 1348 Token classKeyword, |
1345 Token extendsKeyword, | 1349 Token extendsKeyword, |
1346 Token implementsKeyword, | 1350 Token implementsKeyword, |
1347 Token endToken) { | 1351 Token endToken) { |
1348 debugEvent("ClassDeclaration"); | 1352 debugEvent("ClassDeclaration"); |
1349 _ClassBody body = pop(); | 1353 _ClassBody body = pop(); |
1350 ImplementsClause implementsClause; | 1354 ImplementsClause implementsClause; |
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2034 } else if (identical('var', s)) { | 2038 } else if (identical('var', s)) { |
2035 finalConstOrVarKeyword = token; | 2039 finalConstOrVarKeyword = token; |
2036 } else if (identical('covariant', s)) { | 2040 } else if (identical('covariant', s)) { |
2037 covariantKeyword = token; | 2041 covariantKeyword = token; |
2038 } else { | 2042 } else { |
2039 internalError('Unhandled modifier: $s'); | 2043 internalError('Unhandled modifier: $s'); |
2040 } | 2044 } |
2041 } | 2045 } |
2042 } | 2046 } |
2043 } | 2047 } |
OLD | NEW |