retdec
Public Member Functions | Private Member Functions | List of all members
retdec::demangler::BorlandToCtypesParser Class Reference

#include <borland_ast_ctypes_parser.h>

Inheritance diagram for retdec::demangler::BorlandToCtypesParser:
Inheritance graph
[legend]
Collaboration diagram for retdec::demangler::BorlandToCtypesParser:
Collaboration graph
[legend]

Public Member Functions

 BorlandToCtypesParser ()=default
 
std::shared_ptr< ctypes::FunctionparseAsFunction (const std::string &name, std::shared_ptr< demangler::borland::Node > ast, std::unique_ptr< ctypes::Module > &module, const TypeWidths &typeWidths={}, const TypeSignedness &typeSignedness={}, unsigned defaultBitWidth=0)
 
- Public Member Functions inherited from retdec::demangler::AstToCtypesParser
 AstToCtypesParser ()=default
 
- Public Member Functions inherited from retdec::ctypesparser::CTypesParser
virtual ~CTypesParser ()=default
 

Private Member Functions

std::shared_ptr< retdec::ctypes::FunctionparseFunction (const std::string &mangledName, std::shared_ptr< demangler::borland::FunctionNode > function)
 
std::shared_ptr< ctypes::TypeparseType (std::shared_ptr< demangler::borland::TypeNode > typeNode)
 
std::shared_ptr< ctypes::IntegralTypeparseIntegralType (std::shared_ptr< demangler::borland::IntegralTypeNode > integralNode)
 
std::shared_ptr< ctypes::FloatingPointTypeparseFloatingPointType (std::shared_ptr< demangler::borland::FloatTypeNode > floatNode)
 
std::shared_ptr< ctypes::IntegralTypeparseCharType (std::shared_ptr< demangler::borland::CharTypeNode > charNode)
 
std::shared_ptr< ctypes::TypeparseBuiltInType (std::shared_ptr< demangler::borland::BuiltInTypeNode > typeNode)
 
std::shared_ptr< ctypes::PointerTypeparsePointerType (std::shared_ptr< demangler::borland::PointerTypeNode > pointerNode)
 
std::shared_ptr< ctypes::TypeparseReferenceType (std::shared_ptr< demangler::borland::ReferenceTypeNode > referenceNode)
 
std::shared_ptr< ctypes::TypeparseRReferenceType (std::shared_ptr< demangler::borland::RReferenceTypeNode > referenceNode)
 
std::shared_ptr< ctypes::NamedTypeparseNamedType (std::shared_ptr< demangler::borland::NamedTypeNode > namedTypeNode)
 
ctypes::Function::Parameters parseFuncParameters (std::shared_ptr< demangler::borland::NodeArray > paramsNode)
 
ctypes::CallConvention parseCallConvention (demangler::borland::CallConv callConv)
 
std::shared_ptr< ctypes::FunctionTypeparsefuncType (std::shared_ptr< demangler::borland::FunctionTypeNode > funcTypeNode)
 
ctypes::FunctionType::Parameters parseFuncTypeParameters (std::shared_ptr< demangler::borland::NodeArray > paramsNode)
 
std::shared_ptr< ctypes::ArrayTypeparseArrayType (std::shared_ptr< demangler::borland::ArrayNode > ArrayTypeNode)
 

Additional Inherited Members

- Public Types inherited from retdec::ctypesparser::CTypesParser
using TypeWidths = std::map< std::string, unsigned >
 Set container for C-types' bit width. More...
 
using TypeSignedness = std::map< std::string, ctypes::IntegralType::Signess >
 Set container for C-types' signedness. More...
 
- Protected Member Functions inherited from retdec::demangler::AstToCtypesParser
unsigned getBitWidth (const std::string &typeName) const
 
ctypes::IntegralType::Signess toSigness (bool isUnsigned) const
 
ctypes::IntegralType::Signess toSigness (const std::string &typeName) const
 
ctypes::FunctionType::VarArgness toVarArgness (bool isVarArg) const
 
- Protected Member Functions inherited from retdec::ctypesparser::CTypesParser
 CTypesParser ()
 Creates new C-types parser. More...
 
 CTypesParser (unsigned defaultBitWidth)
 Creates new C-types parser. More...
 
- Protected Attributes inherited from retdec::ctypesparser::CTypesParser
std::shared_ptr< retdec::ctypes::Contextcontext
 Container for already parsed functions, types. More...
 
