Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: pkg/analyzer_experimental/lib/options.dart

Issue 15675016: More fixes for java2dart and status files. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library options; 5 library options;
6 6
7 import 'package:args/args.dart'; 7 import 'package:args/args.dart';
8 8
9 import 'dart:io'; 9 import 'dart:io';
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 if (!(new Directory(sdkPath)).existsSync()) { 79 if (!(new Directory(sdkPath)).existsSync()) {
80 print('Usage: $_BINARY_NAME: invalid Dart SDK path: $sdkPath'); 80 print('Usage: $_BINARY_NAME: invalid Dart SDK path: $sdkPath');
81 exit(15); 81 exit(15);
82 } 82 }
83 } 83 }
84 // OK 84 // OK
85 return options; 85 return options;
86 } 86 }
87 87
88 static CommandLineOptions _parse(List<String> args) { 88 static CommandLineOptions _parse(List<String> args) {
89 args = args.expand((String arg) => arg.split('=')).toList();
89 var parser = new _CommandLineParser() 90 var parser = new _CommandLineParser()
90 ..addFlag('batch', abbr: 'b', help: 'Run in batch mode', 91 ..addFlag('batch', abbr: 'b', help: 'Run in batch mode',
91 defaultsTo: false, negatable: false) 92 defaultsTo: false, negatable: false)
92 ..addOption('dart-sdk', help: 'The path to the Dart SDK') 93 ..addOption('dart-sdk', help: 'The path to the Dart SDK')
93 ..addOption('package-root', help: 'The path to the package root') 94 ..addOption('package-root', help: 'The path to the package root')
94 ..addFlag('machine', 95 ..addFlag('machine',
95 help: 'Print errors in a format suitable for parsing', 96 help: 'Print errors in a format suitable for parsing',
96 defaultsTo: false, negatable: false) 97 defaultsTo: false, negatable: false)
97 ..addFlag('version', help: 'Print the analyzer version', 98 ..addFlag('version', help: 'Print the analyzer version',
98 defaultsTo: false, negatable: false) 99 defaultsTo: false, negatable: false)
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 } 194 }
194 195
195 /** 196 /**
196 * Defines a value-taking option. 197 * Defines a value-taking option.
197 * 198 *
198 * See [ArgParser.addOption()]. 199 * See [ArgParser.addOption()].
199 */ 200 */
200 void addOption(String name, {String abbr, String help, List<String> allowed, 201 void addOption(String name, {String abbr, String help, List<String> allowed,
201 Map<String, String> allowedHelp, String defaultsTo, 202 Map<String, String> allowedHelp, String defaultsTo,
202 void callback(value), bool allowMultiple: false}) { 203 void callback(value), bool allowMultiple: false}) {
204 _knownFlags.add(name);
203 _parser.addOption(name, abbr: abbr, help: help, allowed: allowed, 205 _parser.addOption(name, abbr: abbr, help: help, allowed: allowed,
204 allowedHelp: allowedHelp, defaultsTo: defaultsTo, callback: callback, 206 allowedHelp: allowedHelp, defaultsTo: defaultsTo, callback: callback,
205 allowMultiple: allowMultiple); 207 allowMultiple: allowMultiple);
206 } 208 }
207 209
208 210
209 /** 211 /**
210 * Generates a string displaying usage information for the defined options. 212 * Generates a string displaying usage information for the defined options.
211 * 213 *
212 * See [ArgParser.getUsage()]. 214 * See [ArgParser.getUsage()].
213 */ 215 */
214 String getUsage() => _parser.getUsage(); 216 String getUsage() => _parser.getUsage();
215 217
216 /** 218 /**
217 * Parses [args], a list of command-line arguments, matches them against the 219 * Parses [args], a list of command-line arguments, matches them against the
218 * flags and options defined by this parser, and returns the result. 220 * flags and options defined by this parser, and returns the result.
219 * 221 *
220 * See [ArgParser]. 222 * See [ArgParser].
221 */ 223 */
222 ArgResults parse(List<String> args) => _parser.parse(_filterUnknowns(args)); 224 ArgResults parse(List<String> args) => _parser.parse(_filterUnknowns(args));
223 225
224 List<String> _filterUnknowns(args) { 226 List<String> _filterUnknowns(args) {
225 227
226 // Only filter args if the ignore flag is specified. 228 // Only filter args if the ignore flag is specified.
227 if (!args.contains('--ignore_unrecognized_flags')) { 229 if (!args.contains('--ignore-unrecognized-flags')) {
228 return args; 230 return args;
229 } 231 }
230 232
231 //TODO(pquitslund): replace w/ the following once library skew issues are so rted out 233 //TODO(pquitslund): replace w/ the following once library skew issues are so rted out
232 //return args.where((arg) => !arg.startsWith('--') || 234 //return args.where((arg) => !arg.startsWith('--') ||
233 // _knownFlags.contains(arg.substring(2))); 235 // _knownFlags.contains(arg.substring(2)));
234 236
235 // Filter all unrecognized flags and options. 237 // Filter all unrecognized flags and options.
236 var filtered = <String>[]; 238 var filtered = <String>[];
237 for (var i=0; i < args.length; ++i) { 239 for (var i=0; i < args.length; ++i) {
238 var arg = args[i]; 240 var arg = args[i];
239 if (arg.startsWith('--') && arg.length > 2) { 241 if (arg.startsWith('--') && arg.length > 2) {
240 if (!_knownFlags.contains(arg.substring(2))) { 242 if (!_knownFlags.contains(arg.substring(2))) {
243 print('remove: $arg');
241 //"eat" params by advancing to the next flag/option 244 //"eat" params by advancing to the next flag/option
242 i = _getNextFlagIndex(args, i); 245 i = _getNextFlagIndex(args, i);
243 } else { 246 } else {
244 filtered.add(arg); 247 filtered.add(arg);
245 } 248 }
246 } else { 249 } else {
247 filtered.add(arg); 250 filtered.add(arg);
248 } 251 }
249 } 252 }
250 253
254 print(filtered);
251 return filtered; 255 return filtered;
252 } 256 }
253 257
254 _getNextFlagIndex(args, i) { 258 _getNextFlagIndex(args, i) {
255 for ( ; i < args.length; ++i) { 259 for ( ; i < args.length; ++i) {
256 if (args[i].startsWith('--')) { 260 if (args[i].startsWith('--')) {
257 return i; 261 return i;
258 } 262 }
259 } 263 }
260 return i; 264 return i;
261 } 265 }
262 } 266 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698