retdec
|
A representation of composite type. More...
#include <composite_type.h>
Public Types | |
using | Members = std::vector< Member > |
using | member_iterator = Members::iterator |
using | const_member_iterator = Members::const_iterator |
Public Member Functions | |
Composite type members. | |
member_iterator | member_begin () |
Returns an iterator to the member. More... | |
const_member_iterator | member_begin () const |
Returns a constant iterator to the member. More... | |
member_iterator | member_end () |
Returns an iterator past the last member. More... | |
const_member_iterator | member_end () const |
Returns a constant iterator past the last member. More... | |
Members::size_type | getMemberCount () const |
Returns the number of members. More... | |
const Member & | getMember (Members::size_type n) const |
Returns the n-th member. More... | |
const std::string & | getMemberName (Members::size_type n) const |
Returns the n-th member's name. More... | |
std::shared_ptr< Type > | getMemberType (Members::size_type n) const |
Returns the n-th member's type. More... | |
void | setMembers (const Members &members) |
Sets new members to composite type. More... | |
![]() | |
virtual | ~Type ()=default |
const std::string & | getName () const |
unsigned | getBitWidth () const |
virtual bool | isArray () const |
virtual bool | isEnum () const |
virtual bool | isFloatingPoint () const |
virtual bool | isFunction () const |
virtual bool | isIntegral () const |
virtual bool | isNamed () const |
virtual bool | isPointer () const |
virtual bool | isReference () const |
virtual bool | isStruct () const |
virtual bool | isTypedef () const |
virtual bool | isUnion () const |
virtual bool | isUnknown () const |
virtual bool | isVoid () const |
![]() | |
virtual void | accept (Visitor *v)=0 |
Visitor pattern implementation. More... | |
Protected Member Functions | |
CompositeType (const std::string &name, const Members &members) | |
Constructs a new composite type. More... | |
![]() | |
Type ()=default | |
Type (const std::string &name, unsigned bitWidth) | |
Constructs a new type. More... | |
![]() | |
Visitable ()=default | |
~Visitable ()=default | |
Protected Attributes | |
Members | members |
![]() | |
std::string | name |
unsigned | bitWidth |
A representation of composite type.
using retdec::ctypes::CompositeType::const_member_iterator = Members::const_iterator |
using retdec::ctypes::CompositeType::member_iterator = Members::iterator |
using retdec::ctypes::CompositeType::Members = std::vector<Member> |
|
protected |
Constructs a new composite type.
const Member & retdec::ctypes::CompositeType::getMember | ( | Members::size_type | n | ) | const |
Returns the n-th member.
0 < n <= MemberCount
The members are numbered starting with 1
.
CompositeType::Members::size_type retdec::ctypes::CompositeType::getMemberCount | ( | ) | const |
Returns the number of members.
Does not matter whether function takes variable number of members or not.
const std::string & retdec::ctypes::CompositeType::getMemberName | ( | Members::size_type | n | ) | const |
Returns the n-th member's name.
0 < n <= MemberCount
The members are numbered starting with 1
.
std::shared_ptr< Type > retdec::ctypes::CompositeType::getMemberType | ( | Members::size_type | n | ) | const |
Returns the n-th member's type.
0 < n <= MemberCount
The members are numbered starting with 1
.
CompositeType::member_iterator retdec::ctypes::CompositeType::member_begin | ( | ) |
Returns an iterator to the member.
CompositeType::const_member_iterator retdec::ctypes::CompositeType::member_begin | ( | ) | const |
Returns a constant iterator to the member.
CompositeType::member_iterator retdec::ctypes::CompositeType::member_end | ( | ) |
Returns an iterator past the last member.
CompositeType::const_member_iterator retdec::ctypes::CompositeType::member_end | ( | ) | const |
Returns a constant iterator past the last member.
void retdec::ctypes::CompositeType::setMembers | ( | const Members & | members | ) |
Sets new members to composite type.
Overwrites old members. Iterators (returned by member_{begin|end}()) pointing to the old members become invalid.
|
protected |