CBMC
cbmc_parse_options.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: CBMC Command Line Option Processing
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_CBMC_CBMC_PARSE_OPTIONS_H
13 #define CPROVER_CBMC_CBMC_PARSE_OPTIONS_H
14 
15 #include <util/parse_options.h>
16 #include <util/timestamper.h>
17 #include <util/ui_message.h>
19 
22 
23 #include <ansi-c/ansi_c_language.h>
24 #include <ansi-c/goto_check_c.h>
25 #include <goto-checker/bmc_util.h>
26 #include <goto-instrument/cover.h>
27 #include <json/json_interface.h>
28 #include <langapi/language.h>
30 #include <xmllang/xml_interface.h>
31 
32 class optionst;
33 
34 // clang-format off
35 #define CBMC_OPTIONS \
36  OPT_BMC \
37  "(preprocess)(slice-by-trace):" \
38  OPT_FUNCTIONS \
39  "(no-simplify)(full-slice)" \
40  OPT_REACHABILITY_SLICER \
41  "(no-propagation)(no-simplify-if)" \
42  "(document-subgoals)(test-preprocessor)" \
43  "(show-array-constraints)" \
44  OPT_CONFIG_C_CPP \
45  OPT_CONFIG_PLATFORM \
46  OPT_CONFIG_BACKEND \
47  OPT_CONFIG_LIBRARY \
48  OPT_GOTO_CHECK \
49  OPT_XML_INTERFACE \
50  OPT_JSON_INTERFACE \
51  OPT_SOLVER \
52  OPT_STRING_REFINEMENT_CBMC \
53  OPT_SHOW_GOTO_FUNCTIONS \
54  OPT_SHOW_PROPERTIES \
55  "(show-symbol-table)(show-parse-tree)" \
56  "(drop-unused-functions)" \
57  "(havoc-undefined-functions)" \
58  "(property):(stop-on-fail)(trace)" \
59  "(verbosity):(no-library)" \
60  "(nondet-static)" \
61  "(version)" \
62  OPT_COVER \
63  "(symex-coverage-report):" \
64  "(mm):" \
65  OPT_TIMESTAMP \
66  "(arrays-uf-always)(arrays-uf-never)" \
67  OPT_FLUSH \
68  "(localize-faults)" \
69  OPT_GOTO_TRACE \
70  OPT_VALIDATE \
71  OPT_ANSI_C_LANGUAGE \
72  "(claim):(show-claims)(floatbv)(all-claims)(all-properties)" // legacy, and will eventually disappear // NOLINT(whitespace/line_length)
73 // clang-format on
74 
76 {
77 public:
78  virtual int doit() override;
79  virtual void help() override;
80 
81  cbmc_parse_optionst(int argc, const char **argv);
83  int argc,
84  const char **argv,
85  const std::string &extra_options);
86 
91  static void set_default_options(optionst &);
92 
93  static bool process_goto_program(goto_modelt &, const optionst &, messaget &);
94 
95  static int get_goto_program(
96  goto_modelt &,
97  const optionst &,
98  const cmdlinet &,
100 
101 protected:
103 
104  void register_languages() override;
106  void preprocessing(const optionst &);
107  bool set_properties();
108 };
109 
110 #endif // CPROVER_CBMC_CBMC_PARSE_OPTIONS_H
messaget
Class that provides messages with a built-in verbosity 'level'.
Definition: message.h:154
cbmc_parse_optionst::doit
virtual int doit() override
invoke main modules
Definition: cbmc_parse_options.cpp:376
cover.h
cbmc_parse_optionst::goto_model
goto_modelt goto_model
Definition: cbmc_parse_options.h:102
cbmc_parse_optionst::get_goto_program
static int get_goto_program(goto_modelt &, const optionst &, const cmdlinet &, ui_message_handlert &)
Definition: cbmc_parse_options.cpp:662
parse_options_baset
Definition: parse_options.h:19
ui_message_handlert
Definition: ui_message.h:21
optionst
Definition: options.h:22
json_interface.h
validation_interface.h
goto_check_c.h
goto_model.h
goto_modelt
Definition: goto_model.h:25
cbmc_parse_optionst::cbmc_parse_optionst
cbmc_parse_optionst(int argc, const char **argv)
Definition: cbmc_parse_options.cpp:78
goto_trace.h
bmc_util.h
cbmc_parse_optionst
Definition: cbmc_parse_options.h:75
cmdlinet
Definition: cmdline.h:20
cbmc_parse_optionst::get_command_line_options
void get_command_line_options(optionst &)
Definition: cbmc_parse_options.cpp:119
language.h
cbmc_parse_optionst::process_goto_program
static bool process_goto_program(goto_modelt &, const optionst &, messaget &)
Definition: cbmc_parse_options.cpp:746
string_refinement.h
parse_options.h
cbmc_parse_optionst::set_properties
bool set_properties()
Definition: cbmc_parse_options.cpp:651
ansi_c_language.h
cbmc_parse_optionst::help
virtual void help() override
display command line help
Definition: cbmc_parse_options.cpp:857
timestamper.h
Emit timestamps.
xml_interface.h
cbmc_parse_optionst::register_languages
void register_languages() override
Definition: cbmc_languages.cpp:25
cbmc_parse_optionst::set_default_options
static void set_default_options(optionst &)
Set the options that have default values.
Definition: cbmc_parse_options.cpp:103
cbmc_parse_optionst::preprocessing
void preprocessing(const optionst &)
Definition: cbmc_parse_options.cpp:713
ui_message.h