Skip to content

Commit 74fb889

Browse files
authored
Merge pull request #445 from bazsi/filterx-expr-constructor-improvements
Filterx expr constructor improvements
2 parents 07a6af0 + b293f41 commit 74fb889

23 files changed

+74
-93
lines changed

lib/filterx/expr-assign.c

+9-10
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,6 @@ _assign_eval(FilterXExpr *s)
9191
return _assign(self, value);
9292
}
9393

94-
FilterXExpr *
95-
filterx_nullv_assign_new(FilterXExpr *lhs, FilterXExpr *rhs)
96-
{
97-
FilterXBinaryOp *self = g_new0(FilterXBinaryOp, 1);
98-
99-
filterx_binary_op_init_instance(self, "nullv_assign", lhs, rhs);
100-
self->super.eval = _nullv_assign_eval;
101-
self->super.ignore_falsy_result = TRUE;
102-
return &self->super;
103-
}
10494

10595
/* NOTE: takes the object reference */
10696
FilterXExpr *
@@ -113,3 +103,12 @@ filterx_assign_new(FilterXExpr *lhs, FilterXExpr *rhs)
113103
self->super.ignore_falsy_result = TRUE;
114104
return &self->super;
115105
}
106+
107+
FilterXExpr *
108+
filterx_nullv_assign_new(FilterXExpr *lhs, FilterXExpr *rhs)
109+
{
110+
FilterXExpr *self = filterx_assign_new(lhs, rhs);
111+
self->type = "nullv_assign";
112+
self->eval = _nullv_assign_eval;
113+
return self;
114+
}

lib/filterx/expr-comparison.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ _eval_based_on_compare_mode(FilterXExpr *expr, gint compare_mode)
198198
}
199199

200200
static FilterXObject *
201-
_eval(FilterXExpr *s)
201+
_eval_comparison(FilterXExpr *s)
202202
{
203203
FilterXComparison *self = (FilterXComparison *) s;
204204

@@ -250,7 +250,7 @@ _optimize(FilterXExpr *s)
250250
self->literal_rhs = _eval_based_on_compare_mode(self->super.rhs, compare_mode);
251251

252252
if (self->literal_lhs && self->literal_rhs)
253-
return filterx_literal_new(_eval(&self->super.super));
253+
return filterx_literal_new(_eval_comparison(&self->super.super));
254254

255255
return NULL;
256256
}
@@ -273,7 +273,7 @@ filterx_comparison_new(FilterXExpr *lhs, FilterXExpr *rhs, gint operator)
273273

274274
filterx_binary_op_init_instance(&self->super, "comparison", lhs, rhs);
275275
self->super.super.optimize = _optimize;
276-
self->super.super.eval = _eval;
276+
self->super.super.eval = _eval_comparison;
277277
self->super.super.free_fn = _filterx_comparison_free;
278278
self->operator = operator;
279279

lib/filterx/expr-compound.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ _eval_exprs(FilterXCompoundExpr *self, FilterXObject **result)
107107
}
108108

109109
static FilterXObject *
110-
_eval(FilterXExpr *s)
110+
_eval_compound(FilterXExpr *s)
111111
{
112112
FilterXCompoundExpr *self = (FilterXCompoundExpr *) s;
113113
FilterXObject *result = NULL;
@@ -220,7 +220,7 @@ filterx_compound_expr_new(gboolean return_value_of_last_expr)
220220
FilterXCompoundExpr *self = g_new0(FilterXCompoundExpr, 1);
221221

222222
filterx_expr_init_instance(&self->super, "compound");
223-
self->super.eval = _eval;
223+
self->super.eval = _eval_compound;
224224
self->super.optimize = _optimize;
225225
self->super.init = _init;
226226
self->super.deinit = _deinit;

lib/filterx/expr-condition.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ _free(FilterXExpr *s)
8686
}
8787

