diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2021-03-07 17:52:38 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2021-03-07 17:52:38 (GMT) |
commit | 7a60504691ebd8b914592e60990cc3526cf26e29 (patch) | |
tree | 8093ae850e6dc720296c71deee3c3eb0a5763ed1 /src/analysis/type.h | |
parent | a79d209385fca4e74a6a85b2386be71ec23057bb (diff) |
Compact data type definitions.
Diffstat (limited to 'src/analysis/type.h')
-rw-r--r-- | src/analysis/type.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/analysis/type.h b/src/analysis/type.h index f21c008..819af38 100644 --- a/src/analysis/type.h +++ b/src/analysis/type.h @@ -51,13 +51,23 @@ typedef enum _TypeQualifier TQF_NONE = (0 << 0), /* Néant */ TQF_RESTRICT = (1 << 0), /* restrict (C99) */ TQF_VOLATILE = (1 << 1), /* volatile */ - TQF_CONST = (1 << 2) /* const */ + TQF_CONST = (1 << 2), /* const */ + + TQF_ALL = ((1 << 3) - 1) /* Masque de qualificatifs */ } TypeQualifier; +/* Propriétés particulières d'un type */ +typedef enum _TypeFlag +{ + TFL_NONE = (0 << 0), /* Aucune propriété */ + TFL_SINGLETON_SOON = (1 << 0), /* Singleton en devenir */ + TFL_SINGLETON = (1 << 1), /* Singleton effectif */ + + TFL_USER_LOW_BIT = (1 << 2), /* Premier bit libre */ + TFL_USER_HIGH_BIT = (1 << 6) /* Dernier bit libre */ -/* Masque de tous les qualificatifs */ -#define TQF_ALL ((1 << 3) - 1) +} TypeFlag; /* Indique le type défini pour un type quelconque. */ @@ -82,17 +92,26 @@ void g_data_type_add_qualifier(GDataType *, TypeQualifier); TypeQualifier g_data_type_get_qualifiers(const GDataType *); /* Définit le groupe d'appartenance d'un type donné. */ -void g_data_type_set_namespace(GDataType *, GDataType *, char *); +bool g_data_type_set_namespace(GDataType *, GDataType *, const char *); /* Fournit le groupe d'appartenance d'un type donné. */ GDataType *g_data_type_get_namespace(const GDataType *); /* Fournit la chaîne de séparation entre deux entités. */ -const char *g_data_type_get_namespace_separator(const GDataType *); +char *g_data_type_get_namespace_separator(const GDataType *); /* Indique si le type assure une gestion des espaces de noms. */ bool g_data_type_handle_namespaces(const GDataType *); +/* Définit l'ensemble des fanions d'une instance de type. */ +void g_data_type_set_flags(GDataType *, TypeFlag); + +/* Ajoute un fanion à une instance de type. */ +void g_data_type_add_flag(GDataType *, TypeFlag); + +/* Fournit les fanions associés à une instance de type. */ +TypeFlag g_data_type_get_flags(const GDataType *); + /* Indique si le type est un pointeur. */ bool g_data_type_is_pointer(const GDataType *); |