[template-glib] expr-parser.y: cleanup function definitions



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]