LLVM  4.0.0
Public Types | Protected Member Functions | List of all members
llvm::opt::ArgList Class Referenceabstract

ArgList - Ordered collection of driver arguments. More...

#include <ArgList.h>

Inheritance diagram for llvm::opt::ArgList:
[legend]

Public Types

typedef SmallVector< Arg *, 16 > arglist_type
 
typedef arglist_type::iterator iterator
 
typedef
arglist_type::const_iterator 
const_iterator
 
typedef
arglist_type::reverse_iterator 
reverse_iterator
 
typedef
arglist_type::const_reverse_iterator 
const_reverse_iterator
 

Public Member Functions

Arg Access
void append (Arg *A)
 append - Append A to the arg list. More...
 
arglist_typegetArgs ()
 
const arglist_typegetArgs () const
 
unsigned size () const
 
bool hasArgNoClaim (OptSpecifier Id) const
 hasArg - Does the arg list contain any option matching Id. More...
 
bool hasArg (OptSpecifier Id) const
 
bool hasArg (OptSpecifier Id0, OptSpecifier Id1) const
 
bool hasArg (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2) const
 
ArggetLastArgNoClaim (OptSpecifier Id) const
 getLastArg - Return the last argument matching Id, or null. More...
 
ArggetLastArgNoClaim (OptSpecifier Id0, OptSpecifier Id1) const
 
ArggetLastArgNoClaim (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2) const
 
ArggetLastArgNoClaim (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2, OptSpecifier Id3) const
 
ArggetLastArg (OptSpecifier Id) const
 
ArggetLastArg (OptSpecifier Id0, OptSpecifier Id1) const
 
ArggetLastArg (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2) const
 
ArggetLastArg (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2, OptSpecifier Id3) const
 
ArggetLastArg (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2, OptSpecifier Id3, OptSpecifier Id4) const
 
ArggetLastArg (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2, OptSpecifier Id3, OptSpecifier Id4, OptSpecifier Id5) const
 
ArggetLastArg (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2, OptSpecifier Id3, OptSpecifier Id4, OptSpecifier Id5, OptSpecifier Id6) const
 
ArggetLastArg (OptSpecifier Id0, OptSpecifier Id1, OptSpecifier Id2, OptSpecifier Id3, OptSpecifier Id4, OptSpecifier Id5, OptSpecifier Id6, OptSpecifier Id7) const
 
virtual const char * getArgString (unsigned Index) const =0
 getArgString - Return the input argument string at Index. More...
 
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. More...
 
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
 
