retdec
Public Member Functions | Protected Member Functions | List of all members
retdec::llvmir2hll::Visitable Class Referenceabstract

Interface for classes whose instances are visitable by a Visitor. More...

#include <visitable.h>

Inheritance diagram for retdec::llvmir2hll::Visitable:
Inheritance graph
[legend]

Public Member Functions

virtual void accept (Visitor *v)=0
 Visitor pattern implementation. More...
 

Protected Member Functions

 Visitable ()=default
 
 ~Visitable ()=default
 

Detailed Description

Interface for classes whose instances are visitable by a Visitor.

Implements the Visitor design pattern.

Constructor & Destructor Documentation

◆ Visitable()

retdec::llvmir2hll::Visitable::Visitable ( )
protecteddefault

◆ ~Visitable()

retdec::llvmir2hll::Visitable::~Visitable ( )
protecteddefault

Member Function Documentation

◆ accept()

virtual void retdec::llvmir2hll::Visitable::accept ( Visitor v)
pure virtual

Visitor pattern implementation.

Subclasses should implement this method as:

v->visit(ucast<T>(shared_from_this()));

where T is the name of the subclass, and shared_from_this() and ucast<> are from Decompiler/Support/SmartPtr.h.

Implemented in retdec::llvmir2hll::WhileLoopStmt, retdec::llvmir2hll::VoidType, retdec::llvmir2hll::Variable, retdec::llvmir2hll::VarDefStmt, retdec::llvmir2hll::UnreachableStmt, retdec::llvmir2hll::UnknownType, retdec::llvmir2hll::UForLoopStmt, retdec::llvmir2hll::TruncCastExpr, retdec::llvmir2hll::TernaryOpExpr, retdec::llvmir2hll::SwitchStmt, retdec::llvmir2hll::SubOpExpr, retdec::llvmir2hll::StructType, retdec::llvmir2hll::StructIndexOpExpr, retdec::llvmir2hll::StringType, retdec::llvmir2hll::ReturnStmt, retdec::llvmir2hll::PtrToIntCastExpr, retdec::llvmir2hll::PointerType, retdec::llvmir2hll::OrOpExpr, retdec::llvmir2hll::NotOpExpr, retdec::llvmir2hll::NeqOpExpr, retdec::llvmir2hll::NegOpExpr, retdec::llvmir2hll::MulOpExpr, retdec::llvmir2hll::ModOpExpr, retdec::llvmir2hll::LtOpExpr, retdec::llvmir2hll::LtEqOpExpr, retdec::llvmir2hll::IntType, retdec::llvmir2hll::IntToPtrCastExpr, retdec::llvmir2hll::IntToFPCastExpr, retdec::llvmir2hll::IfStmt, retdec::llvmir2hll::GtOpExpr, retdec::llvmir2hll::GtEqOpExpr, retdec::llvmir2hll::GotoStmt, retdec::llvmir2hll::GlobalVarDef, retdec::llvmir2hll::FunctionType, retdec::llvmir2hll::Function, retdec::llvmir2hll::FPToIntCastExpr, retdec::llvmir2hll::ForLoopStmt, retdec::llvmir2hll::FloatType, retdec::llvmir2hll::ExtCastExpr, retdec::llvmir2hll::EqOpExpr, retdec::llvmir2hll::EmptyStmt, retdec::llvmir2hll::DivOpExpr, retdec::llvmir2hll::DerefOpExpr, retdec::llvmir2hll::ContinueStmt, retdec::llvmir2hll::ConstSymbol, retdec::llvmir2hll::ConstStruct, retdec::llvmir2hll::ConstString, retdec::llvmir2hll::ConstNullPointer, retdec::llvmir2hll::ConstInt, retdec::llvmir2hll::ConstFloat, retdec::llvmir2hll::ConstBool, retdec::llvmir2hll::ConstArray, retdec::llvmir2hll::CommaOpExpr, retdec::llvmir2hll::CallStmt, retdec::llvmir2hll::CallExpr, retdec::llvmir2hll::BreakStmt, retdec::llvmir2hll::BitXorOpExpr, retdec::llvmir2hll::BitShrOpExpr, retdec::llvmir2hll::BitShlOpExpr, retdec::llvmir2hll::BitOrOpExpr, retdec::llvmir2hll::BitCastExpr, retdec::llvmir2hll::BitAndOpExpr, retdec::llvmir2hll::AssignStmt, retdec::llvmir2hll::AssignOpExpr, retdec::llvmir2hll::ArrayType, retdec::llvmir2hll::ArrayIndexOpExpr, retdec::llvmir2hll::AndOpExpr, retdec::llvmir2hll::AddressOpExpr, and retdec::llvmir2hll::AddOpExpr.


The documentation for this class was generated from the following file: