| // Copyright (c) 2014, 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. |
| |
| /** The entry point for the command-line version analyzer2dart. */ |
| library analyzer2dart.cmdline; |
| |
| import 'package:analyzer/analyzer.dart'; |
| import 'package:analyzer/src/generated/element.dart'; |
| import 'package:analyzer/src/generated/source_io.dart'; |
| |
| import '../lib/src/closed_world.dart'; |
| import '../lib/src/driver.dart'; |
| |
| void main(List<String> args) { |
| // TODO(paulberry): hacky |
| String path = args[0]; |
| |
| Driver analyzer2Dart = new Driver(); |
| |
| // Tell the analysis server about the root |
| Source source = analyzer2Dart.setRealRoot(path); |
| |
| // Get the library element associated with the source. |
| FunctionElement entryPointElement = analyzer2Dart.resolveEntryPoint(source); |
| |
| // TODO(brianwilkerson,paulberry,johnniwinther): Perform tree-growing by |
| // visiting the ast and feeding the dependencies into a work queue (enqueuer). |
| ClosedWorld world = analyzer2Dart.computeWorld(entryPointElement); |
| |
| // TODO(brianwilkerson,paulberry,johnniwinther): Convert the ast into cps by |
| // visiting the ast and invoking the ir builder. |
| new CpsGeneratingVisitor(); |
| |
| // TODO(johnniwinther): Convert the analyzer element model into the dart2js |
| // element model to fit the needs of the cps encoding above. |
| |
| // TODO(johnniwinther): Feed the cps ir into the new dart2dart backend to |
| // generate dart file(s). |
| } |
| |
| class CpsGeneratingVisitor extends RecursiveAstVisitor { |
| // TODO(johnniwinther) |
| } |