diff options
Diffstat (limited to 'src/analysis/scan/expr.c')
-rw-r--r-- | src/analysis/scan/expr.c | 97 |
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; |