16#ifndef LIEF_DEX_TYPE_H
17#define LIEF_DEX_TYPE_H
63 Type(
const std::string& mangled);
101 void parse(
const std::string&
type);
Class which represents a DEX Class (i.e. a Java/Kotlin class).
Definition DEX/Class.hpp:36
Class which parses a DEX file to produce a DEX::File object.
Definition DEX/Parser.hpp:38
Class & cls()
IF the current type is a TYPES::CLASS, return the associated DEX::CLASS. Otherwise the returned value...
const PRIMITIVES & primitive() const
Class * cls_
Definition DEX/Type.hpp:105
PRIMITIVES
Definition DEX/Type.hpp:44
@ CHAR
Definition DEX/Type.hpp:49
@ INT
Definition DEX/Type.hpp:50
@ SHORT
Definition DEX/Type.hpp:48
@ LONG
Definition DEX/Type.hpp:51
@ BOOLEAN
Definition DEX/Type.hpp:46
@ BYTE
Definition DEX/Type.hpp:47
@ FLOAT
Definition DEX/Type.hpp:52
@ VOID_T
Definition DEX/Type.hpp:45
@ DOUBLE
Definition DEX/Type.hpp:53
size_t dim() const
Return the array dimension if the current type is an array. Otherwise it returns 0.
void accept(Visitor &visitor) const override
Type(const std::string &mangled)
array_t * array_
Definition DEX/Type.hpp:106
std::vector< Type > array_t
Definition DEX/Type.hpp:56
const Type & underlying_array_type() const
In the case of a TYPES::ARRAY, return the array's type.
PRIMITIVES & primitive()
IF the current type is a TYPES::PRIMITIVE, return the associated PRIMITIVES. Otherwise the returned v...
array_t & array()
IF the current type is a TYPES::ARRAY, return the associated array. Otherwise the returned value is u...
friend std::ostream & operator<<(std::ostream &os, const Type &type)
PRIMITIVES * basic_
Definition DEX/Type.hpp:107
const Class & cls() const
static std::string pretty_name(PRIMITIVES p)
Type & underlying_array_type()
friend class Parser
Definition DEX/Type.hpp:34
const array_t & array() const
TYPES
Definition DEX/Type.hpp:37
@ UNKNOWN
Definition DEX/Type.hpp:38
@ PRIMITIVE
Definition DEX/Type.hpp:39
@ CLASS
Definition DEX/Type.hpp:40
@ ARRAY
Definition DEX/Type.hpp:41
TYPES type() const
Whether it is a primitive type, a class, ...
Definition Visitor.hpp:210
Definition DEX/Class.hpp:30
LIEF namespace.
Definition Abstract/Binary.hpp:40
#define LIEF_API
Definition visibility.h:41