QuakeForge  0.7.2.210-815cf
 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
 

Typedefs

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
 

Enumerations

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

Functions

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)
 

Variables

struct symtab_squaternion_struct
 
type_ttype_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_ttype_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_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
Enumerator
ty_none 

func/field/pointer or not used

ty_struct 
ty_union 
ty_enum 
ty_array 
ty_class 

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.

Parameters
typeThe type chain to which the type will be appended.
newThe type to be appended. May be any type.
Returns
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