anchor.diff:    ///
     /// An /argument/ is something that isn't an option, for example, a file name.
     ///
  -  /// The specification is a map of options to one of the type literals `Uri`,
  -  /// `int`, `bool`, or `String`, or a comma (`","`) that represents option
  -  /// values of type [Uri], [int], [bool], [String], or a comma-separated list
  -  /// of [String], respectively.
  +  /// The specification is a map of options to one of the following values:
  +  /// * the type literal `Uri`, representing an option value of type [Uri],
  +  /// * the type literal `int`, representing an option value of type [int],
  +  /// * the bool literal `false`, representing a boolean option that is turned
  +  ///   off by default,
  +  /// * the bool literal `true, representing a boolean option that is turned on
  +  ///   by default,
  +  /// * or the string literal `","`, representing a comma-separated list of
  +  ///   values.
     ///
     /// If [arguments] contains `"--"`, anything before is parsed as options, and
     /// arguments; anything following is treated as arguments (even if starting
     /// with, for example, a `-`).
     ///
  -  /// Anything that looks like an option is assumed to be a `bool` option set
  -  /// to true, unless it's mentioned in [specification] in which case the
  -  /// option requires a value, either on the form `--option value` or
  -  /// `--option=value`.
  -  ///
  -  /// This method performs only a limited amount of validation, but if an error
  -  /// occurs, it will print [usage] along with a specific error message.
  +  /// If an option isn't found in [specification], an error is thrown.
  +  ///
  +  /// Boolean options do not require an option value, but an optional value can
  +  /// be provided using the forms `--option=value` where `value` can be `true`
  +  /// or `yes` to turn on the option, or `false` or `no` to turn it off.  If no
  +  /// option value is specified, a boolean option is turned on.
  +  ///
  +  /// All other options require an option value, either on the form `--option
  +  /// value` or `--option=value`.
     static ParsedArguments parse(
         List<String> arguments, Map<String, dynamic> specification) {
       specification ??= const <String, dynamic>{};
  
positive.code: 
    final List<String> arguments = parsedArguments.arguments;
  
    final bool help = options.containsKey("--help") ||
        options.containsKey("-h") ||
        options.containsKey("/h") ||
        options.containsKey("/?");
  
    if (help) {
      print(computeUsage(programName, verbose).message);
      exit(0);
    }
  
    if (options.containsKey("-o") && options.containsKey("--output")) {
      return throw new CommandLineProblem.deprecated(
          "Can't specify both '-o' and '--output'.");
    }
  
    if (options.containsKey("-t") && options.containsKey("--target")) {
      return throw new CommandLineProblem.deprecated(
          "Can't specify both '-t' and '--target'.");
    }
  
    if (options.containsKey("--compile-sdk") &&
  
negative.code:     if (compileSdk) {
        return throw new CommandLineProblem.deprecated(
            "Cannot specify '--compile-sdk' option to compile_platform.");
      }
      if (options.containsKey("--output")) {
        return throw new CommandLineProblem.deprecated(
  