anchor.diff:  
     /// Validates and stores [value] as the value for [option], which must be a
     /// flag.
  -  void setFlag(Map results, Option option, bool value) {
  +  void _setFlag(Map results, Option option, bool value) {
       assert(option.isFlag);
       results[option.name] = value;
     }
  
positive.code:   void _validateAllowed(Option option, String value) {
      if (option.allowed == null) return;
  
      validate(option.allowed!.contains(value),
          '"$value" is not an allowed value for option "${option.name}".');
    }
  }
  
negative.code:   ///
    /// We treat this differently than collapsed abbreviations (like "-abc") to
    /// handle the possible value that may follow it.
    bool _parseSoloOption() {
      // Hand coded regexp: r'^-([a-zA-Z0-9])$'
      // Length must be two, hyphen followed by any letter/digit.
      if (_current.length != 2) return false;
      if (!_current.startsWith('-')) return false;
      var opt = _current[1];
      if (!_isLetterOrDigit(opt.codeUnitAt(0))) return false;
      return _handleSoloOption(opt);
    }
  
    bool _handleSoloOption(String opt) {
      var option = _grammar.findByAbbreviation(opt);
      if (option == null) {
        // Walk up to the parent command if possible.
        _validate(_parent != null, 'Could not find an option or flag "-$opt".');
        return _parent!._handleSoloOption(opt);
      }
  
      _args.removeFirst();
  
      if (option.isFlag) {
        _setFlag(_results, option, true);
      } else {
        _readNextArgAsValue(option);
      }
  
      return true;
  