19 : symbol_table(symbol_table)
35std::optional<resolve_inherited_componentt::inherited_componentt>
69 return base.
type().get_identifier();
125std::optional<resolve_inherited_componentt::inherited_componentt>
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
irep_idt component_identifier
irep_idt get_full_component_identifier() const
Get the full name of this function.
irep_idt class_identifier
resolve_inherited_componentt(const symbol_table_baset &symbol_table)
See the operator() method comment.
std::optional< inherited_componentt > operator()(const irep_idt &class_id, const irep_idt &component_name, bool include_interfaces, std::function< bool(const symbolt &)> user_filter=[](const symbolt &) { return true;})
Given a class and a component, identify the concrete field or method it is resolved to.
static irep_idt build_full_component_identifier(const irep_idt &class_name, const irep_idt &component_name)
Build a component name as found in a GOTO symbol table equivalent to the name of a concrete component...
const symbol_table_baset & symbol_table
Base class or struct that a class or struct inherits from.
struct_tag_typet & type()
The symbol table base class interface.
const std::string & id2string(const irep_idt &d)
Ranges: pair of begin and end iterators, which can be initialized from containers,...
ranget< iteratort > make_range(iteratort begin, iteratort end)
Given a class and a component (either field or method), find the closest parent that defines that com...
std::optional< resolve_inherited_componentt::inherited_componentt > get_inherited_method_implementation(const irep_idt &call_basename, const irep_idt &classname, const symbol_table_baset &symbol_table)
Given a class and a component, identify the concrete method it is resolved to.
#define PRECONDITION(CONDITION)
const struct_typet & to_struct_type(const typet &type)
Cast a typet to a struct_typet.