diff options
Diffstat (limited to 'src/analysis')
-rw-r--r-- | src/analysis/exporter.c | 7 | ||||
-rw-r--r-- | src/analysis/variable.c | 109 | ||||
-rw-r--r-- | src/analysis/variable.h | 18 |
3 files changed, 134 insertions, 0 deletions
diff --git a/src/analysis/exporter.c b/src/analysis/exporter.c index edff9d8..676b101 100644 --- a/src/analysis/exporter.c +++ b/src/analysis/exporter.c @@ -148,8 +148,15 @@ static void g_content_exporter_class_init(GContentExporterClass *klass) klass->attribs[RTT_SEGMENT] = pango_attr_list_new(); + /* RTT_STRING */ + klass->attribs[RTT_STRING] = pango_attr_list_new(); + attrib = pango_attr_foreground_new(52224, 32256, 0); + pango_attr_list_insert(klass->attribs[RTT_STRING], attrib); + + /* RTT_VAR_NAME */ + klass->attribs[RTT_VAR_NAME] = pango_attr_list_new(); } diff --git a/src/analysis/variable.c b/src/analysis/variable.c index e24f7e1..87df60e 100644 --- a/src/analysis/variable.c +++ b/src/analysis/variable.c @@ -24,6 +24,9 @@ #include "variable.h" +#include <string.h> + + #include "../common/extstr.h" @@ -39,6 +42,8 @@ struct _GBinVariable GOpenidaType *type; /* Type de la variable */ char *name; /* Désignation humaine */ + GOpenidaType *owner; /* Zone d'appartenance */ + }; /* Variable typée (classe) */ @@ -128,6 +133,110 @@ GBinVariable *g_binary_variable_new(GOpenidaType *type) } +/****************************************************************************** +* * +* Paramètres : var = variable à consulter. * +* * +* Description : Fournit le type d'une variable donnée. * +* * +* Retour : Type de la variable. * +* * +* Remarques : - * +* * +******************************************************************************/ + +GOpenidaType *g_binary_variable_get_vtype(const GBinVariable *var) +{ + return var->type; + +} + + +/****************************************************************************** +* * +* Paramètres : var = variable à consulter. * +* * +* Description : Fournit le nom d'une variable donnée. * +* * +* Retour : Nom de la variable ou NULL si non précisé. * +* * +* Remarques : - * +* * +******************************************************************************/ + +const char *g_binary_variable_get_name(const GBinVariable *var) +{ + return var->name; + +} + + +/****************************************************************************** +* * +* Paramètres : var = variable à consulter. * +* name = désignation à associer à la variable, voire NULL. * +* * +* Description : Définit le nom d'une variable donnée. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_binary_variable_set_name(GBinVariable *var, const char *name) +{ + if (var->name != NULL) + free(var->name); + + if (name == NULL) var->name = NULL; + else var->name = strdup(name); + +} + + +/****************************************************************************** +* * +* Paramètres : var = variable à consulter. * +* * +* Description : Fournit la zone d'appartenance d'une variable donnée. * +* * +* Retour : Zone d'appartenance de la variable ou NULL. * +* * +* Remarques : - * +* * +******************************************************************************/ + +GOpenidaType *g_binary_variable_get_owner(const GBinVariable *var) +{ + return var->owner; + +} + + +/****************************************************************************** +* * +* Paramètres : var = variable à consulter. * +* owner = type identifiant la zone d'appartenance. * +* * +* Description : Définit la zone d'appartenance d'une variable donnée. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_binary_variable_set_owner(GBinVariable *var, GOpenidaType *owner) +{ + var->owner = owner; + +} + + + + + diff --git a/src/analysis/variable.h b/src/analysis/variable.h index ab5a037..88e2b91 100644 --- a/src/analysis/variable.h +++ b/src/analysis/variable.h @@ -57,8 +57,26 @@ GType g_binary_variable_get_type(void); /* Crée une représentation de variable de type donné. */ GBinVariable *g_binary_variable_new(GOpenidaType *); +/* Fournit le type d'une variable donnée. */ +GOpenidaType *g_binary_variable_get_vtype(const GBinVariable *); +/* Fournit le nom d'une variable donnée. */ +const char *g_binary_variable_get_name(const GBinVariable *); +/* Définit le nom d'une variable donnée. */ +void g_binary_variable_set_name(GBinVariable *, const char *); + +/* Fournit la zone d'appartenance d'une variable donnée. */ +GOpenidaType *g_binary_variable_get_owner(const GBinVariable *); + +/* Définit la zone d'appartenance d'une variable donnée. */ +void g_binary_variable_set_owner(GBinVariable *, GOpenidaType *); + + + + + +/* TODO : remme */ /* Décrit la variable donnée sous forme de caractères. */ char *g_binary_variable_to_string(const GBinVariable *); |