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.body_builder; | 5 library fasta.body_builder; |
6 | 6 |
7 import 'package:dart_parser/src/parser.dart' show | 7 import 'package:dart_parser/src/parser.dart' show |
8 FormalParameterType, | 8 FormalParameterType, |
9 optional; | 9 optional; |
10 | 10 |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 ..parent = initializer; | 373 ..parent = initializer; |
374 member.addInitializer(initializer); | 374 member.addInitializer(initializer); |
375 } | 375 } |
376 } | 376 } |
377 } | 377 } |
378 } | 378 } |
379 } | 379 } |
380 } | 380 } |
381 | 381 |
382 @override | 382 @override |
383 void beginConstructorInitializer(Token token) { | 383 void beginInitializer(Token token) { |
384 debugEvent("beginConstructorInitializer"); | 384 debugEvent("beginInitializer"); |
385 inInitializer = true; | 385 inInitializer = true; |
386 } | 386 } |
387 | 387 |
388 @override | 388 @override |
389 void endConstructorInitializer(Token token) { | 389 void endInitializer(Token token) { |
390 debugEvent("endConstructorInitializer"); | 390 debugEvent("endInitializer"); |
391 assert(!inInitializer); | 391 assert(!inInitializer); |
392 final member = this.member; | 392 final member = this.member; |
393 var node = pop(); | 393 var node = pop(); |
394 Initializer initializer; | 394 Initializer initializer; |
395 if (node is Initializer) { | 395 if (node is Initializer) { |
396 initializer = node; | 396 initializer = node; |
397 } else if (node is BuilderAccessor) { | 397 } else if (node is BuilderAccessor) { |
398 initializer = node.buildFieldInitializer(fieldInitializers); | 398 initializer = node.buildFieldInitializer(fieldInitializers); |
399 } else if (node is ConstructorInvocation) { | 399 } else if (node is ConstructorInvocation) { |
400 initializer = new SuperInitializer(node.target, node.arguments); | 400 initializer = new SuperInitializer(node.target, node.arguments); |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 | 856 |
857 @override | 857 @override |
858 void endIfStatement(Token ifToken, Token elseToken) { | 858 void endIfStatement(Token ifToken, Token elseToken) { |
859 Statement elsePart = popStatementIfNotNull(elseToken); | 859 Statement elsePart = popStatementIfNotNull(elseToken); |
860 Statement thenPart = popStatement(); | 860 Statement thenPart = popStatement(); |
861 Expression condition = popForValue(); | 861 Expression condition = popForValue(); |
862 push(new IfStatement(condition, thenPart, elsePart)); | 862 push(new IfStatement(condition, thenPart, elsePart)); |
863 } | 863 } |
864 | 864 |
865 @override | 865 @override |
866 void endInitializer(Token assignmentOperator) { | 866 void endVariableInitializer(Token assignmentOperator) { |
867 debugEvent("Initializer"); | 867 debugEvent("VariableInitializer"); |
868 assert(assignmentOperator.stringValue == "="); | 868 assert(assignmentOperator.stringValue == "="); |
869 Expression initializer = popForValue(); | 869 Expression initializer = popForValue(); |
870 Identifier identifier = pop(); | 870 Identifier identifier = pop(); |
871 push(new VariableDeclaration(identifier.name, initializer: initializer)); | 871 push(new VariableDeclaration(identifier.name, initializer: initializer)); |
872 } | 872 } |
873 | 873 |
874 @override | 874 @override |
875 void endInitializedIdentifier() { | 875 void endInitializedIdentifier() { |
876 // TODO(ahe): Use [InitializedIdentifier] here? | 876 // TODO(ahe): Use [InitializedIdentifier] here? |
877 debugEvent("InitializedIdentifier"); | 877 debugEvent("InitializedIdentifier"); |
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1290 push(new OptionalFormals(kind, popList(count))); | 1290 push(new OptionalFormals(kind, popList(count))); |
1291 } | 1291 } |
1292 | 1292 |
1293 @override | 1293 @override |
1294 void beginFunctionTypedFormalParameter(Token token) { | 1294 void beginFunctionTypedFormalParameter(Token token) { |
1295 debugEvent("beginFunctionTypedFormalParameter"); | 1295 debugEvent("beginFunctionTypedFormalParameter"); |
1296 functionNestingLevel++; | 1296 functionNestingLevel++; |
1297 } | 1297 } |
1298 | 1298 |
1299 @override | 1299 @override |
1300 void handleFunctionTypedFormalParameter(Token token) { | 1300 void endFunctionTypedFormalParameter(Token token) { |
1301 debugEvent("FunctionTypedFormalParameter"); | 1301 debugEvent("FunctionTypedFormalParameter"); |
1302 if (inCatchClause || functionNestingLevel != 0) { | 1302 if (inCatchClause || functionNestingLevel != 0) { |
1303 exitLocalScope(); | 1303 exitLocalScope(); |
1304 } | 1304 } |
1305 FormalParameters formals = pop(); | 1305 FormalParameters formals = pop(); |
1306 ignore(Unhandled.TypeVariables); | 1306 ignore(Unhandled.TypeVariables); |
1307 Identifier name = pop(); | 1307 Identifier name = pop(); |
1308 DartType returnType = pop(); | 1308 DartType returnType = pop(); |
1309 push(formals.toFunctionType(returnType)); | 1309 push(formals.toFunctionType(returnType)); |
1310 push(name); | 1310 push(name); |
(...skipping 1333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2644 } else if (node is TypeDeclarationBuilder) { | 2644 } else if (node is TypeDeclarationBuilder) { |
2645 return node.name; | 2645 return node.name; |
2646 } else if (node is PrefixBuilder) { | 2646 } else if (node is PrefixBuilder) { |
2647 return node.name; | 2647 return node.name; |
2648 } else if (node is ThisPropertyAccessor) { | 2648 } else if (node is ThisPropertyAccessor) { |
2649 return node.name.name; | 2649 return node.name.name; |
2650 } else { | 2650 } else { |
2651 return internalError("Unhandled: ${node.runtimeType}"); | 2651 return internalError("Unhandled: ${node.runtimeType}"); |
2652 } | 2652 } |
2653 } | 2653 } |
OLD | NEW |