tan  0.0.1
tanlang::PointerType Class Reference
Inheritance diagram for tanlang::PointerType:
Collaboration diagram for tanlang::PointerType:

Public Member Functions

bool is_pointer () const override
 
Typeget_pointee ()
 
int get_align_bits () override
 
int get_size_bits () override
 
vector< Type * > children () const override
 
- Public Member Functions inherited from tanlang::Type
virtual bool is_primitive () const
 
virtual bool is_array () const
 
virtual bool is_string () const
 
virtual bool is_struct () const
 
virtual bool is_function () const
 
virtual bool is_ref () const
 
virtual bool is_float () const
 
virtual bool is_int () const
 
virtual bool is_num () const
 
virtual bool is_unsigned () const
 
virtual bool is_bool () const
 
virtual bool is_void () const
 
virtual bool is_char () const
 
bool is_canonical () const
 
const str & get_typename () const
 

Protected Member Functions

 PointerType (Type *pointee_type)
 

Friends

class Type
 

Additional Inherited Members

- Static Public Member Functions inherited from tanlang::Type
static PrimitiveTypeGetVoidType ()
 
static PrimitiveTypeGetBoolType ()
 
static PrimitiveTypeGetCharType ()
 
static PrimitiveTypeGetIntegerType (size_t bit_size, bool is_unsigned)
 
static PrimitiveTypeGetFloatType (size_t bit_size)
 
static StringTypeGetStringType ()
 
static PointerTypeGetPointerType (Type *pointee)
 
static ArrayTypeGetArrayType (Type *element_type, int size)
 
static FunctionTypeGetFunctionType (Type *ret_type, const vector< Type * > &arg_types)
 
static StructTypeGetStructType (StructDecl *decl)
 
static TypeRefGetTypeRef (const str &name)
 
static bool IsCanonical (const Type &type)
 A composite type is canonical only if its subtype(s) are also canonical. A non-composite type is canonical only if it's not a type reference. More...
 
- Static Public Attributes inherited from tanlang::Type
static vector< str > ALL_TYPE_NAMES
 
- Protected Attributes inherited from tanlang::Type
str _type_name {}
 
- Static Protected Attributes inherited from tanlang::Type
static StringTypeSTRING_TYPE = new StringType()
 
static umap< Type *, PointerType * > POINTER_TYPE_CACHE {}
 
static umap< pair< Type *, int >, ArrayType *, PairHashARRAY_TYPE_CACHE {}
 
static umap< str, Type * > NAMED_TYPE_CACHE {}
 

Detailed Description

Definition at line 174 of file type.h.


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