91dd628bd8
Need unique name for library collision with template parser. Few more changes to work under VM. More changes for lang.dart seperation. Seperation from lang.dart (tokenizer can't access private fields of base class in another library). This was allowed in frog but not in the VM. VM is right so need to sever dependency. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com//9695048 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5544 260f80e4-7a28-3924-810f-c04153c831b5
94 lines
2.3 KiB
Dart
94 lines
2.3 KiB
Dart
// 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"');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|