summaryrefslogtreecommitdiff
path: root/src/analysis/variable.c
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/variable.c
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/variable.c')
-rw-r--r--src/analysis/variable.c109
1 files changed, 109 insertions, 0 deletions
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;
+
+}
+
+
+
+
+