@Override
  public void visitOption(@NotNull final CommandLineOption o) {
    super.visitOption(o);
    if (myUnusedOptions.containsKey(o.getOptionName())) {
      // Remove from list of available options
      final Option option = myUnusedOptions.remove(o.getOptionName());
      for (final String optionName : option.getAllNames()) {
        myUnusedOptions.remove(optionName);
      }

      final Pair<Integer, Argument> argumentAndQuantity = option.getArgumentAndQuantity();
      if (argumentAndQuantity != null) {
        myCurrentOptionAndArgsLeft = Pair.create(option, argumentAndQuantity.first);
      }
      else {
        myCurrentOptionAndArgsLeft = new Pair<>(option, 0);
      }
    }
    else {
      myBadValues.add(o); //No such option available
    }
  }
@Override
  public void visitOption(@NotNull final CommandLineOption o)