8888
static FilterXObject *
89-
_eval(FilterXExpr *s)
89+
_eval_conditional(FilterXExpr *s)
9090
{
9191
FilterXConditional *self = (FilterXConditional *) s;
9292
FilterXObject *condition_value = filterx_expr_eval(self->condition);
@@ -201,7 +201,7 @@ filterx_conditional_new(FilterXExpr *condition)
201201
{
202202
FilterXConditional *self = g_new0(FilterXConditional, 1);
203203
filterx_expr_init_instance(&self->super, "conditional");
204-
self->super.eval = _eval;
204+
self->super.eval = _eval_conditional;
205205
self->super.optimize = _optimize;
206206
self->super.init = _init;
207207
self->super.deinit = _deinit;
@@ -215,7 +215,7 @@ FilterXExpr *
215215
filterx_conditional_find_tail(FilterXExpr *s)
216216
{
217217
/* check if this is a FilterXConditional instance */
218-
if (s->eval != _eval)
218+
if (s->eval != _eval_conditional)
219219
return NULL;
220220

221221
FilterXConditional *self = (FilterXConditional *) s;

lib/filterx/expr-done.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include "filterx/object-primitive.h"
2929

3030
static FilterXObject *
31-
_eval(FilterXExpr *s)
31+
_eval_done(FilterXExpr *s)
3232
{
3333
FilterXEvalContext *context = filterx_eval_get_context();
3434
context->eval_control_modifier = FXC_DONE;
@@ -41,7 +41,7 @@ filterx_expr_done(void)
4141
{
4242
FilterXExpr *self = g_new0(FilterXExpr, 1);
4343
filterx_expr_init_instance(self, "done");
44-
self->eval = _eval;
44+
self->eval = _eval_done;
4545

4646
return self;
4747
}

lib/filterx/expr-drop.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include "filterx/object-primitive.h"
2828

2929
static FilterXObject *
30-
_eval(FilterXExpr *s)
30+
_eval_drop(FilterXExpr *s)
3131
{
3232
FilterXEvalContext *context = filterx_eval_get_context();
3333
context->eval_control_modifier = FXC_DROP;
@@ -40,7 +40,7 @@ filterx_expr_drop_msg(void)
4040
{
4141
FilterXExpr *self = g_new0(FilterXExpr, 1);
4242
filterx_expr_init_instance(self, "drop");
43-
self->eval = _eval;
43+
self->eval = _eval_drop;
4444

4545
return self;
4646
}

lib/filterx/expr-generator.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ filterx_generator_set_fillable(FilterXExpr *s, FilterXExpr *fillable)
3434
}
3535

3636
static FilterXObject *
37-
_eval(FilterXExpr *s)
37+
_eval_generator(FilterXExpr *s)
3838
{
3939
FilterXExprGenerator *self = (FilterXExprGenerator *) s;
4040

@@ -52,7 +52,7 @@ _eval(FilterXExpr *s)
5252
gboolean
5353
filterx_expr_is_generator(FilterXExpr *s)
5454
{
55-
return s && s->eval == _eval;
55+
return s && s->eval == _eval_generator;
5656
}
5757

5858
FilterXExpr *
@@ -71,7 +71,7 @@ filterx_generator_init_instance(FilterXExpr *s)
7171
s->optimize = filterx_generator_optimize_method;
7272
s->init = filterx_generator_init_method;
7373
s->deinit = filterx_generator_deinit_method;
74-
s->eval = _eval;
74+
s->eval = _eval_generator;
7575
s->ignore_falsy_result = TRUE;
7676
}
7777

lib/filterx/expr-get-subscript.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ typedef struct _FilterXGetSubscript
3333
} FilterXGetSubscript;
3434

3535
static FilterXObject *
36-
_eval(FilterXExpr *s)
36+
_eval_get_subscript(FilterXExpr *s)
3737
{
3838
FilterXGetSubscript *self = (FilterXGetSubscript *) s;
3939
FilterXObject *result = NULL;
@@ -158,7 +158,7 @@ filterx_get_subscript_new(FilterXExpr *operand, FilterXExpr *key)
158158
FilterXGetSubscript *self = g_new0(FilterXGetSubscript, 1);
159159

160160
filterx_expr_init_instance(&self->super, "get_subscript");
161-
self->super.eval = _eval;
161+
self->super.eval = _eval_get_subscript;
162162
self->super.is_set = _isset;
163163
self->super.unset = _unset;
164164
self->super.optimize = _optimize;

lib/filterx/expr-getattr.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ typedef struct _FilterXGetAttr
3434
} FilterXGetAttr;
3535

3636
static FilterXObject *
37-
_eval(FilterXExpr *s)
37+
_eval_getattr(FilterXExpr *s)
3838
{
3939
FilterXGetAttr *self = (FilterXGetAttr *) s;
4040

@@ -137,7 +137,7 @@ filterx_getattr_new(FilterXExpr *operand, FilterXString *attr_name)
137137
FilterXGetAttr *self = g_new0(FilterXGetAttr, 1);
138138

139139
filterx_expr_init_instance(&self->super, "getattr");
140-
self->super.eval = _eval;
140+
self->super.eval = _eval_getattr;
141141
self->super.unset = _unset;
142142
self->super.is_set = _isset;
143143
self->super.optimize = _optimize;

lib/filterx/expr-isset.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#include "filterx/object-primitive.h"
2626

2727
static FilterXObject *
28-
_eval(FilterXExpr *s)
28+
_eval_isset(FilterXExpr *s)
2929
{
3030
FilterXUnaryOp *self = (FilterXUnaryOp *) s;
3131

@@ -37,6 +37,6 @@ filterx_isset_new(FilterXExpr *expr)
3737
{
3838
FilterXUnaryOp *self = g_new0(FilterXUnaryOp, 1);
3939
filterx_unary_op_init_instance(self, "isset", expr);
40-
self->super.eval = _eval;
40+
self->super.eval = _eval_isset;
4141
return &self->super;
4242
}

lib/filterx/expr-literal.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ typedef struct _FilterXLiteral
2929
} FilterXLiteral;
3030

3131
static FilterXObject *
32-
_eval(FilterXExpr *s)
32+
_eval_literal(FilterXExpr *s)
3333
{
3434
FilterXLiteral *self = (FilterXLiteral *) s;
3535
return filterx_object_ref(self->object);
@@ -50,7 +50,7 @@ filterx_literal_new(FilterXObject *object)
5050
FilterXLiteral *self = g_new0(FilterXLiteral, 1);
5151

5252
filterx_expr_init_instance(&self->super, "literal");
53-
self->super.eval = _eval;
53+
self->super.eval = _eval_literal;
5454
self->super.free_fn = _free;
5555
self->object = object;
5656
return &self->super;
@@ -59,5 +59,5 @@ filterx_literal_new(FilterXObject *object)
5959
gboolean
6060
filterx_expr_is_literal(FilterXExpr *expr)
6161
{
62-
return expr->eval == _eval;
62+
return expr->eval == _eval_literal;
6363
}

lib/filterx/expr-null-coalesce.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ struct _FilterXNullCoalesce
3737
};
3838

3939
static FilterXObject *
40-
_eval(FilterXExpr *s)
40+
_eval_null_coalesce(FilterXExpr *s)
4141
{
4242
FilterXNullCoalesce *self = (FilterXNullCoalesce *) s;
4343

@@ -86,7 +86,7 @@ filterx_null_coalesce_new(FilterXExpr *lhs, FilterXExpr *rhs)
8686
{
8787
FilterXNullCoalesce *self = g_new0(FilterXNullCoalesce, 1);
8888
filterx_binary_op_init_instance(&self->super, "null_coalesce", lhs, rhs);
89-
self->super.super.eval = _eval;
89+
self->super.super.eval = _eval_null_coalesce;
9090
self->super.super.optimize = _optimize;
9191
return &self->super.super;
9292
}

lib/filterx/expr-plus.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ typedef struct FilterXOperatorPlus
3434
} FilterXOperatorPlus;
3535

3636
static FilterXObject *
37-
_eval(FilterXExpr *s)
37+
_eval_plus(FilterXExpr *s)
3838
{
3939
FilterXOperatorPlus *self = (FilterXOperatorPlus *) s;
4040

@@ -72,7 +72,7 @@ _optimize(FilterXExpr *s)
7272
self->literal_rhs = filterx_expr_eval(self->super.rhs);
7373

7474
if (self->literal_lhs && self->literal_rhs)
75-
return filterx_literal_new(_eval(&self->super.super));
75+
return filterx_literal_new(_eval_plus(&self->super.super));
7676
return NULL;
7777
}
7878

@@ -92,7 +92,7 @@ filterx_operator_plus_new(FilterXExpr *lhs, FilterXExpr *rhs)
9292
FilterXOperatorPlus *self = g_new0(FilterXOperatorPlus, 1);
9393
filterx_binary_op_init_instance(&self->super, "plus", lhs, rhs);
9494
self->super.super.optimize = _optimize;
95-
self->super.super.eval = _eval;
95+
self->super.super.eval = _eval_plus;
9696
self->super.super.free_fn = _filterx_operator_plus_free;
9797

9898
return &self->super.super;

lib/filterx/expr-set-subscript.c

+8-16
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,12 @@ _free(FilterXExpr *s)
206206
}
207207

208208
FilterXExpr *
209-
filterx_nullv_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
209+
filterx_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
210210
{
211211
FilterXSetSubscript *self = g_new0(FilterXSetSubscript, 1);
212212

213-
filterx_expr_init_instance(&self->super, "nullv_set_subscript");
214-
self->super.eval = _nullv_set_subscript_eval;
213+
filterx_expr_init_instance(&self->super, "set_subscript");
214+
self->super.eval = _set_subscript_eval;
215215
self->super.optimize = _optimize;
216216
self->super.init = _init;
217217
self->super.deinit = _deinit;
@@ -224,19 +224,11 @@ filterx_nullv_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXEx
224224
}
225225

226226
FilterXExpr *
227-
filterx_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
227+
filterx_nullv_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
228228
{
229-
FilterXSetSubscript *self = g_new0(FilterXSetSubscript, 1);
229+
FilterXExpr *self = filterx_set_subscript_new(object, key, new_value);
230230

231-
filterx_expr_init_instance(&self->super, "set_subscript");
232-
self->super.eval = _set_subscript_eval;
233-
self->super.optimize = _optimize;
234-
self->super.init = _init;
235-
self->super.deinit = _deinit;
236-
self->super.free_fn = _free;
237-
self->object = object;
238-
self->key = key;
239-
self->new_value = new_value;
240-
self->super.ignore_falsy_result = TRUE;
241-
return &self->super;
231+
self->type = "nullv_set_subscript";
232+
self->eval = _nullv_set_subscript_eval;
233+
return self;
242234
}

lib/filterx/expr-setattr.c

+10-20
Original file line numberDiff line numberDiff line change
@@ -179,13 +179,14 @@ _free(FilterXExpr *s)
179179
filterx_expr_free_method(s);
180180
}
181181

182+
/* Takes reference of object and new_value */
182183
FilterXExpr *
183-
filterx_nullv_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *new_value)
184+
filterx_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *new_value)
184185
{
185186
FilterXSetAttr *self = g_new0(FilterXSetAttr, 1);
186187

187-
filterx_expr_init_instance(&self->super, "nullv_setattr");
188-
self->super.eval = _nullv_setattr_eval;
188+
filterx_expr_init_instance(&self->super, "setattr");
189+
self->super.eval = _setattr_eval;
189190
self->super.optimize = _optimize;
190191
self->super.init = _init;
191192
self->super.deinit = _deinit;
@@ -196,28 +197,17 @@ filterx_nullv_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterX
196197

197198
self->new_value = new_value;
198199
self->super.ignore_falsy_result = TRUE;
200+
199201
/* NOTE: name borrows the string value from the string object */
200202
self->super.name = filterx_string_get_value_ref(self->attr, NULL);
201203
return &self->super;
202204
}
203205