arg_iterator filtered_begin (OptSpecifier Id0=0U, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const
 
arg_iterator filtered_end () const
 
iterator_range< arg_iteratorfiltered (OptSpecifier Id0=0U, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const
 
Arg Removal
void eraseArg (OptSpecifier Id)
 eraseArg - Remove any option matching Id. More...
 
Argument Lookup Utilities
StringRef getLastArgValue (OptSpecifier Id, StringRef Default="") const
 getLastArgValue - Return the value of the last argument, or a default. More...
 
std::vector< std::string > getAllArgValues (OptSpecifier Id) const
 getAllArgValues - Get the values of all instances of the given argument as strings. More...
 
Translation Utilities
bool hasFlag (OptSpecifier Pos, OptSpecifier Neg, bool Default=true) 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. More...
 
bool hasFlag (OptSpecifier Pos, OptSpecifier PosAlias, OptSpecifier Neg, bool Default=true) 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. More...
 
void AddLastArg (ArgStringList &Output, OptSpecifier Id0) const
 AddLastArg - Render only the last argument match Id0, if present. More...
 
void AddLastArg (ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1) 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. More...
 
void AddAllArgs (ArgStringList &Output, ArrayRef< OptSpecifier > Ids) const
 AddAllArgs - Render all arguments matching any of the given ids. More...
 
void AddAllArgs (ArgStringList &Output, OptSpecifier Id0, OptSpecifier Id1=0U, OptSpecifier Id2=0U) const
 AddAllArgs - Render all arguments matching the given ids. More...
 
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. More...
 
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. More...
 
void ClaimAllArgs (OptSpecifier Id0) const
 ClaimAllArgs - Claim all arguments which match the given option id. More...
 
void ClaimAllArgs () const
 ClaimAllArgs - Claim all arguments. More...
 
Arg Synthesis
virtual const char * MakeArgStringRef (StringRef Str) const =0
 Construct a constant string pointer whose lifetime will match that of the ArgList. More...
 
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. More...
 
void print (raw_ostream &O) const
 
void dump () const
 

Protected Member Functions

 ArgList ()=default
 
 ArgList (ArgList &&RHS)
 
ArgListoperator= (ArgList &&RHS)
 
 ~ArgList ()=default
 

Detailed Description

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.

Definition at line 94 of file ArgList.h.

Member Typedef Documentation

Definition at line 96 of file ArgList.h.

Definition at line 98 of file ArgList.h.

Definition at line 100 of file ArgList.h.

Definition at line 97 of file ArgList.h.

Definition at line 99 of file ArgList.h.

Constructor & Destructor Documentation

llvm::opt::ArgList::ArgList ( )
protecteddefault
llvm::opt::ArgList::ArgList ( ArgList &&  RHS)
inlineprotected

Definition at line 116 of file ArgList.h.

llvm::opt::ArgList::~ArgList ( )
protecteddefault

Member Function Documentation

void ArgList::AddAllArgs ( ArgStringList Output,
ArrayRef< OptSpecifier Ids 
) const

AddAllArgs - 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 286 of file ArgList.cpp.

References AddAllArgsExcept(), and llvm::None.

void ArgList::AddAllArgs ( ArgStringList Output,
OptSpecifier  Id0,
OptSpecifier  Id1 = 0U,
OptSpecifier  Id2 = 0U 
) const

AddAllArgs - Render all arguments matching the given ids.

This 3-opt variant of AddAllArgs could be eliminated in favor of one that accepts a single specifier, given the above which accepts any number.

Definition at line 294 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 262 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.

Parameters
Joined- If true, render the argument as joined with the option specifier.

Definition at line 311 of file ArgList.cpp.

References llvm::opt::Arg::claim(), filtered(), llvm::opt::Arg::getValue(), MakeArgString(), and llvm::SmallVectorTemplateBase< T, isPodLike >::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 302 of file ArgList.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::opt::Arg::claim(), filtered(), and llvm::opt::Arg::getValues().

Referenced by getAllArgValues().

void ArgList::AddLastArg ( ArgStringList Output,
OptSpecifier  Id0 
) const

AddLastArg - Render only the last argument match Id0, if present.

Definition at line 247 of file ArgList.cpp.

References A, and getLastArg().

void ArgList::AddLastArg ( ArgStringList Output,
OptSpecifier  Id0,
OptSpecifier  Id1 
) const

Definition at line 254 of file ArgList.cpp.

References A, and getLastArg().

void ArgList::append ( Arg A)
iterator llvm::opt::ArgList::begin ( )
inline

Definition at line 142 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin().

Referenced by ClaimAllArgs(), and getLastArg().

const_iterator llvm::opt::ArgList::begin ( ) const
inline
void ArgList::ClaimAllArgs ( OptSpecifier  Id0) const

ClaimAllArgs - Claim all arguments which match the given option id.

Definition at line 327 of file ArgList.cpp.

References llvm::opt::Arg::claim(), and filtered().

void ArgList::ClaimAllArgs ( ) const

ClaimAllArgs - Claim all arguments.

Definition at line 332 of file ArgList.cpp.

References begin(), and end().

LLVM_DUMP_METHOD void ArgList::dump ( ) const

Definition at line 356 of file ArgList.cpp.

References llvm::dbgs(), and print().

iterator llvm::opt::ArgList::end ( )
inline

Definition at line 143 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end().

Referenced by ClaimAllArgs(), eraseArg(), and getLastArg().

const_iterator llvm::opt::ArgList::end ( ) const
inline

Definition at line 149 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end().

void ArgList::eraseArg ( OptSpecifier  Id)

eraseArg - Remove any option matching Id.

Definition at line 41 of file ArgList.cpp.

References A, end(), llvm::SmallVectorImpl< T >::erase(), llvm::opt::Arg::getOption(), llvm::opt::Option::matches(), and llvm::remove_if().

iterator_range<arg_iterator> llvm::opt::ArgList::filtered ( OptSpecifier  Id0 = 0U,
OptSpecifier  Id1 = 0U,
OptSpecifier  Id2 = 0U 
) const
inline
arg_iterator llvm::opt::ArgList::filtered_begin ( OptSpecifier  Id0 = 0U,
OptSpecifier  Id1 = 0U,
OptSpecifier  Id2 = 0U 
) const
inline

Definition at line 154 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::begin().

Referenced by filtered(), and llvm::libDriverMain().

arg_iterator llvm::opt::ArgList::filtered_end ( ) const
inline

Definition at line 158 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end().

Referenced by filtered(), and llvm::libDriverMain().

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 241 of file ArgList.cpp.

References AddAllArgValues(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().

arglist_type& llvm::opt::ArgList::getArgs ( )
inline

Definition at line 133 of file ArgList.h.

const arglist_type& llvm::opt::ArgList::getArgs ( ) const
inline

Definition at line 134 of file ArgList.h.

virtual const char* llvm::opt::ArgList::getArgString ( unsigned  Index) const
pure virtual

getArgString - Return the input argument string at Index.

Implemented in llvm::opt::DerivedArgList, and llvm::opt::InputArgList.

Referenced by llvm::opt::Option::accept(), GetOrMakeJoinedArgString(), and llvm::opt::OptTable::ParseOneArg().

Arg * ArgList::getLastArg ( OptSpecifier  Id) const

Definition at line 84 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Referenced by AddLastArg(), getLastArgValue(), getOutputPath(), hasArg(), and hasFlag().

Arg * ArgList::getLastArg ( OptSpecifier  Id0,
OptSpecifier  Id1 
) const

Definition at line 96 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Arg * ArgList::getLastArg ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2 
) const

Definition at line 110 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Arg * ArgList::getLastArg ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2,
OptSpecifier  Id3 
) const

Definition at line 125 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Arg * ArgList::getLastArg ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2,
OptSpecifier  Id3,
OptSpecifier  Id4 
) const

