cprover
cmdline.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
9 
10 #ifndef CPROVER_UTIL_CMDLINE_H
11 #define CPROVER_UTIL_CMDLINE_H
12 
13 #include <vector>
14 #include <list>
15 #include <string>
16 
17 #include "optional.h"
18 
19 class cmdlinet
20 {
21 public:
22  virtual bool parse(int argc, const char **argv, const char *optstring);
23 
24  std::string get_value(char option) const;
25  std::string get_value(const char *option) const;
26 
27  const std::list<std::string> &get_values(const std::string &option) const;
28  const std::list<std::string> &get_values(char option) const;
29 
30  std::list<std::string> get_comma_separated_values(const char *option) const;
31 
32  virtual bool isset(char option) const;
33  virtual bool isset(const char *option) const;
34  virtual void set(const std::string &option);
35  virtual void set(const std::string &option, const std::string &value);
36  virtual void clear();
37 
38  bool has_option(const std::string &option) const
39  {
40  return getoptnr(option).has_value();
41  }
42 
43  typedef std::vector<std::string> argst;
45  std::string unknown_arg;
46 
47  cmdlinet();
48  virtual ~cmdlinet();
49 
50 protected:
51  struct optiont
52  {
53  bool isset;
54  bool hasval;
55  bool islong;
56  char optchar;
57  std::string optstring;
58  std::list<std::string> values;
59  public:
61  isset(false),
62  hasval(false),
63  islong(false),
64  optchar(0)
65  {}
66  };
67 
68  std::vector<optiont> options;
69 
70  optionalt<std::size_t> getoptnr(char option) const;
71  optionalt<std::size_t> getoptnr(const std::string &option) const;
72 };
73 
74 #endif // CPROVER_UTIL_CMDLINE_H
virtual ~cmdlinet()
Definition: cmdline.cpp:17
const std::list< std::string > & get_values(const std::string &option) const
Definition: cmdline.cpp:110
cmdlinet()
Definition: cmdline.cpp:13
std::string get_value(char option) const
Definition: cmdline.cpp:45
virtual bool parse(int argc, const char **argv, const char *optstring)
Definition: cmdline.cpp:156
argst args
Definition: cmdline.h:44
virtual bool isset(char option) const
Definition: cmdline.cpp:27
nonstd::optional< T > optionalt
Definition: optional.h:35
virtual void set(const std::string &option)
Definition: cmdline.cpp:60
std::vector< std::string > argst
Definition: cmdline.h:43
std::list< std::string > get_comma_separated_values(const char *option) const
Definition: cmdline.cpp:122
bool has_option(const std::string &option) const
Definition: cmdline.h:38
virtual void clear()
Definition: cmdline.cpp:21
std::list< std::string > values
Definition: cmdline.h:58
optionalt< std::size_t > getoptnr(char option) const
Definition: cmdline.cpp:138
std::string unknown_arg
Definition: cmdline.h:45
std::vector< optiont > options
Definition: cmdline.h:68
std::string optstring
Definition: cmdline.h:57