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:
27 
29  {
30  public:
32  {}
33 
35  const irep_idt &class_id, const irep_idt &component_id):
36  class_identifier(class_id),
37  component_identifier(component_id)
38  {}
39 
41 
43  {
44  return class_identifier;
45  }
46 
48  {
49  return component_identifier;
50  }
51 
52  bool is_valid() const;
53 
54  private:
57  };
58 
60  const irep_idt &class_id,
61  const irep_idt &component_name,
62  bool include_interfaces);
63 
65  const irep_idt &class_name, const irep_idt &component_name);
66 
67 private:
69  const irep_idt &class_name,
70  const irep_idt &component_name,
71  const irep_idt &user_class_name);
72 
75 };
76 
77 #endif // CPROVER_GOTO_PROGRAMS_RESOLVE_INHERITED_COMPONENT_H
Non-graph-based representation of the class hierarchy.
bool is_valid() const
Use to check if this inherited_componentt has been fully constructed.
bool does_implementation_exist(const irep_idt &class_name, const irep_idt &component_name, const irep_idt &user_class_name)
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...
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...
Class Hierarchy.
API to expression classes.
The symbol table.
Definition: symbol_table.h:19
dstringt has one field, an unsigned integer no which is an index into a static table of strings...
Definition: dstring.h:33
Author: Diffblue Ltd.
resolve_inherited_componentt(const symbol_tablet &symbol_table)
See the operator() method comment.
inherited_componentt(const irep_idt &class_id, const irep_idt &component_id)
irep_idt get_full_component_identifier() const
Get the full name of this function.