Definition at line 141 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Arg * ArgList::getLastArg ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2,
OptSpecifier  Id3,
OptSpecifier  Id4,
OptSpecifier  Id5 
) const

Definition at line 159 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Arg * ArgList::getLastArg ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2,
OptSpecifier  Id3,
OptSpecifier  Id4,
OptSpecifier  Id5,
OptSpecifier  Id6 
) const

Definition at line 178 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Arg * ArgList::getLastArg ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2,
OptSpecifier  Id3,
OptSpecifier  Id4,
OptSpecifier  Id5,
OptSpecifier  Id6,
OptSpecifier  Id7 
) const

Definition at line 199 of file ArgList.cpp.

References begin(), llvm::opt::Arg::claim(), and end().

Arg * ArgList::getLastArgNoClaim ( OptSpecifier  Id) const

getLastArg - Return the last argument matching Id, or null.

Claim Whether the argument should be claimed, if it exists.

Definition at line 47 of file ArgList.cpp.

References rbegin(), and rend().

Referenced by hasArgNoClaim().

Arg * ArgList::getLastArgNoClaim ( OptSpecifier  Id0,
OptSpecifier  Id1 
) const

Definition at line 55 of file ArgList.cpp.

References rbegin(), and rend().

Arg * ArgList::getLastArgNoClaim ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2 
) const

