cprover
|
#include <cmdline.h>
Classes | |
struct | option_namest |
struct | optiont |
Public Types | |
typedef std::vector< std::string > | argst |
Public Member Functions | |
virtual bool | parse (int argc, const char **argv, const char *optstring) |
Parses a commandline according to a specification given in optstring . | |
std::string | get_value (char option) const |
std::string | get_value (const char *option) const |
const std::list< std::string > & | get_values (const std::string &option) const |
const std::list< std::string > & | get_values (char option) const |
std::list< std::string > | get_comma_separated_values (const char *option) const |
Collect all occurrences of option option and split their values on each comma, merging them into a single list of values. | |
virtual bool | isset (char option) const |
virtual bool | isset (const char *option) const |
virtual void | set (const std::string &option, bool value=true) |
Set option option to value , or true if the value is omitted. | |
virtual void | set (const std::string &option, const std::string &value) |
virtual void | set (const std::string &option, const char *value) |
virtual void | clear () |
bool | has_option (const std::string &option) const |
option_namest | option_names () const |
Pseudo-object that can be used to iterate over options in this cmdlinet (should not outlive this) | |
cmdlinet () | |
virtual | ~cmdlinet () |
std::vector< std::string > | get_argument_suggestions (const std::string &unknown_argument) |
Public Attributes | |
argst | args |
std::string | unknown_arg |
Protected Member Functions | |
void | parse_optstring (const char *optstring) |
Parses an optstring and writes the result to cmdlinet::options. | |
bool | parse_arguments (int argc, const char **argv) |
Parses a commandline according to a previously parsed optstring and writes the result to cmdlinet::options. | |
optionalt< std::size_t > | getoptnr (char option) const |
optionalt< std::size_t > | getoptnr (const std::string &option) const |
Protected Attributes | |
std::vector< optiont > | options |
typedef std::vector<std::string> cmdlinet::argst |
cmdlinet::cmdlinet | ( | ) |
Definition at line 16 of file cmdline.cpp.
|
virtual |
Definition at line 20 of file cmdline.cpp.
|
virtual |
Definition at line 24 of file cmdline.cpp.
std::vector< std::string > cmdlinet::get_argument_suggestions | ( | const std::string & | unknown_argument | ) |
Definition at line 210 of file cmdline.cpp.
Collect all occurrences of option option
and split their values on each comma, merging them into a single list of values.
Definition at line 121 of file cmdline.cpp.
std::string cmdlinet::get_value | ( | char | option | ) | const |
Definition at line 48 of file cmdline.cpp.
Definition at line 99 of file cmdline.cpp.
Definition at line 89 of file cmdline.cpp.
Definition at line 109 of file cmdline.cpp.
Definition at line 135 of file cmdline.cpp.
Definition at line 144 of file cmdline.cpp.
Definition at line 30 of file cmdline.cpp.
Definition at line 39 of file cmdline.cpp.
cmdlinet::option_namest cmdlinet::option_names | ( | ) | const |
Pseudo-object that can be used to iterate over options in this cmdlinet (should not outlive this)
Definition at line 161 of file cmdline.cpp.
Parses a commandline according to a specification given in optstring
.
argc | How many arguments there are. |
argv | An array of C strings. The 0th element is assumed to be the name of the command as it was invoked (e.g. /usr/bin/cmake) and is ignored. It is further assumed the array holds argc+1 elements with the C string at index argc being a terminating null pointer. This argument is parsed based on optstring . |
optstring | A specification of allowed command line options. This is a C string container any number of single characters other than '(', ')' or ':' signifying a "short" option consisting of just that character, or names consisting of any characters other than ')' surrounded by a matching pair of '(' and ')' signifying a "long" option with the name being the string between '(' and ')', both of which can be optionally followed by a single ':' indicating that the option takes a argument, if not present it does not. arguments must be in the next array element in argv , except for short options whose argument may also be concatenated directly on them. |
Option names in argv
must start with either '-' or "--", no distinction between long and short options is made here, although it is customary to use only one '-' for short options and "--" for long options.
All options are optional, if some are required it is up to the user to check that they are present.
Examples:
argc = 4 argv = {"name", "-V", "--name", "CProver", nullptr}
opstring = "V(version)(name):"
here the argument to "name" would be "CProver", and "V" is a short option passed without arguments.
argc = 3 argv = {"other-name", "-fFilename", "--trace", nullptr}
optstring = "f:(trace)(some-other-option):G"
here the argument to option "f" would be "Filename", "trace" is a long option with no argument, and "some-other-option" and "G" are both allowed options that don’t appear on the commandline (with and without argument respectively).
Reimplemented in goto_cc_cmdlinet, ms_cl_cmdlinet, and ms_link_cmdlinet.
Definition at line 153 of file cmdline.cpp.
Parses a commandline according to a previously parsed optstring and writes the result to cmdlinet::options.
Definition at line 269 of file cmdline.cpp.
Parses an optstring and writes the result to cmdlinet::options.
It is considered a logic error to pass an invalid option string here.
Definition at line 165 of file cmdline.cpp.
Set option option
to value
, or true
if the value is omitted.
Reimplemented in goto_cc_cmdlinet.
Definition at line 58 of file cmdline.cpp.
Reimplemented in goto_cc_cmdlinet.
Reimplemented in goto_cc_cmdlinet.
Definition at line 71 of file cmdline.cpp.