LLVM API Documentation

Public Types | Public Member Functions | Protected Attributes
llvm::opt::Option Class Reference

#include <Option.h>

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

List of all members.

Public Types

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

Public Member Functions

 Option (const OptTable::Info *Info, const OptTable *Owner)
 ~Option ()
bool isValid () const
unsigned getID () const
OptionClass getKind () const
StringRef getName () const
 Get the name of this option without any prefix.
const Option getGroup () const
const Option getAlias () const
const char * getAliasArgs () const
 Get the alias arguments as a \0 separated list. E.g. ["foo", "bar"] would be returned as "foo\0bar\0".
StringRef getPrefix () const
 Get the default prefix for this option.
std::string getPrefixedName () const
 Get the name of this option with the default prefix.
unsigned getNumArgs () const
bool hasNoOptAsInput () const
RenderStyleKind getRenderStyle () const
bool hasFlag (unsigned Val) const
 Test if this option has the flag Val.
const Option getUnaliasedOption () const
StringRef getRenderName () const
bool matches (OptSpecifier ID) const
Argaccept (const ArgList &Args, unsigned &Index, unsigned ArgSize) 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 44 of file Option.h.


Member Enumeration Documentation

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

Definition at line 46 of file Option.h.

Enumerator:
RenderCommaJoinedStyle 
RenderJoinedStyle 
RenderSeparateStyle 
RenderValuesStyle 

Definition at line 60 of file Option.h.


Constructor & Destructor Documentation

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

Definition at line 22 of file Option.cpp.

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

Definition at line 38 of file Option.cpp.


Member Function Documentation

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 103 of file Option.cpp.

References llvm::ARM_PROC::A, 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::LibFunc::memcpy, MultiArgClass, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), RemainingArgsClass, SeparateClass, llvm::opt::Arg::setOwnsValues(), and llvm::LibFunc::strlen.

Referenced by llvm::opt::OptTable::ParseOneArg().

void Option::dump ( ) const
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 109 of file Option.h.

References llvm::opt::OptTable::Info::AliasArgs, and Info.

Referenced by accept(), and Option().

Definition at line 95 of file Option.h.

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

Referenced by dump(), and matches().

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

Definition at line 79 of file Option.h.

References llvm::opt::OptTable::Info::ID, and Info.

Referenced by accept(), and matches().

Definition at line 84 of file Option.h.

References Info, and llvm::opt::OptTable::Info::Kind.

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

Definition at line 130 of file Option.h.

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

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

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

Get the name of this option with the default prefix.

Definition at line 124 of file Option.h.

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

Referenced by getOptionHelpName().

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

Definition at line 174 of file Option.h.

References getName(), and getUnaliasedOption().

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

Definition at line 166 of file Option.h.

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

Referenced by accept(), getRenderName(), and getUnaliasedOption().

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

Test if this option has the flag Val.

Definition at line 160 of file Option.h.

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

Referenced by llvm::opt::OptTable::ParseOneArg().

Definition at line 132 of file Option.h.

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

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

Definition at line 75 of file Option.h.

References Info.

Referenced by dump(), getUnaliasedOption(), matches(), and Option().

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 87 of file Option.cpp.

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

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


Member Data Documentation

Definition at line 69 of file Option.h.

Referenced by getAlias(), and getGroup().


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