summaryrefslogtreecommitdiff
path: root/src/analysis/type.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/type.h')
-rw-r--r--src/analysis/type.h29
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 *);