retdec
rreference_type.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_RREFERENCE_TYPE_H
8 #define RETDEC_RREFERENCE_TYPE_H
9 
12 
13 namespace retdec {
14 namespace demangler {
15 namespace borland {
16 
21 {
22 public:
23  static std::shared_ptr<RReferenceTypeNode> create(
24  Context &context,
25  std::shared_ptr<Node> pointee);
26 
27  std::shared_ptr<Node> pointee();
28 
29  void printLeft(std::ostream &s) const override;
30 
31  void printRight(std::ostream &s) const override;
32 
33 private:
34  explicit RReferenceTypeNode(std::shared_ptr<Node> pointee);
35 
36 private:
37  std::shared_ptr<Node> _pointee;
38 };
39 
40 } // borland
41 } // demangler
42 } // retdec
43 
44 #endif //RETDEC_RREFERENCE_TYPE_H
Storage for functions, types and names. Used for cacheing.
Definition: context.h:38
Representation of R-value references.
Definition: rreference_type.h:21
std::shared_ptr< Node > pointee()
Definition: rreference_type.cpp:49
static std::shared_ptr< RReferenceTypeNode > create(Context &context, std::shared_ptr< Node > pointee)
Function for creating r-value references. If type the same type was already created,...
Definition: rreference_type.cpp:33
void printRight(std::ostream &s) const override
Prints right side of reference type. Used for array and funtion types.
Definition: rreference_type.cpp:74
std::shared_ptr< Node > _pointee
Definition: rreference_type.h:37
void printLeft(std::ostream &s) const override
Prints left side of reference type or whole, depending on pointee. Right side printing is used for ar...
Definition: rreference_type.cpp:58
RReferenceTypeNode(std::shared_ptr< Node > pointee)
Definition: rreference_type.cpp:19
Base class for all type nodes.
Definition: type_node.h:21
Storage for all created nodes in borland AST.
Definition: archive_wrapper.h:19
Base class for all types in borland AST.