Files
sdk/pkg/front_end/tool/example.dart
T
Jens Johansen 22d0696d91 [CFE] Move front-end API under src/
This CL deprecates the front-end API and moves it into src/api_prototype.

For now all usages have been updated to point to the new location,
but they should be updated to use custom-client invocations instead (e.g.
one specific way for DDC, another for dart2js etc.)

Bug:
Change-Id: I9b4f41f6ebf55d42510fd35240d942d1dc7292d6
Reviewed-on: https://dart-review.googlesource.com/24822
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2017-12-01 08:42:16 +00:00

34 lines
1.1 KiB
Dart

// 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.
import 'dart:async';
import 'package:front_end/src/api_prototype/kernel_generator.dart';
import 'package:front_end/src/api_prototype/compiler_options.dart';
import 'package:kernel/binary/ast_to_binary.dart';
import 'package:kernel/kernel.dart' show Program;
Future dumpToSink(Program program, StreamSink<List<int>> sink) {
new BinaryPrinter(sink).writeProgramFile(program);
return sink.close();
}
Future kernelToSink(Uri entry, StreamSink<List<int>> sink) async {
var program = await kernelForProgram(
entry,
new CompilerOptions()
..sdkRoot = new Uri.file('sdk')
..packagesFileUri = new Uri.file('.packages')
..onError = (e) => print(e.message));
await dumpToSink(program, sink);
}
main(args) async {
kernelToSink(
Uri.base.resolve(args[0]),
// TODO(sigmund,hausner): define memory type where to dump binary data.
new StreamController<List<int>>.broadcast().sink);
}