tan
0.0.1
|
Public Member Functions | |
Type * | get_element_type () |
int | array_size () |
bool | is_array () const override |
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_pointer () 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 | |
ArrayType (Type *element_type, int size) | |
Friends | |
class | Type |
Additional Inherited Members | |
Static Public Member Functions inherited from tanlang::Type | |
static PrimitiveType * | GetVoidType () |
static PrimitiveType * | GetBoolType () |
static PrimitiveType * | GetCharType () |
static PrimitiveType * | GetIntegerType (size_t bit_size, bool is_unsigned) |
static PrimitiveType * | GetFloatType (size_t bit_size) |
static StringType * | GetStringType () |
static PointerType * | GetPointerType (Type *pointee) |
static ArrayType * | GetArrayType (Type *element_type, int size) |
static FunctionType * | GetFunctionType (Type *ret_type, const vector< Type * > &arg_types) |
static StructType * | GetStructType (StructDecl *decl) |
static TypeRef * | GetTypeRef (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 StringType * | STRING_TYPE = new StringType() |
static umap< Type *, PointerType * > | POINTER_TYPE_CACHE {} |
static umap< pair< Type *, int >, ArrayType *, PairHash > | ARRAY_TYPE_CACHE {} |
static umap< str, Type * > | NAMED_TYPE_CACHE {} |