diff options
Diffstat (limited to 'src/analysis/scan/exprs/set.c')
-rw-r--r-- | src/analysis/scan/exprs/set.c | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/src/analysis/scan/exprs/set.c b/src/analysis/scan/exprs/set.c index d76af4d..438e7e3 100644 --- a/src/analysis/scan/exprs/set.c +++ b/src/analysis/scan/exprs/set.c @@ -54,10 +54,10 @@ static void g_scan_generic_set_finalize(GScanGenericSet *); /* Réduit une expression à une forme plus simple. */ -static ScanReductionState g_scan_generic_set_reduce(GScanGenericSet *, GScanContext *, GScanScope *, GScanExpression **); +static ScanReductionState g_scan_generic_set_reduce(const GScanGenericSet *, GScanContext *, GScanScope *, GScanExpression **); /* Réduit une expression à une forme booléenne. */ -static bool g_scan_generic_set_reduce_to_boolean(GScanGenericSet *, GScanContext *, GScanScope *, GScanExpression **); +static bool g_scan_generic_set_reduce_to_boolean(const GScanGenericSet *, GScanContext *, GScanScope *, GScanExpression **); /* Dénombre les éléments portés par une expression. */ static bool g_scan_generic_set_count_items(const GScanGenericSet *, GScanContext *, size_t *); @@ -178,7 +178,7 @@ static void g_scan_generic_set_finalize(GScanGenericSet *set) * * * Paramètres : - * * * -* Description : Met en place un ensemble d'éléments homogènes ou hétérogènes.* +* Description : Constitue un ensemble d'éléments homogènes ou hétérogènes. * * * * Retour : Expression mise en place. * * * @@ -192,6 +192,32 @@ GScanExpression *g_scan_generic_set_new(void) result = g_object_new(G_TYPE_SCAN_GENERIC_SET, NULL); + if (!g_scan_generic_set_create(G_SCAN_GENERIC_SET(result))) + g_clear_object(&result); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : set = instance à initialiser pleinement. * +* * +* Description : Met en place un ensemble d'éléments homogènes ou hétérogènes.* +* * +* Retour : Bilan de l'opération. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool g_scan_generic_set_create(GScanGenericSet *set) +{ + bool result; /* Bilan à retourner */ + + result = g_scan_expression_create(G_SCAN_EXPRESSION(set), SRS_PENDING); + return result; } @@ -241,7 +267,7 @@ void g_scan_generic_set_add_item(GScanGenericSet *set, GScanExpression *item) * * ******************************************************************************/ -static ScanReductionState g_scan_generic_set_reduce(GScanGenericSet *expr, GScanContext *ctx, GScanScope *scope, GScanExpression **out) +static ScanReductionState g_scan_generic_set_reduce(const GScanGenericSet *expr, GScanContext *ctx, GScanScope *scope, GScanExpression **out) { ScanReductionState result; /* Etat synthétisé à retourner */ size_t i; /* Boucle de parcours #1 */ @@ -312,7 +338,7 @@ static ScanReductionState g_scan_generic_set_reduce(GScanGenericSet *expr, GScan * * ******************************************************************************/ -static bool g_scan_generic_set_reduce_to_boolean(GScanGenericSet *expr, GScanContext *ctx, GScanScope *scope, GScanExpression **out) +static bool g_scan_generic_set_reduce_to_boolean(const GScanGenericSet *expr, GScanContext *ctx, GScanScope *scope, GScanExpression **out) { bool result; /* Bilan à retourner */ |