TypeWidths typeWidths
 C-types' bit widths. More...
 
TypeSignedness typeSignedness
 C-types' signedness. More...
 
unsigned defaultBitWidth = 0
 Bitwidth used for types not in typeWidths. More...
 

Constructor & Destructor Documentation

◆ BorlandToCtypesParser()

retdec::demangler::BorlandToCtypesParser::BorlandToCtypesParser ( )
default

Member Function Documentation

◆ parseArrayType()

std::shared_ptr< ctypes::ArrayType > retdec::demangler::BorlandToCtypesParser::parseArrayType ( std::shared_ptr< demangler::borland::ArrayNode ArrayTypeNode)
private

◆ parseAsFunction()

std::shared_ptr< ctypes::Function > retdec::demangler::BorlandToCtypesParser::parseAsFunction ( const std::string &  name,
std::shared_ptr< demangler::borland::Node ast,
std::unique_ptr< ctypes::Module > &  module,
const TypeWidths typeWidths = {},
const TypeSignedness typeSignedness = {},
unsigned  defaultBitWidth = 0 
)

◆ parseBuiltInType()

std::shared_ptr< ctypes::Type > retdec::demangler::BorlandToCtypesParser::parseBuiltInType ( std::shared_ptr< demangler::borland::BuiltInTypeNode typeNode)
private

◆ parseCallConvention()

ctypes::CallConvention retdec::demangler::BorlandToCtypesParser::parseCallConvention ( demangler::borland::CallConv  callConv)
private

◆ parseCharType()

std::shared_ptr< ctypes::IntegralType > retdec::demangler::BorlandToCtypesParser::parseCharType ( std::shared_ptr< demangler::borland::CharTypeNode charNode)
private

◆ parseFloatingPointType()

std::shared_ptr< ctypes::FloatingPointType > retdec::demangler::BorlandToCtypesParser::parseFloatingPointType ( std::shared_ptr< demangler::borland::FloatTypeNode floatNode)
private

◆ parseFuncParameters()

ctypes::Function::Parameters retdec::demangler::BorlandToCtypesParser::parseFuncParameters ( std::shared_ptr< demangler::borland::NodeArray paramsNode)
private

◆ parseFunction()

std::shared_ptr< retdec::ctypes::Function > retdec::demangler::BorlandToCtypesParser::parseFunction ( const std::string &  mangledName,
std::shared_ptr< demangler::borland::FunctionNode function 
)
private

◆ parsefuncType()

std::shared_ptr< ctypes::FunctionType > retdec::demangler::BorlandToCtypesParser::parsefuncType ( std::shared_ptr< demangler::borland::FunctionTypeNode funcTypeNode)
private

◆ parseFuncTypeParameters()

ctypes::FunctionType::Parameters retdec::demangler::BorlandToCtypesParser::parseFuncTypeParameters ( std::shared_ptr< demangler::borland::NodeArray paramsNode)
private

◆ parseIntegralType()

std::shared_ptr< ctypes::IntegralType > retdec::demangler::BorlandToCtypesParser::parseIntegralType ( std::shared_ptr< demangler::borland::IntegralTypeNode integralNode)
private

◆ parseNamedType()

std::shared_ptr< ctypes::NamedType > retdec::demangler::BorlandToCtypesParser::parseNamedType ( std::shared_ptr< demangler::borland::NamedTypeNode namedTypeNode)
private

◆ parsePointerType()

std::shared_ptr< ctypes::PointerType > retdec::demangler::BorlandToCtypesParser::parsePointerType ( std::shared_ptr< demangler::borland::PointerTypeNode pointerNode)
private

◆ parseReferenceType()

std::shared_ptr< ctypes::Type > retdec::demangler::BorlandToCtypesParser::parseReferenceType ( std::shared_ptr< demangler::borland::ReferenceTypeNode referenceNode)
private

◆ parseRReferenceType()

std::shared_ptr< ctypes::Type > retdec::demangler::BorlandToCtypesParser::parseRReferenceType ( std::shared_ptr< demangler::borland::RReferenceTypeNode referenceNode)
private

◆ parseType()

std::shared_ptr< ctypes::Type > retdec::demangler::BorlandToCtypesParser::parseType ( std::shared_ptr< demangler::borland::TypeNode typeNode)
private

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