Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: pkg/front_end/lib/src/fasta/source/outline_builder.dart

Issue 2895983002: Read SDK and patches from a JSON file. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 30 matching lines...) Expand all
41 41
42 enum MethodBody { 42 enum MethodBody {
43 Abstract, 43 Abstract,
44 Regular, 44 Regular,
45 RedirectingFactoryBody, 45 RedirectingFactoryBody,
46 } 46 }
47 47
48 class OutlineBuilder extends UnhandledListener { 48 class OutlineBuilder extends UnhandledListener {
49 final SourceLibraryBuilder library; 49 final SourceLibraryBuilder library;
50 50
51 final bool isDartLibrary; 51 final bool enableNative;
52 52
53 String nativeMethodName; 53 String nativeMethodName;
54 54
55 OutlineBuilder(SourceLibraryBuilder library) 55 OutlineBuilder(SourceLibraryBuilder library)
56 : library = library, 56 : library = library,
57 isDartLibrary = library.uri.scheme == "dart"; 57 enableNative = (library.uri.scheme == "dart" || library.isPatch);
58 58
59 @override 59 @override
60 Uri get uri => library.fileUri; 60 Uri get uri => library.fileUri;
61 61
62 @override 62 @override
63 int popCharOffset() => pop(); 63 int popCharOffset() => pop();
64 64
65 List<String> popIdentifierList(int count) { 65 List<String> popIdentifierList(int count) {
66 if (count == 0) return null; 66 if (count == 0) return null;
67 List<String> list = new List<String>.filled(count, null, growable: true); 67 List<String> list = new List<String>.filled(count, null, growable: true);
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 } 769 }
770 770
771 @override 771 @override
772 void handleModifiers(int count) { 772 void handleModifiers(int count) {
773 debugEvent("Modifiers"); 773 debugEvent("Modifiers");
774 push(popList(count) ?? NullValue.Modifiers); 774 push(popList(count) ?? NullValue.Modifiers);
775 } 775 }
776 776
777 @override 777 @override
778 Token handleUnrecoverableError(Token token, FastaMessage message) { 778 Token handleUnrecoverableError(Token token, FastaMessage message) {
779 if (isDartLibrary && message.code == codeExpectedBlockToSkip) { 779 if (enableNative && message.code == codeExpectedBlockToSkip) {
780 var target = library.loader.target; 780 var target = library.loader.target;
781 Token recover = target.skipNativeClause(token); 781 Token recover = target.skipNativeClause(token);
782 if (recover != null) { 782 if (recover != null) {
783 nativeMethodName = target.extractNativeMethodName(token); 783 nativeMethodName = target.extractNativeMethodName(token);
784 return recover; 784 return recover;
785 } 785 }
786 } 786 }
787 return super.handleUnrecoverableError(token, message); 787 return super.handleUnrecoverableError(token, message);
788 } 788 }
789 789
790 @override 790 @override
791 Link<Token> handleMemberName(Link<Token> identifiers) { 791 Link<Token> handleMemberName(Link<Token> identifiers) {
792 if (!isDartLibrary || identifiers.isEmpty) return identifiers; 792 if (!enableNative || identifiers.isEmpty) return identifiers;
793 return removeNativeClause(identifiers); 793 return removeNativeClause(identifiers);
794 } 794 }
795 795
796 @override 796 @override
797 void debugEvent(String name) { 797 void debugEvent(String name) {
798 // printEvent(name); 798 // printEvent(name);
799 } 799 }
800 } 800 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698