204-
/* Takes reference of object and new_value */
205206
FilterXExpr *
206-
filterx_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *new_value)
207+
filterx_nullv_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *new_value)
207208
{
208-
FilterXSetAttr *self = g_new0(FilterXSetAttr, 1);
209-
210-
filterx_expr_init_instance(&self->super, "setattr");
211-
self->super.eval = _setattr_eval;
212-
self->super.optimize = _optimize;
213-
self->super.init = _init;
214-
self->super.deinit = _deinit;
215-
self->super.free_fn = _free;
216-
self->object = object;
217-
218-
self->attr = (FilterXObject *) attr_name;
219-
220-
self->new_value = new_value;
221-
self->super.ignore_falsy_result = TRUE;
222-
return &self->super;
209+
FilterXExpr *self = filterx_setattr_new(object, attr_name, new_value);
210+
self->type = "nullv_setattr";
211+
self->eval = _nullv_setattr_eval;
212+
return self;
223213
}

lib/filterx/expr-template.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ typedef struct _FilterXTemplate
3535
} FilterXTemplate;
3636

3737
static FilterXObject *
38-
_eval(FilterXExpr *s)
38+
_eval_template(FilterXExpr *s)
3939
{
4040
FilterXTemplate *self = (FilterXTemplate *) s;
4141
FilterXEvalContext *context = filterx_eval_get_context();
@@ -72,7 +72,7 @@ filterx_template_new(LogTemplate *template)
7272
FilterXTemplate *self = g_new0(FilterXTemplate, 1);
7373

7474
filterx_expr_init_instance(&self->super, "template");
75-
self->super.eval = _eval;
75+
self->super.eval = _eval_template;
7676
self->super.free_fn = _free;
7777
self->template = template;
7878
return &self->super;

0 commit comments

Comments
 (0)