-// addArgument - Tell the system that this Option subclass will handle all
-// occurrences of -ArgStr on the command line.
-//
-void Option::addArgument(const char *ArgStr) {
- if (ArgStr[0])
- AddArgument(ArgStr, this);
-
- if (getFormattingFlag() == Positional)
- PositionalOptions->push_back(this);
- else if (getNumOccurrencesFlag() == ConsumeAfter) {
- if (!PositionalOptions->empty() &&
- PositionalOptions->front()->getNumOccurrencesFlag() == ConsumeAfter)
- error("Cannot specify more than one option with cl::ConsumeAfter!");
- PositionalOptions->insert(PositionalOptions->begin(), this);
- }
-}
-
-void Option::removeArgument(const char *ArgStr) {
- if (ArgStr[0])
- RemoveArgument(ArgStr, this);
-
- if (getFormattingFlag() == Positional) {
- std::vector<Option*>::iterator I =
- std::find(PositionalOptions->begin(), PositionalOptions->end(), this);
- assert(I != PositionalOptions->end() && "Arg not registered!");
- PositionalOptions->erase(I);
- } else if (getNumOccurrencesFlag() == ConsumeAfter) {
- assert(!PositionalOptions->empty() && (*PositionalOptions)[0] == this &&
- "Arg not registered correctly!");
- PositionalOptions->erase(PositionalOptions->begin());
- }
-}
-