7 #ifndef RETDEC_CTYPES_ARRAY_TYPE_H
8 #define RETDEC_CTYPES_ARRAY_TYPE_H
34 static std::shared_ptr<ArrayType>
create(
const std::shared_ptr<Context> &context,
41 virtual bool isArray()
const override;
A representation of array types.
Definition: array_type.h:24
std::vector< DimensionType > Dimensions
Definition: array_type.h:27
std::size_t DimensionType
Definition: array_type.h:26
Dimensions::size_type getDimensionCount() const
Returns array's dimensions count.
Definition: array_type.cpp:76
Dimensions dimensions
Definition: array_type.h:52
std::shared_ptr< Type > getElementType() const
Returns element type.
Definition: array_type.cpp:60
ArrayType(const std::shared_ptr< Type > &elementType, const Dimensions &dimensions)
Constructs a new array type.
Definition: array_type.cpp:22
virtual void accept(Visitor *v) override
Visitor pattern implementation.
Definition: array_type.cpp:89
static std::shared_ptr< ArrayType > create(const std::shared_ptr< Context > &context, const std::shared_ptr< Type > &elementType, const Dimensions &dimensions)
Creates array type.
Definition: array_type.cpp:40
std::shared_ptr< Type > elementType
Definition: array_type.h:51
static const DimensionType UNKNOWN_DIMENSION
Value used for unknown dimension.
Definition: array_type.h:31
const Dimensions & getDimensions() const
Returns array's dimensions.
Definition: array_type.cpp:68
virtual bool isArray() const override
Returns true when Type is array, false otherwise.
Definition: array_type.cpp:84
A base class of all C types.
Definition: type.h:22
A base class of all C-types' visitors.
Definition: visitor.h:33
A base class of all C types.
Definition: archive_wrapper.h:19