Chromium Code Reviews| 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.outline_builder; | 5 library fasta.outline_builder; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' show ProcedureKind; | 7 import 'package:kernel/ast.dart' show ProcedureKind; |
| 8 | 8 |
| 9 import '../fasta_codes.dart' show FastaMessage, codeExpectedBlockToSkip; | 9 import '../fasta_codes.dart' show FastaMessage, codeExpectedBlockToSkip; |
| 10 | 10 |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 620 } | 620 } |
| 621 List<MetadataBuilder> metadata = pop(); | 621 List<MetadataBuilder> metadata = pop(); |
| 622 library.addFunctionTypeAlias( | 622 library.addFunctionTypeAlias( |
| 623 metadata, returnType, name, typeVariables, formals, charOffset); | 623 metadata, returnType, name, typeVariables, formals, charOffset); |
| 624 checkEmpty(typedefKeyword.charOffset); | 624 checkEmpty(typedefKeyword.charOffset); |
| 625 } | 625 } |
| 626 | 626 |
| 627 @override | 627 @override |
| 628 void endTopLevelFields(int count, Token beginToken, Token endToken) { | 628 void endTopLevelFields(int count, Token beginToken, Token endToken) { |
| 629 debugEvent("endTopLevelFields"); | 629 debugEvent("endTopLevelFields"); |
| 630 List namesOffsetsAndInitializers = popList(count * 4); | 630 List fieldsInfo = popList(count * 4); |
| 631 TypeBuilder type = pop(); | 631 TypeBuilder type = pop(); |
| 632 int modifiers = Modifier.validate(pop()); | 632 int modifiers = Modifier.validate(pop()); |
| 633 List<MetadataBuilder> metadata = pop(); | 633 List<MetadataBuilder> metadata = pop(); |
| 634 library.addFields(metadata, modifiers, type, namesOffsetsAndInitializers); | 634 library.addFields(metadata, modifiers, type, fieldsInfo); |
| 635 checkEmpty(beginToken.charOffset); | 635 checkEmpty(beginToken.charOffset); |
| 636 } | 636 } |
| 637 | 637 |
| 638 @override | 638 @override |
| 639 void endFields(int count, Token beginToken, Token endToken) { | 639 void endFields(int count, Token beginToken, Token endToken) { |
| 640 debugEvent("Fields"); | 640 debugEvent("Fields"); |
| 641 List namesOffsetsAndInitializers = popList(count * 4); | 641 List fieldsInfo = popList(count * 4); |
| 642 TypeBuilder type = pop(); | 642 TypeBuilder type = pop(); |
| 643 int modifiers = Modifier.validate(pop()); | 643 int modifiers = Modifier.validate(pop()); |
| 644 List<MetadataBuilder> metadata = pop(); | 644 List<MetadataBuilder> metadata = pop(); |
| 645 library.addFields(metadata, modifiers, type, namesOffsetsAndInitializers); | 645 library.addFields(metadata, modifiers, type, fieldsInfo); |
| 646 } | 646 } |
| 647 | 647 |
| 648 @override | 648 @override |
| 649 void endTypeVariable(Token token, Token extendsOrSuper) { | 649 void endTypeVariable(Token token, Token extendsOrSuper) { |
| 650 debugEvent("endTypeVariable"); | 650 debugEvent("endTypeVariable"); |
| 651 TypeBuilder bound = pop(); | 651 TypeBuilder bound = pop(); |
| 652 int charOffset = pop(); | 652 int charOffset = pop(); |
| 653 String name = pop(); | 653 String name = pop(); |
| 654 // TODO(paulberry): type variable metadata should not be ignored. See | 654 // TODO(paulberry): type variable metadata should not be ignored. See |
| 655 // dartbug.com/28981. | 655 // dartbug.com/28981. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 717 | 717 |
| 718 @override | 718 @override |
| 719 void endRedirectingFactoryBody(Token beginToken, Token endToken) { | 719 void endRedirectingFactoryBody(Token beginToken, Token endToken) { |
| 720 debugEvent("RedirectingFactoryBody"); | 720 debugEvent("RedirectingFactoryBody"); |
| 721 push(MethodBody.RedirectingFactoryBody); | 721 push(MethodBody.RedirectingFactoryBody); |
| 722 } | 722 } |
| 723 | 723 |
| 724 @override | 724 @override |
| 725 void endFieldInitializer(Token assignmentOperator, Token token) { | 725 void endFieldInitializer(Token assignmentOperator, Token token) { |
| 726 debugEvent("FieldInitializer"); | 726 debugEvent("FieldInitializer"); |
| 727 Token beforeLast = assignmentOperator.next; | |
| 728 Token next = beforeLast.next; | |
| 729 while (next != token && !next.isEof) { | |
| 730 beforeLast = next; | |
| 731 next = next.next; | |
| 732 } | |
| 727 push(assignmentOperator.next); | 733 push(assignmentOperator.next); |
| 728 push(token); | 734 push(beforeLast); |
|
Johnni Winther
2017/06/06 10:35:08
Document why you need the token before [token].
ahe
2017/06/06 15:08:24
Done.
| |
| 729 } | 735 } |
| 730 | 736 |
| 731 @override | 737 @override |
| 732 void handleNoFieldInitializer(Token token) { | 738 void handleNoFieldInitializer(Token token) { |
| 733 debugEvent("NoFieldInitializer"); | 739 debugEvent("NoFieldInitializer"); |
| 734 push(NullValue.FieldInitializer); | 740 push(NullValue.FieldInitializer); |
| 735 push(NullValue.FieldInitializer); | 741 push(NullValue.FieldInitializer); |
| 736 } | 742 } |
| 737 | 743 |
| 738 @override | 744 @override |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 798 Link<Token> handleMemberName(Link<Token> identifiers) { | 804 Link<Token> handleMemberName(Link<Token> identifiers) { |
| 799 if (!enableNative || identifiers.isEmpty) return identifiers; | 805 if (!enableNative || identifiers.isEmpty) return identifiers; |
| 800 return removeNativeClause(identifiers); | 806 return removeNativeClause(identifiers); |
| 801 } | 807 } |
| 802 | 808 |
| 803 @override | 809 @override |
| 804 void debugEvent(String name) { | 810 void debugEvent(String name) { |
| 805 // printEvent(name); | 811 // printEvent(name); |
| 806 } | 812 } |
| 807 } | 813 } |
| OLD | NEW |