* @see type.h tpop_t.h tpop.h
*/
+/** class attributes */
typedef struct {
entity **members; /**< fields and methods of this class */
type **subtypes; /**< direct subtypes */
int dfn; /**< number used for 'instanceof' operator */
} cls_attr;
+/** struct attributs */
typedef struct {
entity **members; /**< fields of this struct. No method entities
allowed. */
} stc_attr;
+/** method attributes */
typedef struct {
int n_params; /**< number of parameters */
type **param_type; /**< code generation needs this information.
variadicity variadicity; /**< variadicity of the method */
} mtd_attr;
+/** union attributs */
typedef struct {
int n_types;
/* type **unioned_type; * a list of unioned types. */
} uni_attr;
+/** array attributs */
typedef struct {
int n_dimensions; /**< Number of array dimensions. */
ir_node **lower_bound; /**< Lower bounds of dimensions. Usually all 0. */
element selection with Sel. */
} arr_attr;
+/** enum attributs */
typedef struct {
int n_enums; /**< Number of enumerators. */
tarval **enumer; /**< Contains all constants that represent a member
the source program */
} enm_attr;
+/** pointer attributs */
typedef struct {
type *points_to; /**< The type of the enitity the pointer points to. */
} ptr_attr;
} id_attr;
*/
-
+/** general type attributs */
typedef union {
cls_attr ca;
stc_attr sa;
ptr_attr pa;
} tp_attr;
+/** the structure of a type */
struct type {
firm_kind kind;
tp_op *type_op;
};
/**
+ * Creates a new type representation:
*
- * creates a new type representation
* @param type_op - the kind of this type. May not be type_id.
* @param mode - the mode to be used for this type, may be NULL
* @param name - an ident for the name of this type.