LLVM 20.0.0git
|
ArgList - Ordered collection of driver arguments. More...
#include "llvm/Option/ArgList.h"
Public Types | |
using | arglist_type = SmallVector< Arg *, 16 > |
using | iterator = arg_iterator< arglist_type::iterator > |
using | const_iterator = arg_iterator< arglist_type::const_iterator > |
using | reverse_iterator = arg_iterator< arglist_type::reverse_iterator > |
using | const_reverse_iterator = arg_iterator< arglist_type::const_reverse_iterator > |
template<unsigned N> | |
using | filtered_iterator = arg_iterator< arglist_type::const_iterator, N > |
template<unsigned N> | |
using | filtered_reverse_iterator = arg_iterator< arglist_type::const_reverse_iterator, N > |
Public Member Functions | |
Arg Access | |
void | append (Arg *A) |
append - Append A to the arg list. | |
const arglist_type & | getArgs () const |
unsigned | size () const |
template<typename ... OptSpecifiers> | |
bool | hasArgNoClaim (OptSpecifiers ...Ids) const |
hasArg - Does the arg list contain any option matching Id . | |
template<typename ... OptSpecifiers> | |
bool | hasArg (OptSpecifiers ...Ids) const |
bool | hasMultipleArgs (OptSpecifier Id) const |
Return true if the arg list contains multiple arguments matching Id . | |
template<typename ... OptSpecifiers> | |
Arg * | getLastArg (OptSpecifiers ...Ids) const |
Return the last argument matching Id , or null. | |
template<typename ... OptSpecifiers> | |
Arg * | getLastArgNoClaim (OptSpecifiers ...Ids) const |
Return the last argument matching Id , or null. | |
virtual const char * | getArgString (unsigned Index) const =0 |
getArgString - Return the input argument string at Index . | |
virtual unsigned | getNumInputArgStrings () const =0 |
getNumInputArgStrings - Return the number of original argument strings, which are guaranteed to be the first strings in the argument string list. | |
Arg Iteration | |
iterator | begin () |
iterator | end () |
reverse_iterator | rbegin () |
reverse_iterator | rend () |
const_iterator | begin () const |
const_iterator | end () const |
const_reverse_iterator | rbegin () const |
const_reverse_iterator | rend () const |
template<typename ... OptSpecifiers> | |
iterator_range< filtered_iterator< sizeof...(OptSpecifiers)> > | filtered (OptSpecifiers ...Ids) const |
template<typename ... OptSpecifiers> | |
iterator_range< filtered_reverse_iterator< sizeof...(OptSpecifiers)> > | filtered_reverse (OptSpecifiers ...Ids) const |
Arg Removal | |
void | eraseArg (OptSpecifier Id) |
eraseArg - Remove any option matching Id . | |
Argument Lookup Utilities | |
StringRef | getLastArgValue (OptSpecifier Id, StringRef Default="") const |
getLastArgValue - Return the value of the last argument, or a default. | |
std::vector< std::string > | getAllArgValues (OptSpecifier Id) const |
getAllArgValues - Get the values of all instances of the given argument as strings. | |
Translation Utilities | |
bool | hasFlag (OptSpecifier Pos, OptSpecifier Neg, bool Default) const |
hasFlag - Given an option Pos and its negative form Neg , return true if the option is present, false if the negation is present, and Default if neither option is given. | |
bool | hasFlagNoClaim (OptSpecifier Pos, OptSpecifier Neg, bool Default) const |
bool | hasFlag (OptSpecifier Pos, OptSpecifier PosAlias, OptSpecifier Neg, bool Default) const |
hasFlag - Given an option Pos , an alias PosAlias and its negative form Neg , return true if the option or its alias is present, false if the negation is present, and Default if none of the options are given. | |
void | addOptInFlag (ArgStringList &Output, OptSpecifier Pos, OptSpecifier Neg) const |
Given an option Pos and its negative form Neg, render the option if Pos is present. | |
void | addOptOutFlag (ArgStringList &Output, OptSpecifier Pos, OptSpecifier Neg) const |
Render the option if Neg is present. | |
template<typename... OptSpecifiers> | |
void | addLastArg (ArgStringList &Output, OptSpecifiers... Ids) const |
Render only the last argument match Id0 , if present. | |
template<typename... OptSpecifiers> | |
void | AddLastArg (ArgStringList &Output, OptSpecifiers... Ids) const |
void | AddAllArgsExcept (ArgStringList &Output, ArrayRef< OptSpecifier > Ids, ArrayRef< OptSpecifier > ExcludeIds) const |
AddAllArgsExcept - Render all arguments matching any of the given ids and not matching any of the excluded ids. | |
void | addAllArgs (ArgStringList &Output, ArrayRef< OptSpecifier > Ids) const |
Render all arguments matching any of the given ids. | |
void | AddAllArgs (ArgStringList &Output, OptSpecifier Id0) const |
AddAllArgs - Render all arguments matching the given ids. | |
void | AddAllArgValues (ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const |
AddAllArgValues - Render the argument values of all arguments matching the given ids. | |
void | AddAllArgsTranslated (ArgStringList &Output, OptSpecifier Id0, const char *Translation, bool Joined=false) const |
AddAllArgsTranslated - Render all the arguments matching the given ids, but forced to separate args and using the provided name instead of the first option value. | |
void | ClaimAllArgs (OptSpecifier Id0) const |
ClaimAllArgs - Claim all arguments which match the given option id. | |
template<typename... OptSpecifiers> | |
void | claimAllArgs (OptSpecifiers... Ids) const |
void | ClaimAllArgs () const |
ClaimAllArgs - Claim all arguments. | |
Arg Synthesis | |
virtual const char * | MakeArgStringRef (StringRef Str) const =0 |
Construct a constant string pointer whose lifetime will match that of the ArgList. | |
const char * | MakeArgString (const Twine &Str) const |
const char * | GetOrMakeJoinedArgString (unsigned Index, StringRef LHS, StringRef RHS) const |
Create an arg string for (LHS + RHS ), reusing the string at Index if possible. | |
void | print (raw_ostream &O) const |
void | dump () const |
Protected Member Functions | |
ArgList ()=default | |
ArgList (ArgList &&RHS) | |
ArgList & | operator= (ArgList &&RHS) |
~ArgList ()=default | |
Static Protected Member Functions | |
static OptSpecifier | toOptSpecifier (OptSpecifier S) |
ArgList - Ordered collection of driver arguments.
The ArgList class manages a list of Arg instances as well as auxiliary data and convenience methods to allow Tools to quickly check for the presence of Arg instances for a particular Option and to iterate over groups of arguments.
using llvm::opt::ArgList::arglist_type = SmallVector<Arg *, 16> |
using llvm::opt::ArgList::filtered_iterator = arg_iterator<arglist_type::const_iterator, N> |
using llvm::opt::ArgList::filtered_reverse_iterator = arg_iterator<arglist_type::const_reverse_iterator, N> |
|
protecteddefault |
|
inlineprotected |
|
protecteddefault |
void ArgList::addAllArgs | ( | ArgStringList & | Output, |
ArrayRef< OptSpecifier > | Ids | ||
) | const |
Render all arguments matching any of the given ids.
This is a nicer interface when you don't have a list of Ids to exclude.
Definition at line 135 of file ArgList.cpp.
References AddAllArgsExcept().
void ArgList::AddAllArgs | ( | ArgStringList & | Output, |
OptSpecifier | Id0 | ||
) | const |
AddAllArgs - Render all arguments matching the given ids.
Definition at line 141 of file ArgList.cpp.
References llvm::opt::Arg::claim(), filtered(), and llvm::opt::Arg::render().
void ArgList::AddAllArgsExcept | ( | ArgStringList & | Output, |
ArrayRef< OptSpecifier > | Ids, | ||
ArrayRef< OptSpecifier > | ExcludeIds | ||
) | const |
AddAllArgsExcept - Render all arguments matching any of the given ids and not matching any of the excluded ids.
Definition at line 111 of file ArgList.cpp.
References llvm::opt::Arg::claim(), llvm::opt::Arg::getOption(), llvm::opt::Option::matches(), and llvm::opt::Arg::render().
Referenced by addAllArgs().
void ArgList::AddAllArgsTranslated | ( | ArgStringList & | Output, |
OptSpecifier | Id0, | ||
const char * | Translation, | ||
bool | Joined = false |
||
) | const |
AddAllArgsTranslated - Render all the arguments matching the given ids, but forced to separate args and using the provided name instead of the first option value.
Joined | - If true, render the argument as joined with the option specifier. |
Definition at line 157 of file ArgList.cpp.
References llvm::opt::Arg::claim(), filtered(), llvm::opt::Arg::getValue(), MakeArgString(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
void ArgList::AddAllArgValues | ( | ArgStringList & | Output, |
OptSpecifier | Id0, | ||
OptSpecifier | Id1 = 0U , |
||
OptSpecifier | Id2 = 0U |
||
) | const |
AddAllArgValues - Render the argument values of all arguments matching the given ids.
Definition at line 148 of file ArgList.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::opt::Arg::claim(), filtered(), and llvm::opt::Arg::getValues().
Referenced by getAllArgValues().
|
inline |
Render only the last argument match Id0
, if present.
Definition at line 323 of file ArgList.h.
References A, and getLastArg().
Referenced by AddLastArg().
|
inline |
Definition at line 328 of file ArgList.h.
References addLastArg().
void ArgList::addOptInFlag | ( | ArgStringList & | Output, |
OptSpecifier | Pos, | ||
OptSpecifier | Neg | ||
) | const |
Given an option Pos and its negative form Neg, render the option if Pos is present.
Definition at line 104 of file ArgList.cpp.
References A, and getLastArg().
Referenced by addOptOutFlag().
|
inline |
Render the option if Neg is present.
Definition at line 316 of file ArgList.h.
References addOptInFlag().
void ArgList::append | ( | Arg * | A | ) |
append - Append A
to the arg list.
Definition at line 32 of file ArgList.cpp.
References A, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by llvm::opt::DerivedArgList::AddFlagArg(), llvm::opt::DerivedArgList::AddJoinedArg(), llvm::opt::DerivedArgList::AddPositionalArg(), and llvm::opt::DerivedArgList::AddSeparateArg().
|
inline |
void ArgList::ClaimAllArgs | ( | ) | const |
ClaimAllArgs - Claim all arguments.
Definition at line 178 of file ArgList.cpp.
References llvm::opt::Arg::claim(), and llvm::opt::Arg::isClaimed().
void ArgList::ClaimAllArgs | ( | OptSpecifier | Id0 | ) | const |
ClaimAllArgs - Claim all arguments which match the given option id.
Definition at line 173 of file ArgList.cpp.
References llvm::opt::Arg::claim(), and filtered().
|
inline |
Definition at line 362 of file ArgList.h.
References A, and filtered().
LLVM_DUMP_METHOD void ArgList::dump | ( | ) | const |
Definition at line 203 of file ArgList.cpp.
References llvm::dbgs(), and print().
|
inline |
void ArgList::eraseArg | ( | OptSpecifier | Id | ) |
eraseArg - Remove any option matching Id
.
Definition at line 45 of file ArgList.cpp.
References A, llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), and filtered().
|
inline |
Definition at line 205 of file ArgList.h.
References B, E, llvm::make_range(), Range, and toOptSpecifier().
Referenced by AddAllArgs(), AddAllArgsTranslated(), AddAllArgValues(), ClaimAllArgs(), claimAllArgs(), eraseArg(), getLastArg(), and hasMultipleArgs().
|
inline |
Definition at line 216 of file ArgList.h.
References B, E, llvm::make_range(), Range, and toOptSpecifier().
Referenced by getLastArgNoClaim().
std::vector< std::string > ArgList::getAllArgValues | ( | OptSpecifier | Id | ) | const |
getAllArgValues - Get the values of all instances of the given argument as strings.
Definition at line 98 of file ArgList.cpp.
References AddAllArgValues(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().
|
inline |
getArgString - Return the input argument string at Index
.
Implemented in llvm::opt::InputArgList, and llvm::opt::DerivedArgList.
Referenced by GetOrMakeJoinedArgString().
|
inline |
Return the last argument matching Id
, or null.
Definition at line 256 of file ArgList.h.
References A, llvm::opt::Arg::claim(), and filtered().
Referenced by addLastArg(), addOptInFlag(), getLastArgValue(), hasArg(), and hasFlag().
|
inline |
Return the last argument matching Id
, or null.
Do not "claim" the option (don't mark it as having been used).
Definition at line 268 of file ArgList.h.
References A, and filtered_reverse().
Referenced by hasArgNoClaim(), and hasFlagNoClaim().
StringRef ArgList::getLastArgValue | ( | OptSpecifier | Id, |
StringRef | Default = "" |
||
) | const |
getLastArgValue - Return the value of the last argument, or a default.
Definition at line 92 of file ArgList.cpp.
References A, llvm::Default, and getLastArg().
|
pure virtual |
getNumInputArgStrings - Return the number of original argument strings, which are guaranteed to be the first strings in the argument string list.
Implemented in llvm::opt::InputArgList, and llvm::opt::DerivedArgList.
const char * ArgList::GetOrMakeJoinedArgString | ( | unsigned | Index, |
StringRef | LHS, | ||
StringRef | RHS | ||
) | const |
Create an arg string for (LHS
+ RHS
), reusing the string at Index
if possible.
Definition at line 184 of file ArgList.cpp.
References llvm::StringRef::data(), llvm::StringRef::ends_with(), getArgString(), LHS, MakeArgString(), RHS, llvm::StringRef::size(), and llvm::StringRef::starts_with().
|
inline |
Definition at line 244 of file ArgList.h.
References getLastArg().
|
inline |
hasArg - Does the arg list contain any option matching Id
.
Claim
Whether the argument should be claimed, if it exists.
Definition at line 240 of file ArgList.h.
References getLastArgNoClaim().
bool ArgList::hasFlag | ( | OptSpecifier | Pos, |
OptSpecifier | Neg, | ||
bool | Default | ||
) | const |
hasFlag - Given an option Pos
and its negative form Neg
, return true if the option is present, false if the negation is present, and Default
if neither option is given.
If both the option and its negation are present, the last one wins.
Definition at line 72 of file ArgList.cpp.
References A, llvm::Default, and getLastArg().
bool ArgList::hasFlag | ( | OptSpecifier | Pos, |
OptSpecifier | PosAlias, | ||
OptSpecifier | Neg, | ||
bool | Default | ||
) | const |
hasFlag - Given an option Pos
, an alias PosAlias
and its negative form Neg
, return true if the option or its alias is present, false if the negation is present, and Default
if none of the options are given.
If multiple options are present, the last one wins.
Definition at line 85 of file ArgList.cpp.
References A, llvm::Default, and getLastArg().
bool ArgList::hasFlagNoClaim | ( | OptSpecifier | Pos, |
OptSpecifier | Neg, | ||
bool | Default | ||
) | const |
Definition at line 78 of file ArgList.cpp.
References A, llvm::Default, and getLastArgNoClaim().
|
inline |
Return true if the arg list contains multiple arguments matching Id
.
Definition at line 249 of file ArgList.h.
References filtered().
Definition at line 377 of file ArgList.h.
References MakeArgStringRef().
Referenced by AddAllArgsTranslated(), and GetOrMakeJoinedArgString().
Construct a constant string pointer whose lifetime will match that of the ArgList.
Implemented in llvm::opt::InputArgList, and llvm::opt::DerivedArgList.
Referenced by MakeArgString().
Definition at line 161 of file ArgList.h.
References RHS.
Referenced by llvm::opt::InputArgList::operator=().
void ArgList::print | ( | raw_ostream & | O | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestaticprotected |
Definition at line 174 of file ArgList.h.
Referenced by filtered(), and filtered_reverse().