cprover
options.cpp
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Options
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
11 
12 #include "options.h"
13 
14 #include "string2int.h"
15 
16 void optionst::set_option(const std::string &option,
17  const std::string &value)
18 {
19  value_listt &value_list=option_map[option];
20  value_list.clear();
21  value_list.push_back(value);
22 }
23 
24 void optionst::set_option(const std::string &option,
25  const bool value)
26 {
27  set_option(option, std::string(value?"1":"0"));
28 }
29 
30 void optionst::set_option(const std::string &option,
31  const signed int value)
32 {
33  set_option(option, std::to_string(value));
34 }
35 
36 void optionst::set_option(const std::string &option,
37  const unsigned int value)
38 {
39  set_option(option, std::to_string(value));
40 }
41 
42 bool optionst::get_bool_option(const std::string &option) const
43 {
44  const std::string value=get_option(option);
45  return value.empty()?false:(std::stoi(value)!=0);
46 }
47 
48 signed int optionst::get_signed_int_option(const std::string &option) const
49 {
50  const std::string value=get_option(option);
51  return value.empty()?0:std::stoi(value);
52 }
53 
54 unsigned int optionst::get_unsigned_int_option(const std::string &option) const
55 {
56  const std::string value=get_option(option);
57  return value.empty()?0:safe_string2unsigned(value);
58 }
59 
60 bool optionst::is_set(const std::string &option) const
61 {
62  return option_map.find(option) != option_map.end();
63 }
64 
65 const std::string optionst::get_option(const std::string &option) const
66 {
67  option_mapt::const_iterator it=
68  option_map.find(option);
69 
70  if(it==option_map.end())
71  return std::string();
72  else if(it->second.empty())
73  return std::string();
74  else
75  return it->second.front();
76 }
77 
79  const std::string &option) const
80 {
81  option_mapt::const_iterator it=
82  option_map.find(option);
83 
84  if(it==option_map.end())
85  return empty_list;
86  else
87  return it->second;
88 }
const value_listt empty_list
Definition: options.h:60
signed int get_signed_int_option(const std::string &option) const
Definition: options.cpp:48
unsigned int get_unsigned_int_option(const std::string &option) const
Definition: options.cpp:54
const value_listt & get_list_option(const std::string &option) const
Definition: options.cpp:78
const std::string get_option(const std::string &option) const
Definition: options.cpp:65
bool get_bool_option(const std::string &option) const
Definition: options.cpp:42
std::list< std::string > value_listt
Definition: options.h:22
unsigned safe_string2unsigned(const std::string &str, int base)
Definition: string2int.cpp:54
std::string to_string(const string_constraintt &expr)
Used for debug printing.
option_mapt option_map
Definition: options.h:59
Options.
void set_option(const std::string &option, const bool value)
Definition: options.cpp:24
bool is_set(const std::string &option) const
N.B. opts.is_set("foo") does not imply opts.get_bool_option("foo")
Definition: options.cpp:60