[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