retdec
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
retdec::llvmir2hll::BIRWriter Class Reference

#include <bir_writer.h>

Inheritance diagram for retdec::llvmir2hll::BIRWriter:
Inheritance graph
[legend]
Collaboration diagram for retdec::llvmir2hll::BIRWriter:
Collaboration graph
[legend]

Public Member Functions

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

Protected Member Functions

void emitGlobals ()
 
void emitFunctions ()
 
void emitIndent (unsigned indent)
 
void emitCurrentIndent ()
 
void emitLabel (ShPtr< Statement > stmt)
 
- Protected Member Functions inherited from retdec::llvmir2hll::Visitor
 Visitor ()=default
 

Protected Attributes

ShPtr< Modulemodule
 The module to be written. More...
 
std::stringstream out
 The output stream. More...
 
unsigned currIndent = 0
 

Member Function Documentation

◆ emit()

void retdec::llvmir2hll::BIRWriter::emit ( ShPtr< Module m,
const std::string &  fileName = "" 
)

◆ emitCurrentIndent()

void retdec::llvmir2hll::BIRWriter::emitCurrentIndent ( )
protected

◆ emitFunctions()

void retdec::llvmir2hll::BIRWriter::emitFunctions ( )
protected

◆ emitGlobals()

void retdec::llvmir2hll::BIRWriter::emitGlobals ( )
protected

◆ emitIndent()

void retdec::llvmir2hll::BIRWriter::emitIndent ( unsigned  indent)
protected

◆ emitLabel()

void retdec::llvmir2hll::BIRWriter::emitLabel ( ShPtr< Statement stmt)
protected

◆ visit() [1/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< AddOpExpr expr)
overridevirtual

◆ visit() [2/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< AddressOpExpr expr)
overridevirtual

◆ visit() [3/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< AndOpExpr expr)
overridevirtual

◆ visit() [4/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ArrayIndexOpExpr expr)
overridevirtual

◆ visit() [5/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ArrayType type)
overridevirtual

◆ visit() [6/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< AssignOpExpr expr)
overridevirtual

◆ visit() [7/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< AssignStmt stmt)
overridevirtual

◆ visit() [8/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< BitAndOpExpr expr)
overridevirtual

◆ visit() [9/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< BitCastExpr expr)
overridevirtual

◆ visit() [10/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< BitOrOpExpr expr)
overridevirtual

◆ visit() [11/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< BitShlOpExpr expr)
overridevirtual

◆ visit() [12/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< BitShrOpExpr expr)
overridevirtual

◆ visit() [13/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< BitXorOpExpr expr)
overridevirtual

◆ visit() [14/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< BreakStmt stmt)
overridevirtual

◆ visit() [15/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< CallExpr expr)
overridevirtual

◆ visit() [16/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< CallStmt stmt)
overridevirtual

◆ visit() [17/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< CommaOpExpr expr)
overridevirtual

◆ visit() [18/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstArray constant)
overridevirtual

◆ visit() [19/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstBool constant)
overridevirtual

◆ visit() [20/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstFloat constant)
overridevirtual

◆ visit() [21/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstInt constant)
overridevirtual

◆ visit() [22/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstNullPointer constant)
overridevirtual

◆ visit() [23/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstString constant)
overridevirtual

◆ visit() [24/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstStruct constant)
overridevirtual

◆ visit() [25/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ConstSymbol constant)
overridevirtual

◆ visit() [26/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ContinueStmt stmt)
overridevirtual

◆ visit() [27/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< DerefOpExpr expr)
overridevirtual

◆ visit() [28/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< DivOpExpr expr)
overridevirtual

◆ visit() [29/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< EmptyStmt stmt)
overridevirtual

◆ visit() [30/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< EqOpExpr expr)
overridevirtual

◆ visit() [31/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ExtCastExpr expr)
overridevirtual

◆ visit() [32/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< FloatType type)
overridevirtual

◆ visit() [33/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ForLoopStmt stmt)
overridevirtual

◆ visit() [34/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< FPToIntCastExpr expr)
overridevirtual

◆ visit() [35/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< Function func)
overridevirtual

◆ visit() [36/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< FunctionType type)
overridevirtual

◆ visit() [37/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< GlobalVarDef varDef)
overridevirtual

◆ visit() [38/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< GotoStmt stmt)
overridevirtual

◆ visit() [39/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< GtEqOpExpr expr)
overridevirtual

◆ visit() [40/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< GtOpExpr expr)
overridevirtual

◆ visit() [41/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< IfStmt stmt)
overridevirtual

◆ visit() [42/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< IntToFPCastExpr expr)
overridevirtual

◆ visit() [43/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< IntToPtrCastExpr expr)
overridevirtual

◆ visit() [44/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< IntType type)
overridevirtual

◆ visit() [45/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< LtEqOpExpr expr)
overridevirtual

◆ visit() [46/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< LtOpExpr expr)
overridevirtual

◆ visit() [47/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ModOpExpr expr)
overridevirtual

◆ visit() [48/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< MulOpExpr expr)
overridevirtual

◆ visit() [49/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< NegOpExpr expr)
overridevirtual

◆ visit() [50/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< NeqOpExpr expr)
overridevirtual

◆ visit() [51/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< NotOpExpr expr)
overridevirtual

◆ visit() [52/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< OrOpExpr expr)
overridevirtual

◆ visit() [53/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< PointerType type)
overridevirtual

◆ visit() [54/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< PtrToIntCastExpr expr)
overridevirtual

◆ visit() [55/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< ReturnStmt stmt)
overridevirtual

◆ visit() [56/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< StringType type)
overridevirtual

◆ visit() [57/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< StructIndexOpExpr expr)
overridevirtual

◆ visit() [58/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< StructType type)
overridevirtual

◆ visit() [59/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< SubOpExpr expr)
overridevirtual

◆ visit() [60/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< SwitchStmt stmt)
overridevirtual

◆ visit() [61/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< TernaryOpExpr expr)
overridevirtual

◆ visit() [62/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< TruncCastExpr expr)
overridevirtual

◆ visit() [63/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< UForLoopStmt stmt)
overridevirtual

◆ visit() [64/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< UnknownType type)
overridevirtual

◆ visit() [65/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< UnreachableStmt stmt)
overridevirtual

◆ visit() [66/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< VarDefStmt stmt)
overridevirtual

◆ visit() [67/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< Variable var)
overridevirtual

◆ visit() [68/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< VoidType type)
overridevirtual

◆ visit() [69/69]

void retdec::llvmir2hll::BIRWriter::visit ( ShPtr< WhileLoopStmt stmt)
overridevirtual

Member Data Documentation

◆ currIndent

unsigned retdec::llvmir2hll::BIRWriter::currIndent = 0
protected

◆ module

ShPtr<Module> retdec::llvmir2hll::BIRWriter::module
protected

The module to be written.

◆ out

std::stringstream retdec::llvmir2hll::BIRWriter::out
protected

The output stream.


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