Index: pkg/fasta/lib/src/analyzer/analyzer.dart |
diff --git a/pkg/fasta/lib/src/analyzer/analyzer.dart b/pkg/fasta/lib/src/analyzer/analyzer.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c6739139dd477b0d636a5c1f7115bd90c444efd8 |
--- /dev/null |
+++ b/pkg/fasta/lib/src/analyzer/analyzer.dart |
@@ -0,0 +1,48 @@ |
+// Copyright (c) 2016, 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; |
+ |
+import 'package:analyzer/analyzer.dart' show |
+ AstNode; |
+ |
+import 'package:analyzer/dart/element/element.dart' show |
+ LocalElement; |
+ |
+import 'package:kernel/analyzer/ast_from_analyzer.dart' show |
+ ExpressionScope; |
+ |
+import 'package:kernel/ast.dart' show |
+ Library, |
+ TreeNode; |
+ |
+import '../builder/scope.dart' show |
+ Scope; |
+ |
+import '../kernel/kernel_builder.dart' show |
+ Builder, |
+ KernelFormalParameterBuilder; |
+ |
+import 'element_store.dart' show |
+ ElementStore; |
+ |
+export 'ast_builder.dart' show |
+ AstBuilder; |
+ |
+export 'element_store.dart' show |
+ ElementStore; |
+ |
+TreeNode toKernel(AstNode node, ElementStore store, Library library, |
+ Scope scope) { |
+ ExpressionScope expressionScope = new ExpressionScope(store, library); |
+ scope.local.forEach((String name, Builder builder) { |
+ if (builder is KernelFormalParameterBuilder) { |
+ LocalElement local = store[builder]; |
+ assert(local != null); |
+ assert(builder.declaration != null); |
+ expressionScope.localVariables[local] = builder.declaration; |
+ } |
+ }); |
+ return expressionScope.buildStatement(node); |
+} |