style: cex: remove variables that don't make it simpler to read

* src/counterexample.c: With arrays, prefer the array notation rather
than the pointer one.
This commit is contained in:
Akim Demaille
2020-07-11 17:25:37 +02:00
parent dc72b3566d
commit 5b2b7b1ffb
2 changed files with 17 additions and 24 deletions

View File

@@ -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);
}
}

View File

@@ -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;