diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-04-18 00:31:49 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-04-18 00:31:49 (GMT) |
commit | ef29fbc801e23f547b9ee7666b713bcf32d7e787 (patch) | |
tree | fb7466a56e2246c53a51d0475c1b5fc70ef3b8f9 /src/analysis/variable.h | |
parent | 49468379e912806400c5874f8e359cb934516228 (diff) |
Improved the Itanium demangler.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@152 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/variable.h')
-rw-r--r-- | src/analysis/variable.h | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/src/analysis/variable.h b/src/analysis/variable.h index f2bbb87..ab5a037 100644 --- a/src/analysis/variable.h +++ b/src/analysis/variable.h @@ -29,6 +29,46 @@ #include <glib-object.h> +#include "type.h" + + + +/* ------------------- ASSOCIATION D'UN TYPE ET D'UNE DESIGNATION ------------------- */ + + +#define G_TYPE_BIN_VARIABLE g_binary_variable_get_type() +#define G_BINARY_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_binary_variable_get_type(), GBinVariable)) +#define G_IS_BIN_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_binary_variable_get_type())) +#define G_BINARY_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_BIN_VARIABLE, GBinVariableClass)) +#define G_IS_BIN_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_BIN_VARIABLE)) +#define G_BINARY_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_BIN_VARIABLE, GBinVariableClass)) + + +/* Base de variable (instance) */ +typedef struct _GBinVariable GBinVariable; + +/* Base de variable (classe) */ +typedef struct _GBinVariableClass GBinVariableClass; + + +/* Indique le type défini pour une base de variable. */ +GType g_binary_variable_get_type(void); + +/* Crée une représentation de variable de type donné. */ +GBinVariable *g_binary_variable_new(GOpenidaType *); + + + + +/* Décrit la variable donnée sous forme de caractères. */ +char *g_binary_variable_to_string(const GBinVariable *); + + + + + + + /* -------------------- BASE DE VARIABLES OU VARIABLES INCONNUES -------------------- */ @@ -79,6 +119,7 @@ typedef struct _variable variable; /* Liste des types de base existants */ +#if 0 typedef enum _BaseType { BTP_VOID, /* void */ @@ -111,7 +152,7 @@ typedef enum _BaseType BTP_OTHER /* Extension utilisateur */ } BaseType; - +#endif /* Variable repésentant un argument ou un type de retour */ @@ -144,6 +185,7 @@ typedef struct _complex_variable complex_variable; /* Type de ces variables */ +#if 0 typedef enum _ClassEnumType { CET_UNKNOWN, /* Statut inconnu */ @@ -152,6 +194,7 @@ typedef enum _ClassEnumType CET_CLASS /* Classe */ } ClassEnumType; +#endif /* Représentation des classes et des énumérations */ @@ -167,6 +210,7 @@ complex_variable *create_class_enum_var(char *); /* Cas d'encapsulation possibles */ +#if 0 typedef enum _EncapsulationType { ECT_POINTER, /* Pointeur */ @@ -176,6 +220,7 @@ typedef enum _EncapsulationType ECT_IMAGINARY /* Imaginaire (C 2000) */ } EncapsulationType; +#endif /* Représentation des variables dérivées */ |