LLVM  8.0.1
Public Types | Public Member Functions | Protected Attributes | List of all members
llvm::opt::Option Class Reference

Option - Abstract representation for a single form of driver argument. More...

#include "llvm/Option/Option.h"

Collaboration diagram for llvm::opt::Option:
Collaboration graph
[legend]

Public Types

enum  OptionClass {
  GroupClass = 0, InputClass, UnknownClass, FlagClass,
  JoinedClass, ValuesClass, SeparateClass, RemainingArgsClass,
  RemainingArgsJoinedClass, CommaJoinedClass, MultiArgClass, JoinedOrSeparateClass,
  JoinedAndSeparateClass
}
 
enum  RenderStyleKind { RenderCommaJoinedStyle, RenderJoinedStyle, RenderSeparateStyle, RenderValuesStyle }
 

Public Member Functions

 Option (const OptTable::Info *Info, const OptTable *Owner)
 
bool isValid () const
 
unsigned getID () const
 
OptionClass getKind () const
 
StringRef getName () const
 Get the name of this option without any prefix. More...
 
const Option getGroup () const
 
const Option getAlias () const
 
const chargetAliasArgs () const
 Get the alias arguments as a \0 separated list. More...
 
StringRef getPrefix () const
 Get the default prefix for this option. More...
 
std::string getPrefixedName () const
 Get the name of this option with the default prefix. More...
 
unsigned getNumArgs () const
 
bool hasNoOptAsInput () const
 
RenderStyleKind getRenderStyle () const
 
bool hasFlag (unsigned Val) const
 Test if this option has the flag Val. More...
 
const Option getUnaliasedOption () const
 getUnaliasedOption - Return the final option this option aliases (itself, if the option has no alias). More...
 
StringRef getRenderName () const
 getRenderName - Return the name to use when rendering this option. More...
 
bool matches (OptSpecifier ID) const
 matches - Predicate for whether this option is part of the given option (which may be a group). More...
 
Argaccept (const ArgList &Args, unsigned &Index, unsigned ArgSize) const
 accept - Potentially accept the current argument, returning a new Arg instance, or 0 if the option does not accept this argument (or the argument is missing values). More...
 
void print (raw_ostream &O) const
 
void dump () const
 

Protected Attributes

const OptTable::InfoInfo
 
const OptTableOwner
 

Detailed Description

Option - Abstract representation for a single form of driver argument.

An Option class represents a form of option that the driver takes, for example how many arguments the option has and how they can be provided. Individual option instances store additional information about what group the option is a member of (if any), if the option is an alias, and a number of flags. At runtime the driver parses the command line into concrete Arg instances, each of which corresponds to a particular Option instance.

Definition at line 52 of file Option.h.

Member Enumeration Documentation

◆ OptionClass

Enumerator
GroupClass 
InputClass 
UnknownClass 
FlagClass 
JoinedClass 
ValuesClass 
SeparateClass 
RemainingArgsClass 
RemainingArgsJoinedClass 
CommaJoinedClass 
MultiArgClass 
JoinedOrSeparateClass 
JoinedAndSeparateClass 

Definition at line 54 of file Option.h.

◆ RenderStyleKind

Enumerator
RenderCommaJoinedStyle 
RenderJoinedStyle 
RenderSeparateStyle 
RenderValuesStyle 

Definition at line 70 of file Option.h.

Constructor & Destructor Documentation

◆ Option()

Option::Option ( const OptTable::Info Info,
const OptTable Owner 
)

Definition at line 27 of file Option.cpp.

References assert(), FlagClass, getAlias(), getAliasArgs(), getKind(), Info, and isValid().

Member Function Documentation

◆ accept()

Arg * Option::accept ( const ArgList Args,
unsigned Index,
unsigned  ArgSize 
) const

accept - Potentially accept the current argument, returning a new Arg instance, or 0 if the option does not accept this argument (or the argument is missing values).

If the option accepts the current argument, accept() sets Index to the position where argument parsing should resume (even if the argument is missing values).

Parameters
ArgSizeThe number of bytes taken up by the matched Option prefix and name. This is used to determine where joined values start.

Definition at line 110 of file Option.cpp.

References Arg, CommaJoinedClass, FlagClass, getAliasArgs(), llvm::opt::ArgList::getArgString(), getID(), getKind(), getName(), getNumArgs(), llvm::opt::ArgList::getNumInputArgStrings(), getPrefix(), getUnaliasedOption(), llvm::opt::Arg::getValues(), JoinedAndSeparateClass, JoinedClass, JoinedOrSeparateClass, llvm_unreachable, llvm::opt::ArgList::MakeArgString(), llvm::Intrinsic::memcpy, MultiArgClass, llvm::SmallVectorTemplateBase< T, bool >::push_back(), RemainingArgsClass, RemainingArgsJoinedClass, SeparateClass, and llvm::opt::Arg::setOwnsValues().

