diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-05-17 00:28:23 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-05-17 00:28:23 (GMT) |
commit | 7adb4243ad629554e496de173977721a8a5d0110 (patch) | |
tree | 18f50fcdab35e057b3a1a10e7e0c1f141e89eb39 /src/analysis | |
parent | 118a668adbf6ca9d4c549618e54f58330f46ce58 (diff) |
Given more details for each operand relative to one DEX pool.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@156 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
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 *); |