All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
type.h File Reference
This graph shows which files directly or indirectly include this file:

Data Structures

struct  specifier_t
struct  ty_array_s
struct  ty_fldptr_s
struct  ty_func_s
struct  type_s


typedef struct ty_array_s ty_array_t
typedef struct ty_fldptr_s ty_fldptr_t
typedef struct ty_func_s ty_func_t
typedef struct type_s type_t


enum  ty_meta_e {
  ty_none, ty_struct, ty_union, ty_enum,
  ty_array, ty_class


type_tappend_type (type_t *type, type_t *new)
 Append a type to the end of a type chain. More...
type_tarray_type (type_t *aux, int size)
type_tbased_array_type (type_t *aux, int base, int top)
void chain_initial_types (void)
void chain_type (type_t *type)
void clear_typedefs (void)
const char * encode_params (const type_t *type)
void encode_type (struct dstring_s *encoding, const type_t *type)
type_tfield_type (type_t *aux)
type_tfind_type (type_t *new)
void free_type (type_t *type)
void init_types (void)
int is_array (const type_t *type)
int is_enum (const type_t *type)
int is_float (const type_t *type)
int is_integral (const type_t *type)
int is_math (const type_t *type)
int is_pointer (const type_t *type)
int is_scalar (const type_t *type)
int is_struct (const type_t *type)
int is_void (const type_t *type)
etype_t low_level_type (type_t *type)
type_tnew_type (void)
void new_typedef (const char *name, type_t *type)
type_tpointer_type (type_t *aux)
void print_type (const type_t *type)
void print_type_str (struct dstring_s *str, const type_t *type)
int type_assignable (const type_t *dst, const type_t *src)
const char * type_get_encoding (const type_t *type)
int type_size (const type_t *type)


struct symtab_squaternion_struct
type_t type_entity
type_t type_field
type_t type_float
type_t type_floatfield
type_t type_function
type_t type_integer
type_t type_invalid
type_t type_param
type_t type_pointer
type_t type_quaternion
type_t type_short
type_t type_string
type_t type_type_encodings
type_t type_uinteger
type_t type_va_list
type_t type_vector
type_t type_void
type_t type_zero
struct symtab_svector_struct

Typedef Documentation

typedef struct ty_array_s ty_array_t
typedef struct ty_fldptr_s ty_fldptr_t
typedef struct ty_func_s ty_func_t
typedef struct type_s type_t

Enumeration Type Documentation

enum ty_meta_e

func/field/pointer or not used


Function Documentation

type_t* append_type ( type_t type,
type_t new 

Append a type to the end of a type chain.

The type chain must be made up of only field, pointer, function and array types, as other types do not have auxiliary type fields.

typeThe type chain to which the type will be appended.
newThe type to be appended. May be any type.
The type chain with the type appended at the deepest level.
type_t* array_type ( type_t aux,
int  size 
type_t* based_array_type ( type_t aux,
int  base,
int  top 
void chain_initial_types ( void  )
void chain_type ( type_t type)
void clear_typedefs ( void  )
const char* encode_params ( const type_t type)
void encode_type ( struct dstring_s encoding,
const type_t type 
type_t* field_type ( type_t aux)
type_t* find_type ( type_t new)
void free_type ( type_t type)
void init_types ( void  )
int is_array ( const type_t type)
int is_enum ( const type_t type)
int is_float ( const type_t type)
int is_integral ( const type_t type)
int is_math ( const type_t type)
int is_pointer ( const type_t type)
int is_scalar ( const type_t type)
int is_struct ( const type_t type)
int is_void ( const type_t type)
etype_t low_level_type ( type_t type)
type_t* new_type ( void  )
void new_typedef ( const char *  name,
type_t type 
type_t* pointer_type ( type_t aux)
void print_type ( const type_t type)
void print_type_str ( struct dstring_s str,
const type_t type 
int type_assignable ( const type_t dst,
const type_t src 
const char* type_get_encoding ( const type_t type)
int type_size ( const type_t type)

Variable Documentation

struct symtab_s* quaternion_struct
type_t* type_default
type_t type_entity
type_t type_field
type_t type_float
type_t type_floatfield
type_t type_function
type_t type_integer
type_t type_invalid
type_t* type_nil
type_t type_param
type_t type_pointer
type_t type_quaternion
type_t type_short
type_t type_string
type_t type_type_encodings
type_t type_uinteger
type_t type_va_list
type_t type_vector
type_t type_void
type_t type_zero
struct symtab_s* vector_struct