Referenced by getRenderName().

◆ dump()

LLVM_DUMP_METHOD void Option::dump ( ) const

Definition at line 91 of file Option.cpp.

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

Referenced by getRenderName(), and llvm::opt::OptTable::OptTable().

◆ getAlias()

const Option llvm::opt::Option::getAlias ( ) const
inline

◆ getAliasArgs()

const char* llvm::opt::Option::getAliasArgs ( ) const
inline

Get the alias arguments as a \0 separated list.

E.g. ["foo", "bar"] would be returned as "foo\0bar\0".

Definition at line 118 of file Option.h.

References llvm::opt::OptTable::Info::AliasArgs, and assert().

Referenced by accept(), and Option().

◆ getGroup()

const Option llvm::opt::Option::getGroup ( ) const
inline

Definition at line 104 of file Option.h.

References assert(), llvm::opt::OptTable::getOption(), and llvm::opt::OptTable::Info::GroupID.

Referenced by matches(), and print().

◆ getID()

unsigned llvm::opt::Option::getID ( ) const
inline

Definition at line 88 of file Option.h.

References assert(), and llvm::opt::OptTable::Info::ID.

Referenced by accept(), matches(), and llvm::opt::OptTable::PrintHelp().

◆ getKind()

OptionClass llvm::opt::Option::getKind ( ) const
inline

Definition at line 93 of file Option.h.

References assert(), and llvm::opt::OptTable::Info::Kind.

Referenced by accept(), getOptionHelpName(), getRenderStyle(), Option(), and print().

◆ getName()

StringRef llvm::opt::Option::getName ( ) const
inline

◆ getNumArgs()

unsigned llvm::opt::Option::getNumArgs ( ) const
inline

Definition at line 139 of file Option.h.

References llvm::opt::OptTable::Info::Param.

Referenced by accept(), getOptionHelpName(), and print().

◆ getPrefix()

StringRef llvm::opt::Option::getPrefix ( ) const
inline

◆ getPrefixedName()

std::string llvm::opt::Option::getPrefixedName ( ) const
inline

Get the name of this option with the default prefix.

Definition at line 133 of file Option.h.

References getName(), getPrefix(), and llvm::MipsISD::Ret.

Referenced by getOptionHelpName().

◆ getRenderName()

StringRef llvm::opt::Option::getRenderName ( ) const
inline

getRenderName - Return the name to use when rendering this option.

Definition at line 185 of file Option.h.

References accept(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, dump(), getName(), getUnaliasedOption(), matches(), llvm::RISCVFenceField::O, and print().

◆ getRenderStyle()

RenderStyleKind llvm::opt::Option::getRenderStyle ( ) const
inline

◆ getUnaliasedOption()

const Option llvm::opt::Option::getUnaliasedOption ( ) const
inline

getUnaliasedOption - Return the final option this option aliases (itself, if the option has no alias).

Definition at line 177 of file Option.h.

References getAlias(), getUnaliasedOption(), and isValid().

Referenced by accept(), llvm::opt::ArgList::append(), getRenderName(), and getUnaliasedOption().

◆ hasFlag()

bool llvm::opt::Option::hasFlag ( unsigned  Val) const
inline

Test if this option has the flag Val.

Definition at line 171 of file Option.h.

References llvm::opt::OptTable::Info::Flags.

◆ hasNoOptAsInput()

bool llvm::opt::Option::hasNoOptAsInput ( ) const
inline

Definition at line 141 of file Option.h.

References llvm::opt::OptTable::Info::Flags, and llvm::opt::RenderAsInput.

◆ isValid()

bool llvm::opt::Option::isValid ( ) const
inline

Definition at line 84 of file Option.h.

Referenced by getUnaliasedOption(), matches(), Option(), print(), and llvm::opt::OptTable::PrintHelp().

◆ matches()

bool Option::matches ( OptSpecifier  ID) const

matches - Predicate for whether this option is part of the given option (which may be a group).

Note that matches against options which are an alias should never be done – aliases do not participate in matching and so such a query will always be false.

Definition at line 94 of file Option.cpp.

References getAlias(), getGroup(), llvm::opt::OptSpecifier::getID(), getID(), isValid(), and matches().

Referenced by llvm::opt::ArgList::AddAllArgsExcept(), getRenderName(), and matches().

◆ print()

void Option::print ( raw_ostream O) const

Member Data Documentation

◆ Info

const OptTable::Info* llvm::opt::Option::Info
protected

Definition at line 78 of file Option.h.

Referenced by Option(), and print().

◆ Owner

const OptTable* llvm::opt::Option::Owner
protected

Definition at line 79 of file Option.h.


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