cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
janalyzer_parse_options.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: JANALYZER Command Line Option Processing
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
99
100
#ifndef CPROVER_JANALYZER_JANALYZER_PARSE_OPTIONS_H
101
#define CPROVER_JANALYZER_JANALYZER_PARSE_OPTIONS_H
102
103
#include <
util/parse_options.h
>
104
#include <
util/timestamper.h
>
105
106
#include <
langapi/language.h
>
107
108
#include <
goto-programs/show_goto_functions.h
>
109
#include <
goto-programs/show_properties.h
>
110
111
#include <
java_bytecode/java_bytecode_language.h
>
112
113
class
abstract_goto_modelt
;
114
class
ai_baset
;
115
class
goto_functiont
;
116
class
goto_model_functiont
;
117
class
optionst
;
118
119
// clang-format off
120
#define JANALYZER_OPTIONS \
121
OPT_FUNCTIONS \
122
"(classpath):(cp):" \
123
OPT_JAVA_JAR \
124
"(main-class):" \
125
OPT_JAVA_GOTO_BINARY \
126
"(16)(32)(64)(LP64)(ILP64)(LLP64)(ILP32)(LP32)" \
127
"(little-endian)(big-endian)" \
128
OPT_SHOW_GOTO_FUNCTIONS \
129
OPT_SHOW_PROPERTIES \
130
"(no-assertions)(no-assumptions)" \
131
"(show-symbol-table)(show-parse-tree)" \
132
"(property):" \
133
"(verbosity):(version)" \
134
"(arch):" \
135
"(taint):(show-taint)" \
136
"(show-local-may-alias)" \
137
"(json):(xml):" \
138
"(text):(dot):" \
139
OPT_TIMESTAMP \
140
"(unreachable-instructions)(unreachable-functions)" \
141
"(reachable-functions)" \
142
"(intervals)(show-intervals)" \
143
"(non-null)(show-non-null)" \
144
"(constants)" \
145
"(dependence-graph)" \
146
"(show)(verify)(simplify):" \
147
"(location-sensitive)(concurrent)" \
148
"(no-simplify-slicing)" \
149
JAVA_BYTECODE_LANGUAGE_OPTIONS
150
// clang-format on
151
152
class
janalyzer_parse_optionst
:
public
parse_options_baset
153
{
154
public
:
155
int
doit
()
override
;
156
void
help
()
override
;
157
158
janalyzer_parse_optionst
(
int
argc,
const
char
**argv);
159
160
bool
process_goto_functions
(
goto_modelt
&goto_model,
const
optionst
&options);
161
162
void
process_goto_function
(
163
goto_model_functiont
&function,
164
const
abstract_goto_modelt
&model,
165
const
optionst
&options);
166
167
bool
can_generate_function_body
(
const
irep_idt
&name);
168
169
bool
generate_function_body
(
170
const
irep_idt
&function_name,
171
symbol_table_baset
&symbol_table,
172
goto_functiont
&function,
173
bool
body_available);
174
175
protected
:
176
std::unique_ptr<class_hierarchyt>
class_hierarchy
;
177
178
void
register_languages
()
override
;
179
180
void
get_command_line_options
(
optionst
&options);
181
182
virtual
int
183
perform_analysis
(
goto_modelt
&goto_model,
const
optionst
&options);
184
185
ai_baset
*
build_analyzer
(
186
goto_modelt
&goto_model,
187
const
optionst
&,
188
const
namespacet
&ns);
189
};
190
191
#endif
// CPROVER_JANALYZER_JANALYZER_PARSE_OPTIONS_H
abstract_goto_modelt
Abstract interface to eager or lazy GOTO models.
Definition
abstract_goto_model.h:22
ai_baset
This is the basic interface of the abstract interpreter with default implementations of the core func...
Definition
ai.h:117
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
janalyzer_parse_optionst::janalyzer_parse_optionst
janalyzer_parse_optionst(int argc, const char **argv)
Definition
janalyzer_parse_options.cpp:51
janalyzer_parse_optionst::help
void help() override
display command line help
Definition
janalyzer_parse_options.cpp:718
janalyzer_parse_optionst::can_generate_function_body
bool can_generate_function_body(const irep_idt &name)
Definition
janalyzer_parse_options.cpp:701
janalyzer_parse_optionst::build_analyzer
ai_baset * build_analyzer(goto_modelt &goto_model, const optionst &, const namespacet &ns)
For the task, build the appropriate kind of analyzer Ideally this should be a pure function of option...
Definition
janalyzer_parse_options.cpp:263
janalyzer_parse_optionst::class_hierarchy
std::unique_ptr< class_hierarchyt > class_hierarchy
Definition
janalyzer_parse_options.h:176
janalyzer_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
janalyzer_parse_options.cpp:708
janalyzer_parse_optionst::get_command_line_options
void get_command_line_options(optionst &options)
Definition
janalyzer_parse_options.cpp:67
janalyzer_parse_optionst::perform_analysis
virtual int perform_analysis(goto_modelt &goto_model, const optionst &options)
Depending on the command line mode, run one of the analysis tasks.
Definition
janalyzer_parse_options.cpp:433
janalyzer_parse_optionst::doit
int doit() override
invoke main modules
Definition
janalyzer_parse_options.cpp:323
janalyzer_parse_optionst::register_languages
void register_languages() override
Definition
janalyzer_parse_options.cpp:60
janalyzer_parse_optionst::process_goto_functions
bool process_goto_functions(goto_modelt &goto_model, const optionst &options)
Definition
janalyzer_parse_options.cpp:646
janalyzer_parse_optionst::process_goto_function
void process_goto_function(goto_model_functiont &function, const abstract_goto_modelt &model, const optionst &options)
Definition
janalyzer_parse_options.cpp:672
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h: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
java_bytecode_language.h
language.h
Abstract interface to support a programming language.
parse_options.h
show_goto_functions.h
Show the goto functions.
show_properties.h
Show the properties.
timestamper.h
Emit timestamps.
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
jbmc
src
janalyzer
janalyzer_parse_options.h
Generated by
1.17.0