style: reduce scopes

* src/conflicts.c, src/reader.c: Minor style changes.
This commit is contained in:
Akim Demaille
2013-02-27 14:43:20 +01:00
committed by Akim Demaille
parent b34b12c4f9
commit 2b2556b41c
2 changed files with 39 additions and 54 deletions

View File

@@ -506,26 +506,25 @@ count_rr_conflicts (bool one_per_token)
/*----------------------------------------------------------------------. /*----------------------------------------------------------------------.
| For a given rule, count the number of states for which it is involved | | For a given rule, count the number of states for which it is involved |
| in shift/reduce conflicts. | | in shift/reduce conflicts. |
`----------------------------------------------------------------------*/ `----------------------------------------------------------------------*/
static bool static bool
rule_has_state_sr_conflicts (rule *r, state *s) rule_has_state_sr_conflicts (rule *r, state *s)
{ {
int i;
int j;
transitions *trans = s->transitions; transitions *trans = s->transitions;
reductions *reds = s->reductions; reductions *reds = s->reductions;
for (i = 0; i < reds->num; i++) for (int i = 0; i < reds->num; ++i)
if (reds->rules[i] == r) if (reds->rules[i] == r)
break; {
if (i >= reds->num) bitset lookaheads = reds->lookahead_tokens[i];
return false; int j;
FOR_EACH_SHIFT (trans, j)
FOR_EACH_SHIFT (trans, j) if (bitset_test (lookaheads, TRANSITION_SYMBOL (trans, j)))
if (bitset_test (reds->lookahead_tokens[i], TRANSITION_SYMBOL (trans, j))) return true;
return true; break;
}
return false; return false;
} }
@@ -533,11 +532,8 @@ rule_has_state_sr_conflicts (rule *r, state *s)
static size_t static size_t
count_rule_sr_conflicts (rule *r) count_rule_sr_conflicts (rule *r)
{ {
state_number i; size_t res = 0;
size_t res; for (state_number i = 0; i < nstates; ++i)
res = 0;
for (i = 0; i < nstates; i++)
if (conflicts[i] && rule_has_state_sr_conflicts (r, states[i])) if (conflicts[i] && rule_has_state_sr_conflicts (r, states[i]))
res++; res++;
return res; return res;
@@ -551,22 +547,18 @@ count_rule_sr_conflicts (rule *r)
static bool static bool
rule_has_state_rr_conflicts (rule *r, state *s) rule_has_state_rr_conflicts (rule *r, state *s)
{ {
int i;
reductions *reds = s->reductions; reductions *reds = s->reductions;
size_t res;
bitset lookaheads;
for (i = 0; i < reds->num; i++)
if (reds->rules[i] == r)
break;
if (i >= reds->num)
return 0;
lookaheads = reds->lookahead_tokens[i];
for (i = 0; i < reds->num; i++) for (int i = 0; i < reds->num; ++i)
if (reds->rules[i] != r && if (reds->rules[i] == r)
!bitset_disjoint_p (lookaheads, reds->lookahead_tokens[i])) {
return true; bitset lookaheads = reds->lookahead_tokens[i];
for (int j = 0; j < reds->num; ++j)
if (reds->rules[j] != r &&
!bitset_disjoint_p (lookaheads, reds->lookahead_tokens[j]))
return true;
break;
}
return false; return false;
} }
@@ -574,13 +566,10 @@ rule_has_state_rr_conflicts (rule *r, state *s)
static size_t static size_t
count_rule_rr_conflicts (rule *r) count_rule_rr_conflicts (rule *r)
{ {
state_number i; size_t res = 0;
size_t res; for (state_number i = 0; i < nstates; ++i)
res = 0;
for (i = 0; i < nstates; i++)
if (conflicts[i] && rule_has_state_rr_conflicts (r, states[i])) if (conflicts[i] && rule_has_state_rr_conflicts (r, states[i]))
res++; res++;
return res; return res;
} }
@@ -635,25 +624,25 @@ conflicts_total_count (void)
static void static void
rule_conflicts_print (void) rule_conflicts_print (void)
{ {
rule_number i; for (rule_number i = 0; i < nrules; i += 1)
for (i = 0; i < nrules; i += 1)
{ {
rule *r = &rules[i]; rule *r = &rules[i];
int expected_sr = r->expected_sr_conflicts; int expected_sr = r->expected_sr_conflicts;
int expected_rr = r->expected_rr_conflicts; int expected_rr = r->expected_rr_conflicts;
if (expected_sr != -1 || expected_rr != -1) if (expected_sr != -1 || expected_rr != -1)
{ {
int sr = count_rule_sr_conflicts (r); int sr = count_rule_sr_conflicts (r);
int rr = count_rule_rr_conflicts (r);
if (sr != expected_sr && (sr != 0 || expected_sr != -1)) if (sr != expected_sr && (sr != 0 || expected_sr != -1))
complain (&r->location, complaint, _("\ complain (&r->location, complaint,
shift/reduce conflicts for rule %d: %d found, %d expected"), _("shift/reduce conflicts for rule %d:"
" %d found, %d expected"),
r->user_number, sr, expected_sr); r->user_number, sr, expected_sr);
int rr = count_rule_rr_conflicts (r);
if (rr != expected_rr && (rr != 0 || expected_rr != -1)) if (rr != expected_rr && (rr != 0 || expected_rr != -1))
complain (&r->location, complaint, _("\ complain (&r->location, complaint,
reduce/reduce conflicts for rule %d: %d found, %d expected"), _("reduce/reduce conflicts for rule %d:"
" %d found, %d expected"),
r->user_number, rr, expected_rr); r->user_number, rr, expected_rr);
} }
} }

View File

@@ -114,13 +114,11 @@ record_merge_function_type (int merger, uniqstr type, location declaration_loc)
if (merger <= 0) if (merger <= 0)
return; return;
int merger_find;
merger_list *merge_function;
if (type == NULL) if (type == NULL)
type = uniqstr_new (""); type = uniqstr_new ("");
merger_find = 1; merger_list *merge_function;
int merger_find = 1;
for (merge_function = merge_functions; for (merge_function = merge_functions;
merge_function != NULL && merger_find != merger; merge_function != NULL && merger_find != merger;
merge_function = merge_function->next) merge_function = merge_function->next)
@@ -585,6 +583,7 @@ grammar_current_rule_predicate_append (const char *pred, location loc)
void void
grammar_current_rule_expect_sr (int count, location loc) grammar_current_rule_expect_sr (int count, location loc)
{ {
(void) loc;
current_rule->expected_sr_conflicts = count; current_rule->expected_sr_conflicts = count;
} }
@@ -608,13 +607,11 @@ static void
packgram (void) packgram (void)
{ {
unsigned itemno = 0; unsigned itemno = 0;
rule_number ruleno = 0;
ritem = xnmalloc (nritems + 1, sizeof *ritem); ritem = xnmalloc (nritems + 1, sizeof *ritem);
/* This sentinel is used by build_relations in gram.c. */ /* This sentinel is used by build_relations in gram.c. */
*ritem++ = 0; *ritem++ = 0;
rule_number ruleno = 0;
rules = xnmalloc (nrules, sizeof *rules); rules = xnmalloc (nrules, sizeof *rules);
for (symbol_list *p = grammar; p; p = p->next) for (symbol_list *p = grammar; p; p = p->next)
@@ -747,11 +744,10 @@ prepare_percent_define_front_end_variables (void)
/* Set %define front-end variable defaults. */ /* Set %define front-end variable defaults. */
muscle_percent_define_default ("lr.keep-unreachable-state", "false"); muscle_percent_define_default ("lr.keep-unreachable-state", "false");
{ {
char *lr_type;
/* IELR would be a better default, but LALR is historically the /* IELR would be a better default, but LALR is historically the
default. */ default. */
muscle_percent_define_default ("lr.type", "lalr"); muscle_percent_define_default ("lr.type", "lalr");
lr_type = muscle_percent_define_get ("lr.type"); char *lr_type = muscle_percent_define_get ("lr.type");
if (STRNEQ (lr_type, "canonical-lr")) if (STRNEQ (lr_type, "canonical-lr"))
muscle_percent_define_default ("lr.default-reduction", "most"); muscle_percent_define_default ("lr.default-reduction", "most");
else else