summaryrefslogtreecommitdiff
path: root/src/analysis
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2010-05-17 00:28:23 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2010-05-17 00:28:23 (GMT)
commit7adb4243ad629554e496de173977721a8a5d0110 (patch)
tree18f50fcdab35e057b3a1a10e7e0c1f141e89eb39 /src/analysis
parent118a668adbf6ca9d4c549618e54f58330f46ce58 (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.c7
-rw-r--r--src/analysis/variable.c109
-rw-r--r--src/analysis/variable.h18
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 *);