Index: dart/compiler/java/com/google/dart/compiler/CommandLineOptions.java |
diff --git a/dart/compiler/java/com/google/dart/compiler/CommandLineOptions.java b/dart/compiler/java/com/google/dart/compiler/CommandLineOptions.java |
deleted file mode 100644 |
index 0e3ed28b12267b24c765c280c60851216d29aa20..0000000000000000000000000000000000000000 |
--- a/dart/compiler/java/com/google/dart/compiler/CommandLineOptions.java |
+++ /dev/null |
@@ -1,347 +0,0 @@ |
-// 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.common.collect.Lists; |
-import com.google.dart.compiler.CompilerConfiguration.ErrorFormat; |
-import com.google.dart.compiler.util.apache.StringUtils; |
- |
-import org.kohsuke.args4j.Argument; |
-import org.kohsuke.args4j.CmdLineException; |
-import org.kohsuke.args4j.CmdLineParser; |
-import org.kohsuke.args4j.Option; |
- |
-import java.io.File; |
-import java.util.ArrayList; |
-import java.util.Collections; |
-import java.util.List; |
- |
-/** |
- * Options that can be specified on the command line. |
- */ |
-public class CommandLineOptions { |
- |
- /** |
- * Command line options accepted by the {@link DartCompiler} entry point. |
- */ |
- public static class CompilerOptions { |
- |
- @Option(name = "--batch", aliases = { "-batch" }, |
- usage = "Batch mode (for unit testing)") |
- private boolean batch = false; |
- |
- @Option(name = "--error_format", |
- usage = "Format errors as normal or machine") |
- private String errorFormat = ""; |
- |
- @Option(name = "--machine", // |
- usage = "Print errors in a format suitable for parsing") |
- private boolean machineFormat = false; |
- |
- @Option(name = "--extended-exit-code", |
- usage = "0 - clean; 1 - has warnings; 2 - has errors") |
- private boolean extendedExitCode = false; |
- |
- @Option(name = "--enable_type_checks", |
- usage = "Generate runtime type checks") |
- private boolean developerModeChecks = false; |
- |
- @Option(name = "--ignore-unrecognized-flags", |
- usage = "Ignore unrecognized command line flags") |
- private boolean ignoreUnrecognizedFlags = false; |
- |
- @Option(name = "--jvm-metrics-detail", |
- usage = "Display summary (default) or\n verbose metrics") |
- private String jvmMetricDetail = "summary"; |
- |
- @Option(name = "--jvm-metrics-format", |
- usage = "Output metrics in tabular (default)\n or pretty format") |
- private String jvmMetricFormat = "tabular"; |
- |
- @Option(name = "--jvm-metrics-type", |
- usage = "Comma-separated list to display:\n " |
- + " all: (default) all stat types\n " |
- + " gc: show garbage collection stats\n " |
- + " mem: show memory stats\n " |
- + " jit: show jit stats") |
- private String jvmMetricType = "all"; |
- |
- // leave the command line flag for legacy purposes. |
- @SuppressWarnings("unused") |
- @Option(name = "--noincremental", |
- usage = "Disable incremental compilation (default)") |
- private boolean noincremental = true; // not used, just a placeholder for arg parsing |
- |
- @Option(name = "--incremental", |
- usage = "Enable incremental compilation") |
- private boolean incremental = false; |
- |
- @Option(name = "--work", aliases = { "-out" }, |
- usage = "Directory to receive compiler output\n for future incremental builds") |
- private File workDirectory = new File("out"); |
- |
- @Option(name = "--help", aliases = { "-?", "-help" }, |
- usage = "Prints this help message") |
- private boolean showHelp = false; |
- |
- @Option(name = "--jvm-metrics", |
- usage = "Print jvm metrics at end of compile") |
- private boolean showJvmMetrics = false; |
- |
- @Option(name = "--metrics", |
- usage = "Print compilation metrics") |
- private boolean showMetrics = false; |
- |
- @Option(name = "--fatal-type-errors", aliases = { "-fatal-type-errors" }, |
- usage = "Treat type errors as fatal") |
- private boolean typeErrorsAreFatal = false; |
- |
- @Option(name = "--fatal-warnings", aliases = { "-Werror" }, |
- usage = "Treat non-type warnings as fatal") |
- private boolean warningsAreFatal = false; |
- |
- @Option(name = "--platform", |
- usage = "Platform libraries to analyze (e.g. dartium, vm, dart2js, any)") |
- private String platformName = PackageLibraryManager.DEFAULT_PLATFORM; |
- |
- @Option(name = "--dart-sdk", |
- usage = "Path to dart sdk. (system property com.google.dart.sdk)") |
- private File dartSdkPath = PackageLibraryManager.DEFAULT_SDK_PATH; |
- |
- @Option(name = "--package-root", |
- usage = "Root directory used for the package: scheme") |
- private File packageRoot = PackageLibraryManager.DEFAULT_PACKAGE_ROOT; |
- |
- @Option(name = "--show-sdk-warnings", usage = "show warnings from SDK source") |
- private boolean showSdkWarnings = false; |
- |
- @Option(name = "--source-from-ast", |
- usage = "For debugging, reconstitute source code from the parsed AST.") |
- private boolean showSourceFromAst = false; |
- |
- @Option(name = "--resolve-on-parse-error", |
- usage = "For debugging, continue on with resolution even if there are parse errors.") |
- private boolean resolveDespiteParseErrors; |
- |
- @Option(name = "--type-checks-for-inferred-types", |
- usage = "[not in spec] Enables 'interface has no method/field' for receivers with inferred types.") |
- private boolean typeChecksForInferredTypes = false; |
- |
- @Option(name = "--version", |
- usage = "Show analyzer version") |
- private boolean showVersion = false; |
- |
- @Argument |
- private final List<String> sourceFiles = new ArrayList<String>(); |
- |
- public String getJvmMetricOptions() { |
- if (!showJvmMetrics) { |
- return null; |
- } |
- return jvmMetricDetail + ":" + jvmMetricFormat + ":" + jvmMetricType; |
- } |
- |
- public String getPlatformName() { |
- return platformName; |
- } |
- |
- /** |
- * @return the packageRoot |
- */ |
- public File getPackageRoot() { |
- return packageRoot; |
- } |
- |
- public File getDartSdkPath() { |
- return dartSdkPath; |
- } |
- |
- public boolean extendedExitCode() { |
- return extendedExitCode; |
- } |
- |
- /** |
- * Returns whether warnings from SDK files should be suppressed. |
- */ |
- public boolean suppressSdkWarnings() { |
- return !showSdkWarnings; |
- } |
- |
- /** |
- * Returns whether inferred types should be used for type checks. |
- */ |
- public boolean typeChecksForInferredTypes() { |
- return this.typeChecksForInferredTypes; |
- } |
- |
- /** |
- * Returns whether "no such member" should be reported for classes which implement |
- * "noSuchMethod" method. |
- */ |
- public boolean reportNoMemberWhenHasInterceptor() { |
- return true; |
- } |
- |
- /** |
- * Returns the list of files passed to the compiler. |
- */ |
- public List<String> getSourceFiles() { |
- return sourceFiles; |
- } |
- |
- /** |
- * Returns the path to receive compiler intermediate output. |
- */ |
- public File getWorkDirectory() { |
- return workDirectory; |
- } |
- |
- public boolean ignoreUnrecognizedFlags() { |
- return ignoreUnrecognizedFlags; |
- } |
- |
- /** |
- * Returns whether the compiler should attempt to incrementally recompile. |
- */ |
- public boolean buildIncrementally() { |
- return incremental; |
- } |
- |
- public boolean shouldBatch() { |
- return batch; |
- } |
- |
- public boolean resolveDespiteParseErrors() { |
- return resolveDespiteParseErrors; |
- } |
- |
- /** |
- * Returns <code>true</code> if the compiler should print it's help message. |
- */ |
- public boolean showHelp() { |
- return showHelp; |
- } |
- |
- public boolean showJvmMetrics() { |
- return showJvmMetrics; |
- } |
- |
- public boolean showMetrics() { |
- return showMetrics; |
- } |
- |
- public boolean showVersion() { |
- return showVersion; |
- } |
- |
- /** |
- * if <code>true</code>, run the AST back through the DartSourceVisitor to create source |
- * from the parsed AST and print to stdout. |
- */ |
- public boolean showSourceFromAst() { |
- return showSourceFromAst; |
- } |
- |
- /** |
- * Returns whether type errors are fatal. |
- */ |
- public boolean typeErrorsAreFatal() { |
- return typeErrorsAreFatal; |
- } |
- |
- /** |
- * Returns whether warnings (excluding type warnings) are fatal. |
- */ |
- public boolean warningsAreFatal() { |
- return warningsAreFatal; |
- } |
- |
- public boolean developerModeChecks() { |
- return developerModeChecks; |
- } |
- |
- /** |
- * @return the format to use for printing errors |
- */ |
- public ErrorFormat printErrorFormat() { |
- if (machineFormat) { |
- return ErrorFormat.MACHINE; |
- } |
- |
- String lowerError = errorFormat.toLowerCase(); |
- |
- if ("machine".equals(lowerError)) { |
- return ErrorFormat.MACHINE; |
- } |
- |
- return ErrorFormat.NORMAL; |
- } |
- } |
- |
- /** |
- * Parses command line options, handling the feature to ignore unrecognized |
- * flags. |
- * |
- * If one of the options is 'ignore-unrecognized-flags', then any exceptions |
- * for 'not a valid option' are suppressed. |
- * |
- * @param args Arguments passed from main() |
- * @param parsedOptions [out parameter] parsed options |
- * @throws CmdLineException Thrown if there is a problem parsing the options. |
- */ |
- public static CmdLineParser parse(String[] args, CompilerOptions parsedOptions) |
- throws CmdLineException { |
- // convert new "--name=value" into old "--name value" style |
- { |
- List<String> argList = Lists.newArrayList(); |
- for (String arg : args) { |
- String[] parts = StringUtils.split(arg, '='); |
- Collections.addAll(argList, parts); |
- } |
- args = argList.toArray(new String[argList.size()]); |
- } |
- |
- boolean ignoreUnrecognized = false; |
- for (String arg : args) { |
- if (arg.equals("--ignore-unrecognized-flags")) { |
- ignoreUnrecognized = true; |
- break; |
- } |
- } |
- |
- if (!ignoreUnrecognized) { |
- CmdLineParser cmdLineParser = new CmdLineParser(parsedOptions); |
- cmdLineParser.parseArgument(args); |
- return cmdLineParser; |
- } |
- CmdLineParser cmdLineParser = new CmdLineParser(parsedOptions); |
- for (int i = 0, len = args.length; i < len; i++) { |
- try { |
- cmdLineParser.parseArgument(args); |
- } catch (CmdLineException e) { |
- String msg = e.getMessage(); |
- |
- if (e.getMessage().endsWith(" is not a valid option")) { |
- String option = msg.substring(1); |
- int closeQuote = option.indexOf('\"'); |
- option = option.substring(0, closeQuote); |
- List<String> newArgs = Lists.newArrayList(); |
- for (String arg : args) { |
- if (arg.equals(option)) { |
- System.out.println("(Ignoring unrecognized flag: " + arg + ")"); |
- continue; |
- } |
- newArgs.add(arg); |
- } |
- args = newArgs.toArray(new String[newArgs.size()]); |
- cmdLineParser = new CmdLineParser(parsedOptions); |
- continue; |
- } |
- } |
- break; |
- } |
- return cmdLineParser; |
- } |
-} |