Index: utils/template/temploptions.dart |
diff --git a/utils/template/temploptions.dart b/utils/template/temploptions.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..020d12c6953260e3d4e841d5438635b190619376 |
--- /dev/null |
+++ b/utils/template/temploptions.dart |
@@ -0,0 +1,93 @@ |
+// 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. |
+ |
+/** General options used by the compiler. */ |
+TemplateOptions options; |
+ |
+/** Extracts options from command-line arguments. */ |
+void parseOptions(List<String> args, var files) { |
+ assert(options == null); |
+ options = new TemplateOptions(args, files); |
+} |
+ |
+class TemplateOptions { |
+ /** Location of corelib and other special dart libraries. */ |
+ String libDir; |
+ |
+ /* The top-level dart script to compile. */ |
+ String dartScript; |
+ |
+ /** Where to place the generated code. */ |
+ String outfile; |
+ |
+ // Options that modify behavior significantly |
+ |
+ bool warningsAsErrors = false; |
+ bool checkOnly = false; |
+ |
+ // Message support |
+ bool throwOnErrors = false; |
+ bool throwOnWarnings = false; |
+ bool throwOnFatal = false; |
+ bool showInfo = false; |
+ bool showWarnings = true; |
+ bool useColors = true; |
+ |
+ /** |
+ * Options to be used later for passing to the generated code. These are all |
+ * the arguments after the first dart script, if any. |
+ */ |
+ List<String> childArgs; |
+ |
+ TemplateOptions(List<String> args, var files) { |
+ bool ignoreUnrecognizedFlags = false; |
+ bool passedLibDir = false; |
+ childArgs = []; |
+ |
+ // Start from 2 to skip arguments representing the compiler command |
+ // (node/python followed by frogsh/frog.py). |
+ loop: for (int i = 2; i < args.length; i++) { |
+ var arg = args[i]; |
+ |
+ switch (arg) { |
+ case '--check-only': |
+ checkOnly = true; |
+ break; |
+ |
+ case '--verbose': |
+ showInfo = true; |
+ break; |
+ |
+ case '--suppress_warnings': |
+ showWarnings = false; |
+ break; |
+ |
+ case '--warnings_as_errors': |
+ warningsAsErrors = true; |
+ break; |
+ |
+ case '--throw_on_errors': |
+ throwOnErrors = true; |
+ break; |
+ |
+ case '--throw_on_warnings': |
+ throwOnWarnings = true; |
+ break; |
+ |
+ case '--no_colors': |
+ useColors = false; |
+ break; |
+ |
+ case '--checked': |
+ checkOnly = true; |
+ break; |
+ |
+ default: |
+ if (!ignoreUnrecognizedFlags) { |
+ print('unrecognized flag: "$arg"'); |
+ } |
+ } |
+ } |
+ } |
+} |