10 #ifndef LLVM_OPTION_ARGLIST_H
11 #define LLVM_OPTION_ARGLIST_H
57 : Current(it), Args(_Args), Id0(_Id0), Id1(_Id1), Id2(_Id2) {
61 operator const Arg*() {
return *Current; }
78 return LHS.Current == RHS.Current;
196 virtual const char *
getArgString(
unsigned Index)
const = 0;
253 const char *Translation,
254 bool Joined =
false)
const;
301 mutable std::list<std::string> SynthesizedStrings;
304 unsigned NumInputArgStrings;
307 InputArgList(
const char*
const *ArgBegin,
const char*
const *ArgEnd);
311 return ArgStrings[Index];
315 return NumInputArgStrings;
const_reverse_iterator rend() const
virtual const char * MakeArgString(StringRef Str) const
std::reverse_iterator< iterator > reverse_iterator
void push_back(const T &Elt)
arg_iterator operator++(int)
void AddSeparateArg(const Arg *BaseArg, const Option Opt, StringRef Value)
bool hasArgNoClaim(OptSpecifier Id) const
virtual const char * MakeArgString(StringRef Str) const =0
void AddAllArgsTranslated(ArgStringList &Output, OptSpecifier Id0, const char *Translation, bool Joined=false) const
Arg * MakeFlagArg(const Arg *BaseArg, const Option Opt) const
MakeFlagArg - Construct a new FlagArg for the given option Id.
arglist_type::const_iterator const_iterator
void AddAllArgs(ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const
AddAllArgs - Render all arguments matching the given ids.
const InputArgList & getBaseArgs() const
arglist_type::const_reverse_iterator const_reverse_iterator
void eraseArg(OptSpecifier Id)
eraseArg - Remove any option matching Id.
reverse_iterator rbegin()
void AddFlagArg(const Arg *BaseArg, const Option Opt)
arg_iterator - Iterates through arguments stored inside an ArgList.
const char * MakeArgString(std::string Str) const
arg_iterator(SmallVectorImpl< Arg * >::const_iterator it, const ArgList &_Args, OptSpecifier _Id0=0U, OptSpecifier _Id1=0U, OptSpecifier _Id2=0U)
void AddSynthesizedArg(Arg *A)
arglist_type::iterator iterator
virtual unsigned getNumInputArgStrings() const =0
bool hasArg(OptSpecifier Id) const
Arg * getLastArgNoClaim(OptSpecifier Id) const
arg_iterator filtered_end() const
A concrete instance of a particular driver option.
DerivedArgList(const InputArgList &BaseArgs)
Construct a new derived arg list from BaseArgs.
bool hasArg(OptSpecifier Id0, OptSpecifier Id1) const
const arglist_type & getArgs() const
arg_iterator & operator++()
const char * GetOrMakeJoinedArgString(unsigned Index, StringRef LHS, StringRef RHS) const
Create an arg string for (LHS + RHS), reusing the string at Index if possible.
reference operator*() const
bool hasFlag(OptSpecifier Pos, OptSpecifier Neg, bool Default=true) const
void AddLastArg(ArgStringList &Output, OptSpecifier Id0) const
AddLastArg - Render only the last argument match Id0, if present.
void AddAllArgValues(ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const
virtual unsigned getNumInputArgStrings() const
virtual const char * getArgString(unsigned Index) const =0
getArgString - Return the input argument string at Index.
bool hasArg(OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2) const
Arg * MakeJoinedArg(const Arg *BaseArg, const Option Opt, StringRef Value) const
void AddPositionalArg(const Arg *BaseArg, const Option Opt, StringRef Value)
std::reverse_iterator< const_iterator > const_reverse_iterator
virtual const char * getArgString(unsigned Index) const
getArgString - Return the input argument string at Index.
#define LLVM_DELETED_FUNCTION
arglist_type::reverse_iterator reverse_iterator
friend bool operator!=(arg_iterator LHS, arg_iterator RHS)
Arg * MakeSeparateArg(const Arg *BaseArg, const Option Opt, StringRef Value) const
friend bool operator==(arg_iterator LHS, arg_iterator RHS)
Arg * MakePositionalArg(const Arg *BaseArg, const Option Opt, StringRef Value) const
const_iterator end() const
void ClaimAllArgs() const
void append(Arg *A)
append - Append A to the arg list.
OptSpecifier - Wrapper class for abstracting references to option IDs.
Arg * getLastArg(OptSpecifier Id) const
reverse_iterator rbegin()
std::vector< std::string > getAllArgValues(OptSpecifier Id) const
LLVM Value Representation.
const_iterator begin() const
arg_iterator filtered_begin(OptSpecifier Id0=0U, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const
pointer operator->() const
std::ptrdiff_t difference_type
StringRef getLastArgValue(OptSpecifier Id, StringRef Default="") const
getLastArgValue - Return the value of the last argument, or a default.
const_reverse_iterator rbegin() const
void AddJoinedArg(const Arg *BaseArg, const Option Opt, StringRef Value)
const char * MakeArgString(const char *Str) const
SmallVector< Arg *, 16 > arglist_type
std::forward_iterator_tag iterator_category