X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=type.h;h=30050da4025c017688e0db81e1d0c99cf26fefb9;hb=2f4d5b48891698c9c271382559f5e0380f5431b4;hp=23f3d2c3361025ef76fb94155154cad76375db48;hpb=087130404a59dcdd95aa0d7ac7feec2793e9ce87;p=cparser diff --git a/type.h b/type.h index 23f3d2c..30050da 100644 --- a/type.h +++ b/type.h @@ -5,7 +5,7 @@ #include #include "symbol.h" -typedef struct type_t type_t; +typedef struct type_base_t type_base_t; typedef struct atomic_type_t atomic_type_t; typedef struct pointer_type_t pointer_type_t; typedef struct function_parameter_t function_parameter_t; @@ -16,6 +16,7 @@ typedef struct builtin_type_t builtin_type_t; typedef struct array_type_t array_type_t; typedef struct typedef_type_t typedef_type_t; typedef struct typeof_type_t typeof_type_t; +typedef union type_t type_t; void init_types(void); void exit_types(void); @@ -29,6 +30,8 @@ void print_type(type_t *type); void print_type_ext(type_t *type, const symbol_t *symbol, const context_t *context); +void print_type_qualifiers(unsigned qualifiers); + void print_enum_definition(const declaration_t *declaration); void print_compound_definition(const declaration_t *declaration); @@ -39,14 +42,16 @@ void type_set_output(FILE *out); void inc_type_visited(void); -void set_print_compound_entries(bool enabled); - - /** * returns true if type contains integer numbers */ bool is_type_integer(const type_t *type); +/** + * return true if type contains signed numbers + */ +bool is_type_signed(const type_t *type); + /** * returns true if type contains floating point numbers */ @@ -68,4 +73,13 @@ bool is_type_arithmetic(const type_t *type); */ bool is_type_scalar(const type_t *type); +bool is_type_incomplete(const type_t *type); + +bool types_compatible(const type_t *type1, const type_t *type2); + +bool pointers_compatible(const type_t *type1, const type_t *type2); + +type_t *get_unqualified_type(type_t *type); +type_t *skip_typeref(type_t *type); + #endif