cprover
resolve_inherited_component.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3  Module: GOTO Program Utilities
4 
5  Author: Diffblue Ltd.
6 
7 \*******************************************************************/
8 
12 
13 #ifndef CPROVER_GOTO_PROGRAMS_RESOLVE_INHERITED_COMPONENT_H
14 #define CPROVER_GOTO_PROGRAMS_RESOLVE_INHERITED_COMPONENT_H
15 
16 #include <util/symbol_table.h>
17 #include <util/std_expr.h>
18 #include <util/std_code.h>
20 
22 {
23 public:
26 
28  {
29  public:
31  {}
32 
34  const irep_idt &class_id, const irep_idt &component_id):
35  class_identifier(class_id),
36  component_identifier(component_id)
37  {}
38 
40 
42  {
43  return class_identifier;
44  }
45 
47  {
48  return component_identifier;
49  }
50 
51  bool is_valid() const;
52 
53  private:
56  };
57 
59  const irep_idt &class_id,
60  const irep_idt &component_name,
61  bool include_interfaces);
62 
64  const irep_idt &class_name, const irep_idt &component_name);
65 
66 private:
68  const irep_idt &class_name,
69  const irep_idt &component_name,
70  const irep_idt &user_class_name);
71 
74 };
75 
76 #endif // CPROVER_GOTO_PROGRAMS_RESOLVE_INHERITED_COMPONENT_H
dstringt
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:35
symbol_tablet
The symbol table.
Definition: symbol_table.h:19
resolve_inherited_componentt::inherited_componentt::get_component_basename
irep_idt get_component_basename() const
Definition: resolve_inherited_component.h:46
class_hierarchyt
Non-graph-based representation of the class hierarchy.
Definition: class_hierarchy.h:42
resolve_inherited_componentt::inherited_componentt::is_valid
bool is_valid() const
Use to check if this inherited_componentt has been fully constructed.
Definition: resolve_inherited_component.cpp:108
resolve_inherited_componentt::does_implementation_exist
bool does_implementation_exist(const irep_idt &class_name, const irep_idt &component_name, const irep_idt &user_class_name)
resolve_inherited_componentt::inherited_componentt
Definition: resolve_inherited_component.h:27
resolve_inherited_componentt::inherited_componentt::component_identifier
irep_idt component_identifier
Definition: resolve_inherited_component.h:55
resolve_inherited_componentt::inherited_componentt::get_full_component_identifier
irep_idt get_full_component_identifier() const
Get the full name of this function.
Definition: resolve_inherited_component.cpp:100
resolve_inherited_componentt::resolve_inherited_componentt
resolve_inherited_componentt(const symbol_tablet &symbol_table, const class_hierarchyt &class_hierarchy)
See the operator() method comment.
Definition: resolve_inherited_component.cpp:17
resolve_inherited_componentt::inherited_componentt::class_identifier
irep_idt class_identifier
Definition: resolve_inherited_component.h:54
resolve_inherited_componentt::class_hierarchy
const class_hierarchyt & class_hierarchy
Definition: resolve_inherited_component.h:72
std_code.h
resolve_inherited_componentt::inherited_componentt::get_class_identifier
irep_idt get_class_identifier() const
Definition: resolve_inherited_component.h:41
class_hierarchy.h
resolve_inherited_componentt::symbol_table
const symbol_tablet & symbol_table
Definition: resolve_inherited_component.h:73
resolve_inherited_componentt::inherited_componentt::inherited_componentt
inherited_componentt(const irep_idt &class_id, const irep_idt &component_id)
Definition: resolve_inherited_component.h:33
resolve_inherited_componentt::inherited_componentt::inherited_componentt
inherited_componentt()
Definition: resolve_inherited_component.h:30
resolve_inherited_componentt::build_full_component_identifier
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...
Definition: resolve_inherited_component.cpp:88
symbol_table.h
Author: Diffblue Ltd.
std_expr.h
resolve_inherited_componentt::operator()
inherited_componentt operator()(const irep_idt &class_id, const irep_idt &component_name, bool include_interfaces)
Given a class and a component, identify the concrete field or method it is resolved to.
Definition: resolve_inherited_component.cpp:38
resolve_inherited_componentt
Definition: resolve_inherited_component.h:21