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

A base class of all visitors. More...

#include <visitor.h>

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

Public Member Functions

virtual ~Visitor ()=default
 
virtual void visit (ShPtr< GlobalVarDef > varDef)=0
 
virtual void visit (ShPtr< Function > func)=0
 
virtual void visit (ShPtr< AssignStmt > stmt)=0
 
virtual void visit (ShPtr< BreakStmt > stmt)=0
 
virtual void visit (ShPtr< CallStmt > stmt)=0
 
virtual void visit (ShPtr< ContinueStmt > stmt)=0
 
virtual void visit (ShPtr< EmptyStmt > stmt)=0
 
virtual void visit (ShPtr< ForLoopStmt > stmt)=0
 
virtual void visit (ShPtr< UForLoopStmt > stmt)=0
 
virtual void visit (ShPtr< GotoStmt > stmt)=0
 
virtual void visit (ShPtr< IfStmt > stmt)=0
 
virtual void visit (ShPtr< ReturnStmt > stmt)=0
 
virtual void visit (ShPtr< SwitchStmt > stmt)=0
 
virtual void visit (ShPtr< UnreachableStmt > stmt)=0
 
virtual void visit (ShPtr< VarDefStmt > stmt)=0
 
virtual void visit (ShPtr< WhileLoopStmt > stmt)=0
 
virtual void visit (ShPtr< AddOpExpr > expr)=0
 
virtual void visit (ShPtr< AddressOpExpr > expr)=0
 
virtual void visit (ShPtr< AndOpExpr > expr)=0
 
virtual void visit (ShPtr< ArrayIndexOpExpr > expr)=0
 
virtual void visit (ShPtr< AssignOpExpr > expr)=0
 
virtual void visit (ShPtr< BitAndOpExpr > expr)=0
 
virtual void visit (ShPtr< BitOrOpExpr > expr)=0
 
virtual void visit (ShPtr< BitShlOpExpr > expr)=0
 
virtual void visit (ShPtr< BitShrOpExpr > expr)=0
 
virtual void visit (ShPtr< BitXorOpExpr > expr)=0
 
virtual void visit (ShPtr< CallExpr > expr)=0
 
virtual void visit (ShPtr< CommaOpExpr > expr)=0
 
virtual void visit (ShPtr< DerefOpExpr > expr)=0
 
virtual void visit (ShPtr< DivOpExpr > expr)=0
 
virtual void visit (ShPtr< EqOpExpr > expr)=0
 
virtual void visit (ShPtr< GtEqOpExpr > expr)=0
 
virtual void visit (ShPtr< GtOpExpr > expr)=0
 
virtual void visit (ShPtr< LtEqOpExpr > expr)=0
 
virtual void visit (ShPtr< LtOpExpr > expr)=0
 
virtual void visit (ShPtr< ModOpExpr > expr)=0
 
virtual void visit (ShPtr< MulOpExpr > expr)=0
 
virtual void visit (ShPtr< NegOpExpr > expr)=0
 
virtual void visit (ShPtr< NeqOpExpr > expr)=0
 
virtual void visit (ShPtr< NotOpExpr > expr)=0
 
virtual void visit (ShPtr< OrOpExpr > expr)=0
 
virtual void visit (ShPtr< StructIndexOpExpr > expr)=0
 
virtual void visit (ShPtr< SubOpExpr > expr)=0
 
virtual void visit (ShPtr< TernaryOpExpr > expr)=0
 
virtual void visit (ShPtr< Variable > var)=0
 
virtual void visit (ShPtr< BitCastExpr > expr)=0
 
virtual void visit (ShPtr< ExtCastExpr > expr)=0
 
virtual void visit (ShPtr< FPToIntCastExpr > expr)=0
 
virtual void visit (ShPtr< IntToFPCastExpr > expr)=0
 
virtual void visit (ShPtr< IntToPtrCastExpr > expr)=0
 
virtual void visit (ShPtr< PtrToIntCastExpr > expr)=0
 
virtual void visit (ShPtr< TruncCastExpr > expr)=0
 
virtual void visit (ShPtr< ConstArray > constant)=0
 
virtual void visit (ShPtr< ConstBool > constant)=0
 
virtual void visit (ShPtr< ConstFloat > constant)=0
 
virtual void visit (ShPtr< ConstInt > constant)=0
 
virtual void visit (ShPtr< ConstNullPointer > constant)=0
 
virtual void visit (ShPtr< ConstString > constant)=0
 
virtual void visit (ShPtr< ConstStruct > constant)=0
 
virtual void visit (ShPtr< ConstSymbol > constant)=0
 
virtual void visit (ShPtr< ArrayType > type)=0
 
virtual void visit (ShPtr< FloatType > type)=0
 
virtual void visit (ShPtr< IntType > type)=0
 
virtual void visit (ShPtr< PointerType > type)=0
 
virtual void visit (ShPtr< StringType > type)=0
 
virtual void visit (ShPtr< StructType > type)=0
 
virtual void visit (ShPtr< FunctionType > type)=0
 
virtual void visit (ShPtr< VoidType > type)=0
 
virtual void visit (ShPtr< UnknownType > type)=0
 

Protected Member Functions

 Visitor ()=default
 

Detailed Description

A base class of all visitors.

