blob: 7216edb4d5ce42539ec09867e64b3d6070771cce [file] [log] [blame]
// Copyright (c) 2012, 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.
package com.google.dart.compiler;
import com.google.dart.compiler.CommandLineOptions.CompilerOptions;
import com.google.dart.compiler.metrics.CompilerMetrics;
import java.io.File;
import java.util.List;
/**
* A configuration for the Dart compiler specifying which phases will be executed.
*/
public interface CompilerConfiguration {
enum ErrorFormat {
NORMAL, // Library/File, line, message
MACHINE, // All information including severity, subsystem, etc
}
List<DartCompilationPhase> getPhases();
/**
* Indicates whether developer-mode runtime checks are needed.
* @return true if developer-mode checks should be inserted, false if not
*/
boolean developerModeChecks();
/**
* Returns the {@link CompilerMetrics} instance or <code>null</code> if metrics should not be
* recorded.
*
* @return the metrics instance, <code>null</code> if metrics should not be recorded
*/
CompilerMetrics getCompilerMetrics();
/**
* Returns a comma-separated string list of options for displaying jvm metrics.
* Returns <code>null</code> if jvm metrics are not enabled.
*/
String getJvmMetricOptions();
boolean typeErrorsAreFatal();
boolean warningsAreFatal();
/**
* Returns <code>true</code> if the compiler should try to resolve
* even after having seen parse-errors.
*/
boolean resolveDespiteParseErrors();
/**
* Temporary flag to turn on incremental compilation. This will be removed once we're certain
* incremental compilation is correct.
*/
boolean incremental();
/**
* The work directory where incremental build output is stored between invocations.
*/
File getOutputDirectory();
/**
* Returns the error formatting the compiler should print with
*/
ErrorFormat printErrorFormat();
/**
* Return the system library corresponding to the specified "dart:<libname>" spec.
*/
LibrarySource getSystemLibraryFor(String importSpec);
/**
* Return the system library manager
*/
PackageLibraryManager getPackageLibraryManager();
/**
* Return {@link CompilerOptions} instance.
* @return command line options passed to the compiler.
*/
CompilerOptions getCompilerOptions();
}