bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master: style: split a function in two


From: Akim Demaille
Subject: master: style: split a function in two
Date: Thu, 26 Jul 2018 20:19:20 +0200

Extracted from my work in progress on typed mid-rule actions.

commit 9502b2ab489014708da9f8d7a22627e5889e7af0
Author: Akim Demaille <address@hidden>
Date:   Sun Jun 17 17:21:01 2018 +0200

    style: split a function in two
    
    grammar_current_rule_action_append was used in two different places:
    for actual action (`{...}`), and for predicates (`%?{...}`).  Let's
    split this in two different functions.
    
    * src/reader.h, src/reader.c (grammar_current_rule_predicate_append): New.
    Extracted from...
    (grammar_current_rule_action_append): here.
    Remove arguments that don't apply.
    Adjust dependencies.

diff --git a/src/parse-gram.c b/src/parse-gram.c
index 4faf9772..26a4ee98 100644
--- a/src/parse-gram.c
+++ b/src/parse-gram.c
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.0.4.38-1047-dirty.  */
+/* A Bison parser, made by GNU Bison 3.0.5.23-f58b-dirty.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.4.38-1047-dirty"
+#define YYBISON_VERSION "3.0.5.23-f58b-dirty"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -2608,13 +2608,13 @@ yyreduce:
 
   case 89:
 #line 617 "src/parse-gram.y" /* yacc.c:1648  */
-    { grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), 
(yyvsp[0].named_ref), false); }
+    { grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), 
(yyvsp[0].named_ref)); }
 #line 2613 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
   case 90:
 #line 619 "src/parse-gram.y" /* yacc.c:1648  */
-    { grammar_current_rule_action_append ((yyvsp[0].code), (yylsp[0]), NULL, 
true); }
+    { grammar_current_rule_predicate_append ((yyvsp[0].code), (yylsp[0])); }
 #line 2619 "src/parse-gram.c" /* yacc.c:1648  */
     break;
 
diff --git a/src/parse-gram.h b/src/parse-gram.h
index 450a7682..b41e3a7b 100644
--- a/src/parse-gram.h
+++ b/src/parse-gram.h
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.0.4.38-1047-dirty.  */
+/* A Bison parser, made by GNU Bison 3.0.5.23-f58b-dirty.  */
 
 /* Bison interface for Yacc-like parsers in C
 
diff --git a/src/parse-gram.y b/src/parse-gram.y
index 39088cb0..be597ae2 100644
--- a/src/parse-gram.y
+++ b/src/parse-gram.y
@@ -614,9 +614,9 @@ rhs:
 | rhs symbol named_ref.opt
     { grammar_current_rule_symbol_append ($2, @2, $3); }
 | rhs "{...}" named_ref.opt
-    { grammar_current_rule_action_append ($2, @2, $3, false); }
+    { grammar_current_rule_action_append ($2, @2, $3); }
 | rhs "%?{...}"
-    { grammar_current_rule_action_append ($2, @2, NULL, true); }
+    { grammar_current_rule_predicate_append ($2, @2); }
 | rhs "%empty"
     { grammar_current_rule_empty_set (@2); }
 | rhs "%prec" symbol
diff --git a/src/reader.c b/src/reader.c
index c220d707..9a306142 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -522,18 +522,27 @@ grammar_current_rule_symbol_append (symbol *sym, location 
loc,
     sym->content->status = needed;
 }
 
-/* Attach an ACTION to the current rule.  */
-
 void
 grammar_current_rule_action_append (const char *action, location loc,
-                                    named_ref *name, bool is_predicate)
+                                    named_ref *name)
 {
   if (current_rule->action_props.code)
     grammar_midrule_action ();
   /* After all symbol declarations have been parsed, packgram invokes
      code_props_translate_code.  */
   code_props_rule_action_init (&current_rule->action_props, action, loc,
-                               current_rule, name, is_predicate);
+                               current_rule, name,
+                               /* is_predicate */ false);
+}
+
+void
+grammar_current_rule_predicate_append (const char *pred, location loc)
+{
+  if (current_rule->action_props.code)
+    grammar_midrule_action ();
+  code_props_rule_action_init (&current_rule->action_props, pred, loc,
+                               current_rule, NULL,
+                               /* is_predicate */ true);
 }
 
 
diff --git a/src/reader.h b/src/reader.h
index 14e35a94..404262ac 100644
--- a/src/reader.h
+++ b/src/reader.h
@@ -54,8 +54,11 @@ void grammar_current_rule_dprec_set (int dprec, location 
loc);
 void grammar_current_rule_merge_set (uniqstr name, location loc);
 void grammar_current_rule_symbol_append (symbol *sym, location loc,
                                          named_ref *nref);
+/* Attach an ACTION to the current rule.  */
 void grammar_current_rule_action_append (const char *action, location loc,
-                                         named_ref *nref, bool);
+                                         named_ref *nref);
+/* Attach a PREDICATE to the current rule.  */
+void grammar_current_rule_predicate_append (const char *predicate, location 
loc);
 void reader (void);
 void free_merger_functions (void);
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]