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  virtual bool isset(char option) const;
31  virtual bool isset(const char *option) const;
32  virtual void set(const std::string &option);
33  virtual void set(const std::string &option, const std::string &value);
34  virtual void clear();
35 
36  typedef std::vector<std::string> argst;
38  std::string unknown_arg;
39 
40  cmdlinet();
41  virtual ~cmdlinet();
42 
43 protected:
44  struct optiont
45  {
46  bool isset;
47  bool hasval;
48  bool islong;
49  char optchar;
50  std::string optstring;
51  std::list<std::string> values;
52  public:
54  isset(false),
55  hasval(false),
56  islong(false),
57  optchar(0)
58  {}
59  };
60 
61  std::vector<optiont> options;
62 
63  optionalt<std::size_t> getoptnr(char option) const;
64  optionalt<std::size_t> getoptnr(const std::string &option) const;
65 };
66 
67 #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:139
argst args
Definition: cmdline.h:37
virtual bool isset(char option) const
Definition: cmdline.cpp:27
nonstd::optional< T > optionalt
Definition: optional.h:35
std::vector< std::string > argst
Definition: cmdline.h:36
virtual void clear()
Definition: cmdline.cpp:21
std::list< std::string > values
Definition: cmdline.h:51
optionalt< std::size_t > getoptnr(char option) const
Definition: cmdline.cpp:121
std::string unknown_arg
Definition: cmdline.h:38
std::vector< optiont > options
Definition: cmdline.h:61
std::string optstring
Definition: cmdline.h:50