private void processOptionArgument(@NotNull final CommandLineArgument o) {
    assert myCurrentOptionAndArgsLeft != null: "Method can't be called if no current option exist";
    if (myCurrentOptionAndArgsLeft.second > 0) {
      myCurrentOptionAndArgsLeft = Pair.create(myCurrentOptionAndArgsLeft.first, myCurrentOptionAndArgsLeft.second - 1);
      final Pair<Integer, Argument> argumentAndQuantity = myCurrentOptionAndArgsLeft.first.getArgumentAndQuantity();
      // TODO: Use class instead of pair to prevent such a stupid checks
      assert argumentAndQuantity != null: "Option has arguments left but no argument info";
      final Argument argumentInfo = argumentAndQuantity.getSecond();
      processArgument(o, argumentInfo);

      myOptionArguments.put(o, myCurrentOptionAndArgsLeft.first);
    }
    else if (myCurrentOptionAndArgsLeft.second == 0) {
      myCurrentOptionAndArgsLeft = null;
      myExcessArguments.add(o);
    }
  }
private void processOptionArgument(@NotNull final CommandLineArgument o)