All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
List of all members | Classes | Public Member Functions
ArgParser Class Reference

Detailed Description

Command line arguments parser.

For a complete example see the arg_parser_demo.cc demo file.

#include <lemon/arg_parser.h>

Classes

class  RefType
 Magic type for operator[]. More...
 

Public Member Functions

 ArgParser (int argc, const char *const *argv)
 Constructor.
 
ArgParserparse ()
 Start the parsing process.
 
ArgParserrun ()
 Synonym for parse()
 
const std::string & commandName () const
 Give back the command name (the 0th argument)
 
bool given (std::string op) const
 Check if an opion has been given to the command.
 
RefType operator[] (const std::string &n) const
 Give back the value of an option.
 
const std::vector< std::string > & files () const
 Give back the non-option type arguments.
 
void throwOnProblems ()
 Throw instead of exit in case of problems.
 
Options
ArgParserintOption (const std::string &name, const std::string &help, int value=0, bool obl=false)
 Add a new integer type option.
 
ArgParserdoubleOption (const std::string &name, const std::string &help, double value=0, bool obl=false)
 Add a new floating point type option.
 
ArgParserboolOption (const std::string &name, const std::string &help, bool value=false, bool obl=false)
 Add a new bool type option.
 
ArgParserstringOption (const std::string &name, const std::string &help, std::string value="", bool obl=false)
 Add a new string type option.
 
ArgParserother (const std::string &name, const std::string &help="")
 Give help string for non-parsed arguments.
 
Options with External Storage

Using this functions, the value of the option will be directly written into a variable once the option appears in the command line.

ArgParserrefOption (const std::string &name, const std::string &help, int &ref, bool obl=false)
 Add a new integer type option with a storage reference.
 
ArgParserrefOption (const std::string &name, const std::string &help, double &ref, bool obl=false)
 Add a new floating type option with a storage reference.
 
ArgParserrefOption (const std::string &name, const std::string &help, bool &ref, bool obl=false)
 Add a new bool type option with a storage reference.
 
ArgParserrefOption (const std::string &name, const std::string &help, std::string &ref, bool obl=false)
 Add a new string type option with a storage reference.
 
Option Groups and Synonyms
ArgParseroptionGroup (const std::string &group, const std::string &opt)
 Bundle some options into a group.
 
ArgParseronlyOneGroup (const std::string &group)
 Make the members of a group exclusive.
 
ArgParsermandatoryGroup (const std::string &group)
 Make a group mandatory.
 
ArgParsersynonym (const std::string &syn, const std::string &opt)
 Create synonym to an option.
 

Member Function Documentation

ArgParser & intOption ( const std::string &  name,
const std::string &  help,
int  value = 0,
bool  obl = false 
)

Add a new integer type option.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
valueA default value for the option.
oblIndicate if the option is mandatory.
ArgParser & doubleOption ( const std::string &  name,
const std::string &  help,
double  value = 0,
bool  obl = false 
)

Add a new floating point type option.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
valueA default value for the option.
oblIndicate if the option is mandatory.
ArgParser & boolOption ( const std::string &  name,
const std::string &  help,
bool  value = false,
bool  obl = false 
)

Add a new bool type option.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
valueA default value for the option.
oblIndicate if the option is mandatory.
Note
A mandatory bool obtion is of very little use.
ArgParser & stringOption ( const std::string &  name,
const std::string &  help,
std::string  value = "",
bool  obl = false 
)

Add a new string type option.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
valueA default value for the option.
oblIndicate if the option is mandatory.
ArgParser & other ( const std::string &  name,
const std::string &  help = "" 
)

With this function you can give help string for non-parsed arguments. The parameter name will be printed in the short usage line, while help gives a more detailed description.

ArgParser & refOption ( const std::string &  name,
const std::string &  help,
int &  ref,
bool  obl = false 
)

Add a new integer type option with a storage reference.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
oblIndicate if the option is mandatory.
Return values
refThe value of the argument will be written to this variable.
ArgParser & refOption ( const std::string &  name,
const std::string &  help,
double &  ref,
bool  obl = false 
)

Add a new floating type option with a storage reference.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
oblIndicate if the option is mandatory.
Return values
refThe value of the argument will be written to this variable.
ArgParser & refOption ( const std::string &  name,
const std::string &  help,
bool &  ref,
bool  obl = false 
)

Add a new bool type option with a storage reference.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
oblIndicate if the option is mandatory.
Return values
refThe value of the argument will be written to this variable.
Note
A mandatory bool obtion is of very little use.
ArgParser & refOption ( const std::string &  name,
const std::string &  help,
std::string &  ref,
bool  obl = false 
)

Add a new string type option with a storage reference.

Parameters
nameThe name of the option. The leading '-' must be omitted.
helpA help string.
oblIndicate if the option is mandatory.
Return values
refThe value of the argument will be written to this variable.
ArgParser & optionGroup ( const std::string &  group,
const std::string &  opt 
)

You can group some option by calling this function repeatedly for each option to be grouped with the same groupname.

Parameters
groupThe group name.
optThe option name.
ArgParser & onlyOneGroup ( const std::string &  group)

If you call this function for a group, than at most one of them can be given at the same time.

ArgParser & mandatoryGroup ( const std::string &  group)

Using this function, at least one of the members of group must be given.

ArgParser & synonym ( const std::string &  syn,
const std::string &  opt 
)

With this function you can create a synonym syn of the option opt.

RefType operator[] ( const std::string &  n) const
inline

Give back the value of an option.

See Also
RefType
const std::vector<std::string>& files ( ) const
inline

Give back a reference to a vector consisting of the program arguments not starting with a '-' character.