Definition at line 64 of file ArgList.cpp.

References rbegin(), and rend().

Arg * ArgList::getLastArgNoClaim ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2,
OptSpecifier  Id3 
) const

Definition at line 74 of file ArgList.cpp.

References rbegin(), and rend().

StringRef ArgList::getLastArgValue ( OptSpecifier  Id,
StringRef  Default = "" 
) const

getLastArgValue - Return the value of the last argument, or a default.

Definition at line 234 of file ArgList.cpp.

References A, and getLastArg().

virtual unsigned llvm::opt::ArgList::getNumInputArgStrings ( ) const
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::DerivedArgList, and llvm::opt::InputArgList.

Referenced by llvm::opt::Option::accept().

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 338 of file ArgList.cpp.

References llvm::StringRef::data(), llvm::StringRef::endswith(), getArgString(), MakeArgString(), llvm::StringRef::size(), and llvm::StringRef::startswith().

Referenced by llvm::opt::Arg::render().

bool llvm::opt::ArgList::hasArg ( OptSpecifier  Id) const
inline

Definition at line 185 of file ArgList.h.

References getLastArg().

Referenced by llvm::libDriverMain().

bool llvm::opt::ArgList::hasArg ( OptSpecifier  Id0,
OptSpecifier  Id1 
) const
inline

Definition at line 188 of file ArgList.h.

References getLastArg().

bool llvm::opt::ArgList::hasArg ( OptSpecifier  Id0,
OptSpecifier  Id1,
OptSpecifier  Id2 
) const
inline

Definition at line 191 of file ArgList.h.

References getLastArg().

bool llvm::opt::ArgList::hasArgNoClaim ( OptSpecifier  Id) const
inline

hasArg - Does the arg list contain any option matching Id.

Claim Whether the argument should be claimed, if it exists.

Definition at line 182 of file ArgList.h.

References getLastArgNoClaim().

bool ArgList::hasFlag ( OptSpecifier  Pos,
OptSpecifier  Neg,
bool  Default = true 
) 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 221 of file ArgList.cpp.

References A, and getLastArg().

bool ArgList::hasFlag ( OptSpecifier  Pos,
OptSpecifier  PosAlias,
OptSpecifier  Neg,
bool  Default = true 
) 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 227 of file ArgList.cpp.

References A, and getLastArg().

const char* llvm::opt::ArgList::MakeArgString ( const Twine Str) const
inline
virtual const char* llvm::opt::ArgList::MakeArgStringRef ( StringRef  Str) const
pure virtual

Construct a constant string pointer whose lifetime will match that of the ArgList.

Implemented in llvm::opt::DerivedArgList, and llvm::opt::InputArgList.

Referenced by MakeArgString().

ArgList& llvm::opt::ArgList::operator= ( ArgList &&  RHS)
inlineprotected

Definition at line 117 of file ArgList.h.

Referenced by llvm::opt::InputArgList::operator=().

void ArgList::print ( raw_ostream O) const

Definition at line 349 of file ArgList.cpp.

References A, and llvm::opt::Arg::print().

Referenced by dump().

reverse_iterator llvm::opt::ArgList::rbegin ( )
inline

Definition at line 145 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::rbegin().

Referenced by getLastArgNoClaim().

const_reverse_iterator llvm::opt::ArgList::rbegin ( ) const
inline
reverse_iterator llvm::opt::ArgList::rend ( )
inline

Definition at line 146 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::rend().

Referenced by getLastArgNoClaim().

const_reverse_iterator llvm::opt::ArgList::rend ( ) const
inline

Definition at line 152 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::rend().

unsigned llvm::opt::ArgList::size ( ) const
inline

Definition at line 136 of file ArgList.h.

References llvm::SmallVectorTemplateCommon< T, typename >::size().


The documentation for this class was generated from the following files: