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 |