| 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 1276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1287 ConstructorName redirectedConstructor = null; // TODO(paulberry) | 1287 ConstructorName redirectedConstructor = null; // TODO(paulberry) |
| 1288 List<ConstructorInitializer> initializers = null; // TODO(paulberry) | 1288 List<ConstructorInitializer> initializers = null; // TODO(paulberry) |
| 1289 Token separator = null; // TODO(paulberry) | 1289 Token separator = null; // TODO(paulberry) |
| 1290 FormalParameterList parameters = pop(); | 1290 FormalParameterList parameters = pop(); |
| 1291 TypeParameterList typeParameters = pop(); // TODO(paulberry) | 1291 TypeParameterList typeParameters = pop(); // TODO(paulberry) |
| 1292 var name = pop(); | 1292 var name = pop(); |
| 1293 TypeAnnotation returnType = pop(); // TODO(paulberry) | 1293 TypeAnnotation returnType = pop(); // TODO(paulberry) |
| 1294 _Modifiers modifiers = pop(); | 1294 _Modifiers modifiers = pop(); |
| 1295 List<Annotation> metadata = pop(); | 1295 List<Annotation> metadata = pop(); |
| 1296 Comment comment = pop(); | 1296 Comment comment = pop(); |
| 1297 Token period; | 1297 |
| 1298 void unnamedConstructor( | 1298 void constructor(SimpleIdentifier returnType, analyzer.Token period, |
| 1299 SimpleIdentifier returnType, SimpleIdentifier name) { | 1299 SimpleIdentifier name) { |
| 1300 push(ast.constructorDeclaration( | 1300 push(ast.constructorDeclaration( |
| 1301 comment, | 1301 comment, |
| 1302 metadata, | 1302 metadata, |
| 1303 toAnalyzerToken(modifiers?.externalKeyword), | 1303 toAnalyzerToken(modifiers?.externalKeyword), |
| 1304 toAnalyzerToken(modifiers?.finalConstOrVarKeyword), | 1304 toAnalyzerToken(modifiers?.finalConstOrVarKeyword), |
| 1305 null, // TODO(paulberry): factoryKeyword | 1305 null, // TODO(paulberry): factoryKeyword |
| 1306 returnType, | 1306 returnType, |
| 1307 toAnalyzerToken(period), | 1307 period, |
| 1308 name, | 1308 name, |
| 1309 parameters, | 1309 parameters, |
| 1310 toAnalyzerToken(separator), | 1310 toAnalyzerToken(separator), |
| 1311 initializers, | 1311 initializers, |
| 1312 redirectedConstructor, | 1312 redirectedConstructor, |
| 1313 body)); | 1313 body)); |
| 1314 } | 1314 } |
| 1315 | 1315 |
| 1316 void method(Token operatorKeyword, SimpleIdentifier name) { | 1316 void method(Token operatorKeyword, SimpleIdentifier name) { |
| 1317 push(ast.methodDeclaration( | 1317 push(ast.methodDeclaration( |
| 1318 comment, | 1318 comment, |
| 1319 metadata, | 1319 metadata, |
| 1320 toAnalyzerToken(modifiers?.externalKeyword), | 1320 toAnalyzerToken(modifiers?.externalKeyword), |
| 1321 toAnalyzerToken( | 1321 toAnalyzerToken( |
| 1322 modifiers?.abstractKeyword ?? modifiers?.staticKeyword), | 1322 modifiers?.abstractKeyword ?? modifiers?.staticKeyword), |
| 1323 returnType, | 1323 returnType, |
| 1324 toAnalyzerToken(getOrSet), | 1324 toAnalyzerToken(getOrSet), |
| 1325 toAnalyzerToken(operatorKeyword), | 1325 toAnalyzerToken(operatorKeyword), |
| 1326 name, | 1326 name, |
| 1327 typeParameters, | 1327 typeParameters, |
| 1328 parameters, | 1328 parameters, |
| 1329 body)); | 1329 body)); |
| 1330 } | 1330 } |
| 1331 | 1331 |
| 1332 if (name is SimpleIdentifier) { | 1332 if (name is SimpleIdentifier) { |
| 1333 if (name.name == className) { | 1333 if (name.name == className) { |
| 1334 unnamedConstructor(name, null); | 1334 constructor(name, null, null); |
| 1335 } else { | 1335 } else { |
| 1336 method(null, name); | 1336 method(null, name); |
| 1337 } | 1337 } |
| 1338 } else if (name is _OperatorName) { | 1338 } else if (name is _OperatorName) { |
| 1339 method(name.operatorKeyword, name.name); | 1339 method(name.operatorKeyword, name.name); |
| 1340 } else if (name is PrefixedIdentifier) { |
| 1341 constructor(name.prefix, name.period, name.identifier); |
| 1340 } else { | 1342 } else { |
| 1341 throw new UnimplementedError(); | 1343 throw new UnimplementedError(); |
| 1342 } | 1344 } |
| 1343 } | 1345 } |
| 1344 | 1346 |
| 1345 @override | 1347 @override |
| 1346 void endMember() { | 1348 void endMember() { |
| 1347 debugEvent("Member"); | 1349 debugEvent("Member"); |
| 1348 } | 1350 } |
| 1349 | 1351 |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1586 } else if (identical('static', s)) { | 1588 } else if (identical('static', s)) { |
| 1587 staticKeyword = token; | 1589 staticKeyword = token; |
| 1588 } else if (identical('var', s)) { | 1590 } else if (identical('var', s)) { |
| 1589 finalConstOrVarKeyword = token; | 1591 finalConstOrVarKeyword = token; |
| 1590 } else { | 1592 } else { |
| 1591 internalError('Unhandled modifier: $s'); | 1593 internalError('Unhandled modifier: $s'); |
| 1592 } | 1594 } |
| 1593 } | 1595 } |
| 1594 } | 1596 } |
| 1595 } | 1597 } |
| OLD | NEW |