Index: pkg/front_end/lib/src/fasta/analyzer/analyzer_loader.dart |
diff --git a/pkg/front_end/lib/src/fasta/analyzer/analyzer_loader.dart b/pkg/front_end/lib/src/fasta/analyzer/analyzer_loader.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6cacc9e65b835e57894ff47caeb448a0f71c8946 |
--- /dev/null |
+++ b/pkg/front_end/lib/src/fasta/analyzer/analyzer_loader.dart |
@@ -0,0 +1,34 @@ |
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+library fasta.analyzer_loader; |
+ |
+import 'package:kernel/ast.dart' show Program; |
+ |
+import '../builder/builder.dart' show LibraryBuilder; |
+ |
+import '../target_implementation.dart' show TargetImplementation; |
+ |
+import '../source/source_loader.dart' show SourceLoader; |
+ |
+import 'element_store.dart' show ElementStore; |
+ |
+import 'analyzer_diet_listener.dart' show AnalyzerDietListener; |
+ |
+class AnalyzerLoader<L> extends SourceLoader<L> { |
+ ElementStore elementStore; |
+ |
+ AnalyzerLoader(TargetImplementation target) : super(target); |
+ |
+ @override |
+ void computeHierarchy(Program program) { |
+ elementStore = new ElementStore(coreLibrary, builders); |
+ ticker.logMs("Built analyzer element model."); |
+ } |
+ |
+ @override |
+ AnalyzerDietListener createDietListener(LibraryBuilder library) { |
+ return new AnalyzerDietListener(library, elementStore); |
+ } |
+} |