This is the basic interface of the abstract interpreter with default implementations of the core functionality.
More...
|
| virtual void | initialize (const goto_programt &) |
| virtual void | initialize (const goto_functiont &) |
| virtual void | initialize (const goto_functionst &) |
| virtual void | finalize () |
| void | entry_state (const goto_programt &) |
| void | entry_state (const goto_functionst &) |
| goto_programt::const_targett | get_next (working_sett &working_set) |
| void | put_in_working_set (working_sett &working_set, goto_programt::const_targett l) |
| bool | fixedpoint (const goto_programt &goto_program, const goto_functionst &goto_functions, const namespacet &ns) |
| virtual void | fixedpoint (const goto_functionst &goto_functions, const namespacet &ns)=0 |
| void | sequential_fixedpoint (const goto_functionst &goto_functions, const namespacet &ns) |
| bool | visit (goto_programt::const_targett l, working_sett &working_set, const goto_programt &goto_program, const goto_functionst &goto_functions, const namespacet &ns) |
| bool | do_function_call_rec (goto_programt::const_targett l_call, goto_programt::const_targett l_return, const expr2tc &function, const goto_functionst &goto_functions, const namespacet &ns) |
| bool | do_function_call (goto_programt::const_targett l_call, goto_programt::const_targett l_return, const goto_functionst &goto_functions, const goto_functionst::function_mapt::const_iterator f_it, const namespacet &ns) |
| virtual bool | merge (const statet &src, goto_programt::const_targett from, goto_programt::const_targett to)=0 |
| virtual bool | merge_shared (const statet &src, goto_programt::const_targett from, goto_programt::const_targett to, const namespacet &ns)=0 |
| virtual statet & | get_state (goto_programt::const_targett l)=0 |
| virtual const statet & | find_state (goto_programt::const_targett l) const =0 |
| virtual std::unique_ptr< statet > | make_temporary_state (const statet &s)=0 |
This is the basic interface of the abstract interpreter with default implementations of the core functionality.
Users of abstract interpreters should use the interface given by this class. It breaks into three categories:
- Running an analysis, via operator() overloads
- Accessing the results of an analysis, by looking up the state map
- Outputting the results of the analysis;