This class implements the Visitor design pattern to circumvent the lack of double dispatch in C++.

Constructor & Destructor Documentation

◆ ~Visitor()

virtual retdec::llvmir2hll::Visitor::~Visitor ( )
virtualdefault

◆ Visitor()

retdec::llvmir2hll::Visitor::Visitor ( )
protecteddefault

Member Function Documentation

◆ visit() [1/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< AddOpExpr expr)
pure virtual

◆ visit() [2/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< AddressOpExpr expr)
pure virtual

◆ visit() [3/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< AndOpExpr expr)
pure virtual

◆ visit() [4/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ArrayIndexOpExpr expr)
pure virtual

◆ visit() [5/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ArrayType type)
pure virtual

◆ visit() [6/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< AssignOpExpr expr)
pure virtual

◆ visit() [7/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< AssignStmt stmt)
pure virtual

◆ visit() [8/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< BitAndOpExpr expr)
pure virtual

◆ visit() [9/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< BitCastExpr expr)
pure virtual

◆ visit() [10/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< BitOrOpExpr expr)
pure virtual

◆ visit() [11/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< BitShlOpExpr expr)
pure virtual

◆ visit() [12/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< BitShrOpExpr expr)
pure virtual

◆ visit() [13/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< BitXorOpExpr expr)
pure virtual

◆ visit() [14/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< BreakStmt stmt)
pure virtual

◆ visit() [15/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< CallExpr expr)
pure virtual

◆ visit() [16/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< CallStmt stmt)
pure virtual

◆ visit() [17/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< CommaOpExpr expr)
pure virtual

◆ visit() [18/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstArray constant)
pure virtual

◆ visit() [19/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstBool constant)
pure virtual

◆ visit() [20/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstFloat constant)
pure virtual

◆ visit() [21/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstInt constant)
pure virtual

◆ visit() [22/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstNullPointer constant)
pure virtual

◆ visit() [23/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstString constant)
pure virtual

◆ visit() [24/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstStruct constant)
pure virtual

◆ visit() [25/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ConstSymbol constant)
pure virtual

◆ visit() [26/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ContinueStmt stmt)
pure virtual

◆ visit() [27/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< DerefOpExpr expr)
pure virtual

◆ visit() [28/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< DivOpExpr expr)
pure virtual

◆ visit() [29/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< EmptyStmt stmt)
pure virtual

◆ visit() [30/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< EqOpExpr expr)
pure virtual

◆ visit() [31/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ExtCastExpr expr)
pure virtual

◆ visit() [32/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< FloatType type)
pure virtual

◆ visit() [33/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ForLoopStmt stmt)
pure virtual

◆ visit() [34/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< FPToIntCastExpr expr)
pure virtual

◆ visit() [35/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< Function func)
pure virtual

◆ visit() [36/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< FunctionType type)
pure virtual

◆ visit() [37/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< GlobalVarDef varDef)
pure virtual

◆ visit() [38/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< GotoStmt stmt)
pure virtual

◆ visit() [39/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< GtEqOpExpr expr)
pure virtual

◆ visit() [40/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< GtOpExpr expr)
pure virtual

◆ visit() [41/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< IfStmt stmt)
pure virtual

◆ visit() [42/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< IntToFPCastExpr expr)
pure virtual

◆ visit() [43/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< IntToPtrCastExpr expr)
pure virtual

◆ visit() [44/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< IntType type)
pure virtual

◆ visit() [45/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< LtEqOpExpr expr)
pure virtual

◆ visit() [46/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< LtOpExpr expr)
pure virtual

◆ visit() [47/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ModOpExpr expr)
pure virtual

◆ visit() [48/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< MulOpExpr expr)
pure virtual

◆ visit() [49/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< NegOpExpr expr)
pure virtual

◆ visit() [50/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< NeqOpExpr expr)
pure virtual

◆ visit() [51/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< NotOpExpr expr)
pure virtual

◆ visit() [52/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< OrOpExpr expr)
pure virtual

◆ visit() [53/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< PointerType type)
pure virtual

◆ visit() [54/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< PtrToIntCastExpr expr)
pure virtual

◆ visit() [55/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< ReturnStmt stmt)
pure virtual

◆ visit() [56/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< StringType type)
pure virtual

◆ visit() [57/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< StructIndexOpExpr expr)
pure virtual

◆ visit() [58/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< StructType type)
pure virtual

◆ visit() [59/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< SubOpExpr expr)
pure virtual

◆ visit() [60/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< SwitchStmt stmt)
pure virtual

◆ visit() [61/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< TernaryOpExpr expr)
pure virtual

◆ visit() [62/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< TruncCastExpr expr)
pure virtual

◆ visit() [63/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< UForLoopStmt stmt)
pure virtual

◆ visit() [64/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< UnknownType type)
pure virtual

◆ visit() [65/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< UnreachableStmt stmt)
pure virtual

◆ visit() [66/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< VarDefStmt stmt)
pure virtual

◆ visit() [67/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< Variable var)
pure virtual

◆ visit() [68/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< VoidType type)
pure virtual

◆ visit() [69/69]

virtual void retdec::llvmir2hll::Visitor::visit ( ShPtr< WhileLoopStmt stmt)
pure virtual

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