[template-glib] expr-parser.y: cleanup function definitions
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [template-glib] expr-parser.y: cleanup function definitions
- Date: Wed, 4 May 2022 20:48:22 +0000 (UTC)
commit 19711890d7e8fb414c75fcb797f15ed0f8d2dba6
Author: Christian Hergert <chergert redhat com>
Date: Wed May 4 13:36:31 2022 -0700
expr-parser.y: cleanup function definitions
src/tmpl-expr-parser.y | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
---
diff --git a/src/tmpl-expr-parser.y b/src/tmpl-expr-parser.y
index 6055847..a5d798f 100644
--- a/src/tmpl-expr-parser.y
+++ b/src/tmpl-expr-parser.y
@@ -65,6 +65,23 @@ add_expr_to_parser (TmplExprParser *parser,
}
}
+static void
+define_function (TmplExprParser *parser,
+ char *name,
+ GPtrArray *symlist,
+ TmplExpr *list)
+{
+ char **strv = NULL;
+
+ if (symlist != NULL)
+ {
+ g_ptr_array_add (symlist, NULL);
+ strv = (char **)(gpointer)g_ptr_array_free (symlist, FALSE);
+ }
+
+ add_expr_to_parser (parser, tmpl_expr_new_func (name, strv, list));
+}
+
# define scanner parser->scanner
%}
@@ -98,17 +115,12 @@ expr: /* nothing */ EOL {
add_expr_to_parser (parser, $1);
YYACCEPT;
}
- | FUNC NAME '(' symlist ')' '=' list EOL {
- g_ptr_array_add ($4, NULL);
- add_expr_to_parser (parser,
- tmpl_expr_new_func ($2,
- (char **)(gpointer)g_ptr_array_free ($4, FALSE),
- $7));
- $4 = NULL;
+ | FUNC NAME '(' symlist ')' '{' list '}' EOL {
+ define_function (parser, $2, g_steal_pointer (&$4), $7);
YYACCEPT;
}
- | FUNC NAME '(' ')' '=' list EOL {
- add_expr_to_parser (parser, tmpl_expr_new_func ($2, NULL, $6));
+ | FUNC NAME '(' ')' '{' list '}' EOL {
+ define_function (parser, $2, NULL, $6);
YYACCEPT;
}
;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]