summaryrefslogtreecommitdiff
path: root/src/analysis/scan/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/scan/expr.c')
-rw-r--r--src/analysis/scan/expr.c97
1 files changed, 8 insertions, 89 deletions
diff --git a/src/analysis/scan/expr.c b/src/analysis/scan/expr.c
index 2b00544..332619d 100644
--- a/src/analysis/scan/expr.c
+++ b/src/analysis/scan/expr.c
@@ -51,9 +51,6 @@ static void g_scan_expression_dispose(GScanExpression *);
/* Procède à la libération totale de la mémoire. */
static void g_scan_expression_finalize(GScanExpression *);
-/* Reproduit une expression en place dans une nouvelle instance. */
-static void g_scan_expression_copy(GScanExpression *, const GScanExpression *);
-
/* Réalise l'intersection entre deux ensembles. */
static GScanExpression *_g_scan_expression_intersect(GScanExpression *, const GScanExpression *, GScanContext *, GScanScope *);
@@ -98,7 +95,6 @@ static void g_scan_expression_class_init(GScanExpressionClass *klass)
object->dispose = (GObjectFinalizeFunc/* ! */)g_scan_expression_dispose;
object->finalize = (GObjectFinalizeFunc)g_scan_expression_finalize;
- //klass->copy = g_scan_expression_copy;
klass->intersect = _g_scan_expression_intersect;
}
@@ -183,7 +179,7 @@ static void g_scan_expression_finalize(GScanExpression *expr)
/******************************************************************************
* *
* Paramètres : expr = instance à initialiser pleinement. *
-* vtype = type de valeur associée par l'expression. *
+* state = état de réduction initial associé par l'expression. *
* *
* Description : Met en place une expression d'évaluation pour analyse. *
* *
@@ -193,36 +189,13 @@ static void g_scan_expression_finalize(GScanExpression *expr)
* *
******************************************************************************/
-bool g_scan_expression_create(GScanExpression *expr, ExprValueType vtype)
+bool g_scan_expression_create(GScanExpression *expr, ScanReductionState state)
{
bool result; /* Bilan à retourner */
result = true;
- expr->value_type = vtype;
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : expr = expression à consulter. *
-* *
-* Description : Indique le type de valeur portée par une expression. *
-* *
-* Retour : Type de valeur associée à l'expression. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-ExprValueType g_scan_expression_get_value_type(const GScanExpression *expr)
-{
- ExprValueType result; /* Type à retourner */
-
- result = expr->value_type;
+ expr->state = state;
return result;
@@ -233,73 +206,19 @@ ExprValueType g_scan_expression_get_value_type(const GScanExpression *expr)
* *
* Paramètres : expr = expression à consulter. *
* *
-* Description : Vérifie la validité d'une expression. *
-* *
-* Retour : Validation de l'usage de l'expression. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool g_scan_expression_check_validity(const GScanExpression *expr)
-{
- bool result; /* Bilan à retourner */
- GScanExpressionClass *class; /* Classe à activer */
-
- class = G_SCAN_EXPRESSION_GET_CLASS(expr);
-
- result = class->check(expr);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : dest = emplacement d'enregistrement à constituer. [OUT] *
-* src = expression source à copier. *
-* *
-* Description : Reproduit une expression en place dans une nouvelle instance.*
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void g_scan_expression_copy(GScanExpression *dest, const GScanExpression *src)
-{
- dest->value_type = src->value_type;
-
-}
-
-
-/******************************************************************************
+* Description : Indique l'état de réduction d'une expression. *
* *
-* Paramètres : expr = expression à copier. *
-* *
-* Description : Reproduit une expression en place dans une nouvelle instance.*
-* *
-* Retour : Nouvelle instance d'expression. *
+* Retour : Etat courant associé à l'expression. *
* *
* Remarques : - *
* *
******************************************************************************/
-GScanExpression *g_scan_expression_duplicate(const GScanExpression *expr)
+ScanReductionState g_scan_expression_get_state(const GScanExpression *expr)
{
- GScanExpression *result; /* Instance copiée à retourner */
- GType type; /* Type d'objet à copier */
- GScanExpressionClass *class; /* Classe à activer */
-
- type = G_TYPE_FROM_INSTANCE(expr);
-
- result = g_object_new(type, NULL);
-
- class = G_SCAN_EXPRESSION_GET_CLASS(expr);
+ ScanReductionState result; /* Etat à retourner */
- //class->copy(result, expr);
+ result = expr->state;
return result;