Index: frog/await/awaitc.dart |
diff --git a/frog/await/awaitc.dart b/frog/await/awaitc.dart |
deleted file mode 100644 |
index 21291d136981c1f28f0876d75d9f059d2b9f2c01..0000000000000000000000000000000000000000 |
--- a/frog/await/awaitc.dart |
+++ /dev/null |
@@ -1,84 +0,0 @@ |
-// Copyright (c) 2011, 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. |
- |
-// Separate entrypoint for the frog compiler with experimental support for the |
-// 'await' keyword. |
- |
-#import('../lang.dart'); |
-#import('../minfrog.dart', prefix:'minfrog'); |
-#source('nodeset.dart'); |
-#source('checker.dart'); |
-#source('normalizer.dart'); |
-#source('transformation.dart'); |
- |
-/** |
- * The main entry point method - needed to ensure we handle correctly await |
- * expressions within main. |
- */ |
-Member _mainMethod; |
- |
-/** |
- * A phase in the compilation process that processes the entire AST and |
- * desugars await expressions. |
- */ |
-awaitTransformation() { |
- _mainMethod = |
- world.findMainMethod(world.getOrAddLibrary(options.dartScript)); |
- for (var lib in world.libraries.getValues()) { |
- for (var type in lib.types.getValues()) { |
- for (var member in type.members.getValues()) { |
- _process(member); |
- } |
- for (var member in type.constructors.getValues()) { |
- _process(member); |
- } |
- } |
- } |
-} |
- |
-/** Analyze and transform a single member (method or property). */ |
-_process(Member member) { |
- if (member.isConstructor || member.isMethod) { |
- _processFunction(member.definition); |
- } else if (member.isProperty) { |
- PropertyMember p = member; |
- if (p.getter != null) _process(p.getter); |
- if (p.setter != null) _process(p.setter); |
- } |
-} |
- |
-/** Analyze and transform a function definition and nested definitions. */ |
-_processFunction(FunctionDefinition func) { |
- AwaitChecker checker = new AwaitChecker(); |
- |
- // Run checker that collects nested functions and which nodes may contain |
- // await expressions. |
- func.visit(checker); |
- |
- // Rewrite nested asynchronous functions first. |
- for (FunctionDefinition f in checker.nestedFunctions) { |
- _processFunction(f); |
- } |
- |
- if (checker.haveAwait.contains(func)) { |
- // Normalize |
- func.visit(new AwaitNormalizer(checker.haveAwait)); |
- // Re-run the checker to derive appropriate node information (this |
- // makes the normalizer simpler as we don't have to keep track of this |
- // information). |
- checker = new AwaitChecker(); |
- func.visit(checker); |
- |
- // Transform the code. |
- func.visit(new AwaitProcessor(checker.haveAwait)); |
- } |
-} |
- |
-/** Run frog, setting the await transformation correctly. */ |
-void main() { |
- experimentalAwaitPhase = () { |
- world.withTiming('remove await expressions', awaitTransformation); |
- }; |
- minfrog.main(); |
-} |