| Index: pkg/front_end/lib/compiler_options.dart | 
| diff --git a/pkg/front_end/lib/compiler_options.dart b/pkg/front_end/lib/compiler_options.dart | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..1c496f10bc1cc88c86ba48bbe6b57a210a44f107 | 
| --- /dev/null | 
| +++ b/pkg/front_end/lib/compiler_options.dart | 
| @@ -0,0 +1,91 @@ | 
| +// 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 front_end.compiler_options; | 
| + | 
| +import 'compilation_error.dart'; | 
| + | 
| +/// Callback used to report errors encountered during compilation. | 
| +typedef void ErrorHandler(CompilationError error); | 
| + | 
| +/// Front-end options relevant to compiler back ends. | 
| +/// | 
| +/// TODO(paulberry): add a mechanism to allow file system operations to be | 
| +/// stubbed out for testing. | 
| +class CompilerOptions { | 
| +  /// The path to the Dart SDK. | 
| +  /// | 
| +  /// If `null`, the SDK will be searched for using | 
| +  /// [Platform.resolvedExecutable] as a starting point. | 
| +  /// | 
| +  /// This option is mutually exclusive with [sdkSummary]. | 
| +  String sdkPath; | 
| + | 
| +  /// Callback to which compilation errors should be delivered. | 
| +  /// | 
| +  /// If `null`, the first error will be reported by throwing an exception of | 
| +  /// type [CompilationError]. | 
| +  ErrorHandler onError; | 
| + | 
| +  /// Path to the ".packages" file. | 
| +  /// | 
| +  /// If `null`, the ".packages" file will be found via the standard | 
| +  /// package_config search algorithm. | 
| +  String packagesFilePath; | 
| + | 
| +  /// Paths to the input summary files (excluding the SDK summary).  These files | 
| +  /// should all be linked summaries.  They should also be closed, in the sense | 
| +  /// that any libraries they reference should also appear in [inputSummaries] | 
| +  /// or [sdkSummary]. | 
| +  List<String> inputSummaries = []; | 
| + | 
| +  /// Path to the SDK summary file. | 
| +  /// | 
| +  /// This should be a linked summary.  If `null`, the SDK summary will be | 
| +  /// searched for at a default location within [sdkPath]. | 
| +  /// | 
| +  /// This option is mutually exclusive with [sdkPath].  TODO(paulberry): if the | 
| +  /// VM does not contain a pickled copy of the SDK, we might need to change | 
| +  /// this. | 
| +  String sdkSummary; | 
| + | 
| +  /// URI override map. | 
| +  /// | 
| +  /// This is a map from Uri to file path.  Any URI override listed in this map | 
| +  /// takes precedence over the URI resolution that would be implied by the | 
| +  /// packages file (see [packagesFilePath]) and/or [bazelRoots]. | 
| +  /// | 
| +  /// If a URI is not listed in this map, then the normal URI resolution | 
| +  /// algorithm will be used. | 
| +  /// | 
| +  /// TODO(paulberry): transition analyzer and dev_compiler to use the | 
| +  /// "file:///bazel-root" mechanism, and then remove this. | 
| +  @deprecated | 
| +  Map<Uri, String> uriOverride = {}; | 
| + | 
| +  /// Bazel roots. | 
| +  /// | 
| +  /// Any Uri that resolves to "file:///bazel-root/$rest" will be searched for | 
| +  /// at "$root/$rest" ("$root\\$rest" in Windows), where "$root" is drawn from | 
| +  /// this list.  If the file is not found at any of those locations, the URI | 
| +  /// "file:///bazel-root/$rest" will be used directly. | 
| +  /// | 
| +  /// Intended use: if the Bazel workspace is located at path "$workspace", this | 
| +  /// could be set to `['$workspace', '$workspace/bazel-bin', | 
| +  /// '$workspace/bazel-genfiles']`, effectively overlaying source and generated | 
| +  /// files. | 
| +  List<String> bazelRoots = []; | 
| + | 
| +  /// Sets the platform bit, which determines which patch files should be | 
| +  /// applied to the SDK. | 
| +  /// | 
| +  /// The value should be a power of two, and should match the `PLATFORM` bit | 
| +  /// flags in sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart.  If | 
| +  /// zero, no patch files will be applied. | 
| +  int platformBit; | 
| + | 
| +  /// The declared variables for use by configurable imports and constant | 
| +  /// evaluation. | 
| +  Map<String, String> declaredVariables; | 
| +} | 
|  |