bison-patches
[Top][All Lists]
Advanced

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

[PATCH 1/3] style: cex: remove variables that don't make it simpler to r


From: Akim Demaille
Subject: [PATCH 1/3] style: cex: remove variables that don't make it simpler to read
Date: Sat, 11 Jul 2020 18:53:53 +0200

* src/counterexample.c: With arrays, prefer the array notation rather
than the pointer one.
---
 src/counterexample.c | 25 +++++++++----------------
 src/state-item.h     | 16 ++++++++--------
 2 files changed, 17 insertions(+), 24 deletions(-)

diff --git a/src/counterexample.c b/src/counterexample.c
index e89050cc..40f8b831 100644
--- a/src/counterexample.c
+++ b/src/counterexample.c
@@ -1284,8 +1284,7 @@ counterexample_report_state (const state *s, FILE *out, 
const char *prefix)
       for (int j = state_item_map[sn]; j < state_item_map[sn + 1]; ++j)
         if (!SI_DISABLED (j))
           {
-            state_item *si = state_items + j;
-            item_number conf = *si->item;
+            item_number conf = *state_items[j].item;
             if (item_number_is_symbol_number (conf)
               && bitset_test (reds->lookahead_tokens[i], conf))
               counterexample_report_shift_reduce (c1, j, conf, out, prefix);
@@ -1293,24 +1292,18 @@ counterexample_report_state (const state *s, FILE *out, 
const char *prefix)
       for (int j = i+1; j < reds->num; ++j)
         {
           bitset conf = bitset_create (ntokens, BITSET_FIXED);
+          const rule *r2 = reds->rules[j];
           bitset_intersection (conf,
                                reds->lookahead_tokens[i],
                                reds->lookahead_tokens[j]);
           if (!bitset_empty_p (conf))
-            {
-              const rule *r2 = reds->rules[j];
-              for (int k = state_item_map[sn]; k < state_item_map[sn + 1]; ++k)
-                if (!SI_DISABLED (k))
-                  {
-                    state_item *si = state_items + k;
-                    const rule *r = item_rule (si->item);
-                    if (r == r2)
-                      {
-                        counterexample_report_reduce_reduce (c1, k, conf, out, 
prefix);
-                        break;
-                      }
-                  }
-            }
+            for (int k = state_item_map[sn]; k < state_item_map[sn + 1]; ++k)
+              if (!SI_DISABLED (k)
+                  && item_rule (state_items[k].item) == r2)
+                {
+                  counterexample_report_reduce_reduce (c1, k, conf, out, 
prefix);
+                  break;
+                }
           bitset_free (conf);
         }
     }
diff --git a/src/state-item.h b/src/state-item.h
index 8df79feb..d8b46843 100644
--- a/src/state-item.h
+++ b/src/state-item.h
@@ -28,16 +28,16 @@
 # include "state.h"
 
 /* Initializes a graph connecting (state, production item) pairs to
-   pairs they can make a transition or production step to. This graph
+   pairs they can make a transition or production step to.  This graph
    is used to search for paths that represent counterexamples of some
    conflict.
 
    state_items is an array of state state-item pairs ordered by state.
    state_item_map maps state numbers to the first item which
-   corresponds to it in the array. A state's portion in state_items
-   begins with its items in the same order as it was in the
-   state. This is then followed by productions from the closure of the
-   state in order by rule.
+   corresponds to it in the array.  A state's portion in state_items
+   begins with its items in the same order as it was in the state.
+   This is then followed by productions from the closure of the state
+   in order by rule.
 
    There are two type of edges in this graph transitions and
    productions.  Transitions are the same as transitions from the
@@ -53,9 +53,9 @@
    production edges, and all others will have reverse transition
    edges. */
 
-# define SI_DISABLED(sin) (state_items[sin].trans == -2)
-# define SI_PRODUCTION(si) ((si) == state_items || *((si)->item - 1) < 0)
-# define SI_TRANSITION(si) ((si) != state_items && *((si)->item - 1) >= 0)
+# define SI_DISABLED(Sin) (state_items[Sin].trans == -2)
+# define SI_PRODUCTION(Si) ((Si) == state_items || *((Si)->item - 1) < 0)
+# define SI_TRANSITION(Si) ((Si) != state_items && *((Si)->item - 1) >= 0)
 
 typedef int state_item_number;
 
-- 
2.27.0




reply via email to

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