|
LLVM
4.0.0
|
cl Namespace - This namespace contains all of the command line option processing machinery. More...
Typedefs | |
| typedef void(* | TokenizerCallback )(StringRef Source, StringSaver &Saver, SmallVectorImpl< const char * > &NewArgv, bool MarkEOLs) |
| String tokenization function type. More... | |
Enumerations | |
| enum | NumOccurrencesFlag { Optional = 0x00, ZeroOrMore = 0x01, Required = 0x02, OneOrMore = 0x03, ConsumeAfter = 0x04 } |
| enum | ValueExpected { ValueOptional = 0x01, ValueRequired = 0x02, ValueDisallowed = 0x03 } |
| enum | OptionHidden { NotHidden = 0x00, Hidden = 0x01, ReallyHidden = 0x02 } |
| enum | FormattingFlags { NormalFormatting = 0x00, Positional = 0x01, Prefix = 0x02, Grouping = 0x03 } |
| enum | MiscFlags { CommaSeparated = 0x01, PositionalEatsArgs = 0x02, Sink = 0x04 } |
| enum | boolOrDefault { BOU_UNSET, BOU_TRUE, BOU_FALSE } |
Functions | |
| bool | ParseCommandLineOptions (int argc, const char *const *argv, StringRef Overview="", bool IgnoreErrors=false) |
| void | ParseEnvironmentOptions (const char *progName, const char *envvar, const char *Overview="") |
| ParseEnvironmentOptions - An alternative entry point to the CommandLine library, which allows you to read the program's name from the caller (as PROGNAME) and its command-line arguments from an environment variable (whose name is given in ENVVAR). More... | |
| void | SetVersionPrinter (void(*func)()) |
| ===------------------------------------------------------------------—===// SetVersionPrinter - Override the default (LLVM specific) version printer used to print out the version when –version is given on the command line. More... | |
| void | AddExtraVersionPrinter (void(*func)()) |
| ===------------------------------------------------------------------—===// AddExtraVersionPrinter - Add an extra printer to use in addition to the default one. More... | |
| void | PrintOptionValues () |
| void | AddLiteralOption (Option &O, StringRef Name) |
| Adds a new option for parsing and provides the option it refers to. More... | |
| template<class Ty > | |
| initializer< Ty > | init (const Ty &Val) |
| template<class Ty > | |
| LocationClass< Ty > | location (Ty &L) |
| template<typename... OptsTy> | |
| ValuesClass | values (OptsTy...Options) |
| Helper to build a ValuesClass by forwarding a variable number of arguments as an initializer list to the ValuesClass constructor. More... | |
| template<class ParserClass , class DT > | |
| void | printOptionDiff (const Option &O, const generic_parser_base &P, const DT &V, const OptionValue< DT > &Default, size_t GlobalWidth) |
| template<class ParserClass , class ValDT > | |
| void | printOptionDiff (const Option &O, const basic_parser< typename ParserClass::parser_data_type > &P, const ValDT &V, const OptionValue< ValDT > &Default, size_t GlobalWidth) |
| template<class Opt , class Mod , class... Mods> | |
| void | apply (Opt *O, const Mod &M, const Mods &...Ms) |
| template<class Opt , class Mod > | |
| void | apply (Opt *O, const Mod &M) |
| void | PrintVersionMessage () |
| Utility function for printing version number. More... | |
| void | PrintHelpMessage (bool Hidden=false, bool Categorized=false) |
| This function just prints the help message, exactly the same way as if the -help or -help-hidden option had been given on the command line. More... | |
| StringMap< Option * > & | getRegisteredOptions (SubCommand &Sub=*TopLevelSubCommand) |
| Use this to get a StringMap to all registered named options (e.g. More... | |
| iterator_range< typename SmallPtrSet< SubCommand *, 4 > ::iterator > | getRegisteredSubcommands () |
| Use this to get all registered SubCommands from the provided parser. More... | |
| void | TokenizeGNUCommandLine (StringRef Source, StringSaver &Saver, SmallVectorImpl< const char * > &NewArgv, bool MarkEOLs=false) |
| Tokenizes a command line that can contain escapes and quotes. More... | |
| void | TokenizeWindowsCommandLine (StringRef Source, StringSaver &Saver, SmallVectorImpl< const char * > &NewArgv, bool MarkEOLs=false) |
| Tokenizes a Windows command line which may contain quotes and escaped quotes. More... | |
| bool | ExpandResponseFiles (StringSaver &Saver, TokenizerCallback Tokenizer, SmallVectorImpl< const char * > &Argv, bool MarkEOLs=false, bool RelativeNames=false) |
| Expand response files on a command line recursively using the given StringSaver and tokenization strategy. More... | |
| void | HideUnrelatedOptions (cl::OptionCategory &Category, SubCommand &Sub=*TopLevelSubCommand) |
| Mark all options not part of this category as cl::ReallyHidden. More... | |
| void | HideUnrelatedOptions (ArrayRef< const cl::OptionCategory * > Categories, SubCommand &Sub=*TopLevelSubCommand) |
| Mark all options not part of the categories as cl::ReallyHidden. More... | |
| void | ResetAllOptionOccurrences () |
| Reset all command line options to a state that looks as if they have never appeared on the command line. More... | |
| void | ResetCommandLineParser () |
| Reset the command line parser back to its initial state. More... | |
Variables | |
| OptionCategory | GeneralCategory |
| ManagedStatic< SubCommand > | TopLevelSubCommand |
| ManagedStatic< SubCommand > | AllSubCommands |
cl Namespace - This namespace contains all of the command line option processing machinery.
It is intentionally a short name to make qualified usage concise.
| typedef void(* llvm::cl::TokenizerCallback)(StringRef Source, StringSaver &Saver, SmallVectorImpl< const char * > &NewArgv, bool MarkEOLs) |
String tokenization function type.
Should be compatible with either Windows or Unix command line tokenizers.
Definition at line 1821 of file CommandLine.h.
| Enumerator | |
|---|---|
| BOU_UNSET | |
| BOU_TRUE | |
| BOU_FALSE | |
Definition at line 541 of file CommandLine.h.
| Enumerator | |
|---|---|
| NormalFormatting | |
| Positional | |
| Prefix | |
| Grouping | |
Definition at line 146 of file CommandLine.h.
| enum llvm::cl::MiscFlags |
| Enumerator | |
|---|---|
| CommaSeparated | |
| PositionalEatsArgs | |
| Sink | |
Definition at line 153 of file CommandLine.h.
| Enumerator | |
|---|---|
| Optional | |
| ZeroOrMore | |
| Required | |
| OneOrMore | |
| ConsumeAfter | |
Definition at line 102 of file CommandLine.h.
| Enumerator | |
|---|---|
| NotHidden | |
| Hidden | |
| ReallyHidden | |
Definition at line 125 of file CommandLine.h.
| Enumerator | |
|---|---|
| ValueOptional | |
| ValueRequired | |
| ValueDisallowed | |
Definition at line 118 of file CommandLine.h.
| void llvm::cl::AddExtraVersionPrinter | ( | void(*)() | func | ) |
===------------------------------------------------------------------—===// AddExtraVersionPrinter - Add an extra printer to use in addition to the default one.
This can be called multiple times, and each time it adds a new function to the list which will be called after the basic LLVM version printing is complete. Each can then add additional information specific to the tool.
Definition at line 2139 of file CommandLine.cpp.
References ExtraVersionPrinters.
Adds a new option for parsing and provides the option it refers to.
| O | pointer to the option |
| Name | the string name for the option to handle during parsing |
Literal options are used by some parsers to register special option values. This is how the PassNameParser registers pass names for opt.
Definition at line 358 of file CommandLine.cpp.
References GlobalParser.
Referenced by llvm::cl::parser< const PassInfo * >::addLiteralOption().
| void llvm::cl::apply | ( | Opt * | O, |
| const Mod & | M, | ||
| const Mods &... | Ms | ||
| ) |
Definition at line 1156 of file CommandLine.h.
References llvm::cl::applicator< Mod >::opt().
Referenced by llvm::cl::alias::alias(), llvm::cl::bits< DataType, Storage, ParserClass >::bits(), llvm::handleErrorImpl(), llvm::cl::list< DataType, StorageClass, ParserClass >::list(), and llvm::cl::opt< DataType, ExternalStorage, ParserClass >::opt().
| void llvm::cl::apply | ( | Opt * | O, |
| const Mod & | M | ||
| ) |
Definition at line 1161 of file CommandLine.h.
References llvm::cl::applicator< Mod >::opt().
| bool llvm::cl::ExpandResponseFiles | ( | StringSaver & | Saver, |
| TokenizerCallback | Tokenizer, | ||
| SmallVectorImpl< const char * > & | Argv, | ||
| bool | MarkEOLs = false, |
||
| bool | RelativeNames = false |
||
| ) |
Expand response files on a command line recursively using the given StringSaver and tokenization strategy.
Argv should contain the command line before expansion and will be modified in place. If requested, Argv will also be populated with nullptrs indicating where each response file line ends, which is useful for the "/link" argument that needs to consume all remaining arguments only until the next end of line, when in a response file.
| [in] | Saver | Delegates back to the caller for saving parsed strings. |
| [in] | Tokenizer | Tokenization strategy. Typically Unix or Windows. |
| [in,out] | Argv | Command line into which to expand response files. |
| [in] | MarkEOLs | Mark end of lines and the end of the response file with nullptrs in the Argv vector. |
| [in] | RelativeNames | true if names of nested response files must be resolved relative to including file. |
Definition at line 944 of file CommandLine.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::SmallVectorImpl< T >::erase(), ExpandResponseFile(), I, llvm::SmallVectorImpl< T >::insert(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by llvm::libDriverMain().
| StringMap< Option * > & llvm::cl::getRegisteredOptions | ( | SubCommand & | Sub = *TopLevelSubCommand | ) |
Use this to get a StringMap to all registered named options (e.g.
-help). Note Map Should be an empty StringMap.
Access to unnamed arguments (i.e. positional) are not provided because it is expected that the client already has access to these.
Typical usage:
This interface is useful for modifying options in libraries that are out of the control of the client. The options should be modified before calling llvm::cl::ParseCommandLineOptions().
Hopefully this API can be deprecated soon. Any situation where options need to be modified by tools or libraries should be handled by sane APIs rather than just handing around a global list.
Definition at line 2146 of file CommandLine.cpp.
References assert(), GlobalParser, llvm::is_contained(), and llvm::cl::SubCommand::OptionsMap.
| iterator_range< typename SmallPtrSet< SubCommand *, 4 >::iterator > llvm::cl::getRegisteredSubcommands | ( | ) |
Use this to get all registered SubCommands from the provided parser.
Typical usage:
This interface is useful for defining subcommands in libraries and the dispatch from a single point (like in the main function).
Definition at line 2154 of file CommandLine.cpp.
References GlobalParser.
| void llvm::cl::HideUnrelatedOptions | ( | cl::OptionCategory & | Category, |
| SubCommand & | Sub = *TopLevelSubCommand |
||
| ) |
Mark all options not part of this category as cl::ReallyHidden.
| Category | the category of options to keep displaying |
Some tools (like clang-format) like to be able to hide all options that are not specific to the tool. This function allows a tool to specify a single option category to display in the -help output.
Definition at line 2158 of file CommandLine.cpp.
References GenericCategory, I, llvm::cl::SubCommand::OptionsMap, and ReallyHidden.
| void llvm::cl::HideUnrelatedOptions | ( | ArrayRef< const cl::OptionCategory * > | Categories, |
| SubCommand & | Sub = *TopLevelSubCommand |
||
| ) |
Mark all options not part of the categories as cl::ReallyHidden.
| Categories | the categories of options to keep displaying. |
Some tools (like clang-format) like to be able to hide all options that are not specific to the tool. This function allows a tool to specify a single option category to display in the -help output.
Definition at line 2166 of file CommandLine.cpp.
References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), llvm::find(), GenericCategory, I, llvm::cl::SubCommand::OptionsMap, and ReallyHidden.
| initializer<Ty> llvm::cl::init | ( | const Ty & | Val | ) |
Definition at line 395 of file CommandLine.h.
Referenced by llvm::OptionRegistry::registerOption().
| LocationClass<Ty> llvm::cl::location | ( | Ty & | L | ) |
Definition at line 411 of file CommandLine.h.
References L.
Referenced by isPrefixAtLocation(), and setPrefixPresent().
| bool CommandLineParser::ParseCommandLineOptions | ( | int | argc, |
| const char *const * | argv, | ||
| StringRef | Overview = "", |
||
| bool | IgnoreErrors = false |
||
| ) |
Definition at line 1015 of file CommandLine.cpp.
References GlobalParser.
Referenced by LLVMParseCommandLineOptions(), llvm::LTOCodeGenerator::parseCodeGenDebugOptions(), and ParseEnvironmentOptions().
| void llvm::cl::ParseEnvironmentOptions | ( | const char * | progName, |
| const char * | envvar, | ||
| const char * | Overview = "" |
||
| ) |
ParseEnvironmentOptions - An alternative entry point to the CommandLine library, which allows you to read the program's name from the caller (as PROGNAME) and its command-line arguments from an environment variable (whose name is given in ENVVAR).
Definition at line 990 of file CommandLine.cpp.
References A, assert(), llvm::StringRef::data(), llvm::sys::Process::GetEnv(), ParseCommandLineOptions(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::StringSaver::save(), llvm::SmallVectorTemplateCommon< T >::size(), and TokenizeGNUCommandLine().
This function just prints the help message, exactly the same way as if the -help or -help-hidden option had been given on the command line.
NOTE: THIS FUNCTION TERMINATES THE PROGRAM!
| Hidden | if true will print hidden options |
| Categorized | if true print options in categories |
Definition at line 2116 of file CommandLine.cpp.
References CategorizedHiddenPrinter(), CategorizedNormalPrinter(), UncategorizedHiddenPrinter(), and UncategorizedNormalPrinter().
| void llvm::cl::printOptionDiff | ( | const Option & | O, |
| const generic_parser_base & | P, | ||
| const DT & | V, | ||
| const OptionValue< DT > & | Default, | ||
| size_t | GlobalWidth | ||
| ) |
Definition at line 1068 of file CommandLine.h.
References llvm::cl::generic_parser_base::printOptionDiff().
| void llvm::cl::printOptionDiff | ( | const Option & | O, |
| const basic_parser< typename ParserClass::parser_data_type > & | P, | ||
| const ValDT & | V, | ||
| const OptionValue< ValDT > & | Default, | ||
| size_t | GlobalWidth | ||
| ) |
Definition at line 1095 of file CommandLine.h.
References llvm::cl::OptionDiffPrinter< ParserDT, ValDT >::print().
| void llvm::cl::PrintOptionValues | ( | ) |
Definition at line 2030 of file CommandLine.cpp.
References GlobalParser.
| void llvm::cl::PrintVersionMessage | ( | ) |
Utility function for printing version number.
Definition at line 2135 of file CommandLine.cpp.
References VersionPrinterInstance.
| void llvm::cl::ResetAllOptionOccurrences | ( | ) |
Reset all command line options to a state that looks as if they have never appeared on the command line.
This is useful for being able to parse a command line multiple times (especially useful for writing tests).
Definition at line 1021 of file CommandLine.cpp.
References llvm::cl::SubCommand::OptionsMap, and llvm::cl::Option::reset().
| void llvm::cl::ResetCommandLineParser | ( | ) |
Reset the command line parser back to its initial state.
This removes all options, categories, and subcommands and returns the parser to a state where no options are supported.
Definition at line 2178 of file CommandLine.cpp.
References GlobalParser.
| void llvm::cl::SetVersionPrinter | ( | void(*)() | func | ) |
===------------------------------------------------------------------—===// SetVersionPrinter - Override the default (LLVM specific) version printer used to print out the version when –version is given on the command line.
This allows other systems using the CommandLine utilities to print their own version string.
Definition at line 2137 of file CommandLine.cpp.
References OverrideVersionPrinter.
| void llvm::cl::TokenizeGNUCommandLine | ( | StringRef | Source, |
| StringSaver & | Saver, | ||
| SmallVectorImpl< const char * > & | NewArgv, | ||
| bool | MarkEOLs = false |
||
| ) |
Tokenizes a command line that can contain escapes and quotes.
The quoting rules match those used by GCC and other tools that use libiberty's buildargv() or expandargv() utilities, and do not match bash. They differ from buildargv() on treatment of backslashes that do not escape a special character to make it possible to accept most Windows file paths.
| [in] | Source | The string to be split on whitespace with quotes. |
| [in] | Saver | Delegates back to the caller for saving parsed strings. |
| [in] | MarkEOLs | true if tokenizing a response file and you want end of lines and end of the response file to be marked with a nullptr string. |
| [out] | NewArgv | All parsed strings are appended to NewArgv. |
Definition at line 706 of file CommandLine.cpp.
References llvm::SmallVectorImpl< T >::clear(), llvm::StringRef::data(), E, llvm::SmallVectorBase::empty(), I, isQuote(), isWhitespace(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::StringSaver::save(), llvm::StringRef::size(), and Token.
Referenced by ParseEnvironmentOptions().
| void llvm::cl::TokenizeWindowsCommandLine | ( | StringRef | Source, |
| StringSaver & | Saver, | ||
| SmallVectorImpl< const char * > & | NewArgv, | ||
| bool | MarkEOLs = false |
||
| ) |
Tokenizes a Windows command line which may contain quotes and escaped quotes.
See MSDN docs for CommandLineToArgvW for information on the quoting rules. http://msdn.microsoft.com/en-us/library/windows/desktop/17w5ykft(v=vs.85).aspx
| [in] | Source | The string to be split on whitespace with quotes. |
| [in] | Saver | Delegates back to the caller for saving parsed strings. |
| [in] | MarkEOLs | true if tokenizing a response file and you want end of lines and end of the response file to be marked with a nullptr string. |
| [out] | NewArgv | All parsed strings are appended to NewArgv. |
Definition at line 803 of file CommandLine.cpp.
References llvm::SmallVectorImpl< T >::clear(), llvm::StringRef::data(), E, llvm::SmallVectorBase::empty(), I, INIT, isWhitespace(), parseBackslash(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::StringSaver::save(), llvm::StringRef::size(), and Token.
Referenced by llvm::libDriverMain().
| ValuesClass llvm::cl::values | ( | OptsTy... | Options | ) |
Helper to build a ValuesClass by forwarding a variable number of arguments as an initializer list to the ValuesClass constructor.
Definition at line 615 of file CommandLine.h.
| ManagedStatic< SubCommand > llvm::cl::AllSubCommands |
Definition at line 391 of file CommandLine.cpp.
Referenced by llvm::cl::Option::isInAllSubCommands().
| OptionCategory llvm::cl::GeneralCategory |
| ManagedStatic< SubCommand > llvm::cl::TopLevelSubCommand |
Definition at line 388 of file CommandLine.cpp.
1.8.6