| OLD | NEW |
| 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 import 'arg_parser.dart'; | 5 import 'arg_parser.dart'; |
| 6 import 'arg_results.dart'; | 6 import 'arg_results.dart'; |
| 7 import 'option.dart'; | 7 import 'option.dart'; |
| 8 | 8 |
| 9 final _SOLO_OPT = new RegExp(r'^-([a-zA-Z0-9])$'); | 9 final _SOLO_OPT = new RegExp(r'^-([a-zA-Z0-9])$'); |
| 10 final _ABBR_OPT = new RegExp(r'^-([a-zA-Z0-9]+)(.*)$'); | 10 final _ABBR_OPT = new RegExp(r'^-([a-zA-Z0-9]+)(.*)$'); |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 /// a flag. | 251 /// a flag. |
| 252 void setOption(Map results, Option option, String value) { | 252 void setOption(Map results, Option option, String value) { |
| 253 assert(!option.isFlag); | 253 assert(!option.isFlag); |
| 254 | 254 |
| 255 if (!option.isMultiple) { | 255 if (!option.isMultiple) { |
| 256 _validateAllowed(option, value); | 256 _validateAllowed(option, value); |
| 257 results[option.name] = value; | 257 results[option.name] = value; |
| 258 return; | 258 return; |
| 259 } | 259 } |
| 260 | 260 |
| 261 var list = results.putIfAbsent(option.name, () => []); | 261 var list = results.putIfAbsent(option.name, () => <String>[]); |
| 262 | 262 |
| 263 if (option.splitCommas) { | 263 if (option.splitCommas) { |
| 264 for (var element in value.split(",")) { | 264 for (var element in value.split(",")) { |
| 265 _validateAllowed(option, element); | 265 _validateAllowed(option, element); |
| 266 list.add(element); | 266 list.add(element); |
| 267 } | 267 } |
| 268 } else { | 268 } else { |
| 269 _validateAllowed(option, value); | 269 _validateAllowed(option, value); |
| 270 list.add(value); | 270 list.add(value); |
| 271 } | 271 } |
| 272 } | 272 } |
| 273 | 273 |
| 274 /// Validates and stores [value] as the value for [option], which must be a | 274 /// Validates and stores [value] as the value for [option], which must be a |
| 275 /// flag. | 275 /// flag. |
| 276 void setFlag(Map results, Option option, bool value) { | 276 void setFlag(Map results, Option option, bool value) { |
| 277 assert(option.isFlag); | 277 assert(option.isFlag); |
| 278 results[option.name] = value; | 278 results[option.name] = value; |
| 279 } | 279 } |
| 280 | 280 |
| 281 /// Validates that [value] is allowed as a value of [option]. | 281 /// Validates that [value] is allowed as a value of [option]. |
| 282 void _validateAllowed(Option option, String value) { | 282 void _validateAllowed(Option option, String value) { |
| 283 if (option.allowed == null) return; | 283 if (option.allowed == null) return; |
| 284 | 284 |
| 285 validate(option.allowed.contains(value), | 285 validate(option.allowed.contains(value), |
| 286 '"$value" is not an allowed value for option "${option.name}".'); | 286 '"$value" is not an allowed value for option "${option.name}".'); |
| 287 } | 287 } |
| 288 } | 288 } |
| OLD | NEW |