100 #ifndef CPROVER_JANALYZER_JANALYZER_PARSE_OPTIONS_H
101 #define CPROVER_JANALYZER_JANALYZER_PARSE_OPTIONS_H
120 #define JANALYZER_OPTIONS \
122 "(classpath):(cp):" \
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)" \
133 "(verbosity):(version)" \
135 "(taint):(show-taint)" \
136 "(show-local-may-alias)" \
140 "(unreachable-instructions)(unreachable-functions)" \
141 "(reachable-functions)" \
142 "(intervals)(show-intervals)" \
143 "(non-null)(show-non-null)" \
145 "(dependence-graph)" \
146 "(show)(verify)(simplify):" \
147 "(location-sensitive)(concurrent)" \
148 "(no-simplify-slicing)" \
149 JAVA_BYTECODE_LANGUAGE_OPTIONS
156 void help()
override;
173 bool body_available);
Abstract interface to eager or lazy GOTO models.
This is the basic interface of the abstract interpreter with default implementations of the core func...
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
A goto function, consisting of function body (see body) and parameter identifiers (see parameter_iden...
Interface providing access to a single function in a GOTO model, plus its associated symbol table.
janalyzer_parse_optionst(int argc, const char **argv)
void help() override
display command line help
bool can_generate_function_body(const irep_idt &name)
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...
std::unique_ptr< class_hierarchyt > class_hierarchy
bool generate_function_body(const irep_idt &function_name, symbol_table_baset &symbol_table, goto_functiont &function, bool body_available)
void get_command_line_options(optionst &options)
virtual int perform_analysis(goto_modelt &goto_model, const optionst &options)
Depending on the command line mode, run one of the analysis tasks.
int doit() override
invoke main modules
void register_languages() override
bool process_goto_functions(goto_modelt &goto_model, const optionst &options)
void process_goto_function(goto_model_functiont &function, const abstract_goto_modelt &model, const optionst &options)
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
The symbol table base class interface.
Abstract interface to support a programming language.