cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
jbmc_parse_options.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: JBMC Command Line Option Processing
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_JBMC_JBMC_PARSE_OPTIONS_H
13
#define CPROVER_JBMC_JBMC_PARSE_OPTIONS_H
14
15
#include <
util/parse_options.h
>
16
#include <
util/timestamper.h
>
17
#include <
util/ui_message.h
>
18
#include <
util/validation_interface.h
>
19
20
#include <
langapi/language.h
>
21
22
#include <
goto-checker/bmc_util.h
>
23
24
#include <
goto-programs/class_hierarchy.h
>
25
#include <
goto-programs/goto_trace.h
>
26
#include <
goto-programs/show_properties.h
>
27
28
#include <
solvers/strings/string_refinement.h
>
29
30
#include <
java_bytecode/java_bytecode_language.h
>
31
#include <
java_bytecode/java_trace_validation.h
>
32
33
#include <
json/json_interface.h
>
34
#include <
xmllang/xml_interface.h
>
35
36
class
goto_functiont
;
37
class
goto_model_functiont
;
38
class
optionst
;
39
40
// clang-format off
41
#define JBMC_OPTIONS \
42
OPT_BMC \
43
"(preprocess)" \
44
OPT_FUNCTIONS \
45
"(no-simplify)(full-slice)" \
46
OPT_REACHABILITY_SLICER \
47
"(no-propagation)(no-simplify-if)" \
48
"(document-subgoals)" \
49
"(object-bits):" \
50
"(classpath):(cp):" \
51
OPT_JAVA_JAR \
52
"(main-class):" \
53
OPT_JAVA_GOTO_BINARY \
54
"(no-assertions)(no-assumptions)" \
55
OPT_XML_INTERFACE \
56
OPT_JSON_INTERFACE \
57
"(smt1)"
/* rejected, will eventually disappear */
\
58
OPT_SOLVER \
59
OPT_STRING_REFINEMENT \
60
"(16)(32)(64)(LP64)(ILP64)(LLP64)(ILP32)(LP32)" \
61
OPT_SHOW_GOTO_FUNCTIONS \
62
OPT_SHOW_CLASS_HIERARCHY \
63
"(show-loops)" \
64
"(show-symbol-table)" \
65
"(list-symbols)" \
66
"(show-parse-tree)" \
67
OPT_SHOW_PROPERTIES \
68
"(drop-unused-functions)" \
69
"(property):(stop-on-fail)(trace)" \
70
"(verbosity):" \
71
"(nondet-static)" \
72
OPT_JAVA_TRACE_VALIDATION \
73
"(version)" \
74
"(symex-coverage-report):" \
75
OPT_TIMESTAMP \
76
"(i386-linux)(i386-macos)(i386-win32)(win32)(winx64)" \
77
"(ppc-macos)" \
78
"(arrays-uf-always)(arrays-uf-never)" \
79
"(arch):" \
80
OPT_FLUSH \
81
JAVA_BYTECODE_LANGUAGE_OPTIONS \
82
"(java-unwind-enum-static)" \
83
"(localize-faults)" \
84
"(java-threading)" \
85
OPT_GOTO_TRACE \
86
OPT_VALIDATE \
87
"(symex-driven-lazy-loading)"
88
// clang-format on
89
90
class
jbmc_parse_optionst
:
public
parse_options_baset
91
{
92
public
:
93
virtual
int
doit
()
override
;
94
virtual
void
help
()
override
;
95
96
jbmc_parse_optionst
(
int
argc,
const
char
**argv);
97
jbmc_parse_optionst
(
98
int
argc,
99
const
char
**argv,
100
const
std::string &extra_options);
101
106
static
void
set_default_options
(
optionst
&);
107
108
void
process_goto_function
(
109
goto_model_functiont
&function,
110
const
abstract_goto_modelt
&,
111
const
optionst
&);
112
bool
process_goto_functions
(
goto_modelt
&goto_model,
const
optionst
&options);
113
114
bool
can_generate_function_body
(
const
irep_idt
&name);
115
116
bool
generate_function_body
(
117
const
irep_idt
&function_name,
118
symbol_table_baset
&symbol_table,
119
goto_functiont
&function,
120
bool
body_available);
121
122
protected
:
123
java_object_factory_parameterst
object_factory_params
;
124
bool
stub_objects_are_not_null
;
125
126
std::unique_ptr<class_hierarchyt>
class_hierarchy
;
127
128
void
get_command_line_options
(
optionst
&);
129
int
get_goto_program
(
130
std::unique_ptr<abstract_goto_modelt> &goto_model,
131
const
optionst
&);
132
bool
show_loaded_functions
(
const
abstract_goto_modelt
&goto_model);
133
bool
show_loaded_symbols
(
const
abstract_goto_modelt
&goto_model);
134
138
std::optional<prefix_filtert>
method_context
;
139
};
140
141
#endif
// CPROVER_JBMC_JBMC_PARSE_OPTIONS_H
bmc_util.h
Bounded Model Checking Utilities.
class_hierarchy.h
Class Hierarchy.
abstract_goto_modelt
Abstract interface to eager or lazy GOTO models.
Definition
abstract_goto_model.h:22
goto_functiont
A goto function, consisting of function body (see body) and parameter identifiers (see parameter_iden...
Definition
goto_function.h:24
goto_model_functiont
Interface providing access to a single function in a GOTO model, plus its associated symbol table.
Definition
goto_model.h:190
goto_modelt
Definition
goto_model.h:27
jbmc_parse_optionst::show_loaded_functions
bool show_loaded_functions(const abstract_goto_modelt &goto_model)
Definition
jbmc_parse_options.cpp:781
jbmc_parse_optionst::get_command_line_options
void get_command_line_options(optionst &)
Definition
jbmc_parse_options.cpp:108
jbmc_parse_optionst::can_generate_function_body
bool can_generate_function_body(const irep_idt &name)
Definition
jbmc_parse_options.cpp:918
jbmc_parse_optionst::class_hierarchy
std::unique_ptr< class_hierarchyt > class_hierarchy
Definition
jbmc_parse_options.h:126
jbmc_parse_optionst::show_loaded_symbols
bool show_loaded_symbols(const abstract_goto_modelt &goto_model)
Definition
jbmc_parse_options.cpp:764
jbmc_parse_optionst::doit
virtual int doit() override
invoke main modules
Definition
jbmc_parse_options.cpp:377
jbmc_parse_optionst::method_context
std::optional< prefix_filtert > method_context
See java_bytecode_languaget::method_context.
Definition
jbmc_parse_options.h:138
jbmc_parse_optionst::help
virtual void help() override
display command line help
Definition
jbmc_parse_options.cpp:963
jbmc_parse_optionst::stub_objects_are_not_null
bool stub_objects_are_not_null
Definition
jbmc_parse_options.h:124
jbmc_parse_optionst::process_goto_function
void process_goto_function(goto_model_functiont &function, const abstract_goto_modelt &, const optionst &)
Definition
jbmc_parse_options.cpp:678
jbmc_parse_optionst::object_factory_params
java_object_factory_parameterst object_factory_params
Definition
jbmc_parse_options.h:123
jbmc_parse_optionst::process_goto_functions
bool process_goto_functions(goto_modelt &goto_model, const optionst &options)
Definition
jbmc_parse_options.cpp:813
jbmc_parse_optionst::get_goto_program
int get_goto_program(std::unique_ptr< abstract_goto_modelt > &goto_model, const optionst &)
Definition
jbmc_parse_options.cpp:596
jbmc_parse_optionst::jbmc_parse_optionst
jbmc_parse_optionst(int argc, const char **argv)
Definition
jbmc_parse_options.cpp:66
jbmc_parse_optionst::generate_function_body
bool generate_function_body(const irep_idt &function_name, symbol_table_baset &symbol_table, goto_functiont &function, bool body_available)
Definition
jbmc_parse_options.cpp:925
jbmc_parse_optionst::set_default_options
static void set_default_options(optionst &)
Set the options that have default values.
Definition
jbmc_parse_options.cpp:91
optionst
Definition
options.h:23
parse_options_baset::parse_options_baset
parse_options_baset(const std::string &optstring, int argc, const char **argv, const std::string &program)
Definition
parse_options.cpp:28
symbol_table_baset
The symbol table base class interface.
Definition
symbol_table_base.h:23
goto_trace.h
Traces of GOTO Programs.
java_bytecode_language.h
java_trace_validation.h
json_interface.h
JSON Commandline Interface.
language.h
Abstract interface to support a programming language.
parse_options.h
show_properties.h
Show the properties.
string_refinement.h
String support via creating string constraints and progressively instantiating the universal constrai...
java_object_factory_parameterst
Definition
java_object_factory_parameters.h:16
timestamper.h
Emit timestamps.
ui_message.h
validation_interface.h
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
xml_interface.h
XML Interface.
jbmc
src
jbmc
jbmc_parse_options.h
Generated by
1.17.0