tables: scope reduction

* src/tables.c (token_actions): here.
This commit is contained in:
Akim Demaille
2012-12-26 18:15:21 +01:00
parent c95f5dadd6
commit 33f7f342c3

View File

@@ -424,10 +424,6 @@ save_row (state_number s)
static void static void
token_actions (void) token_actions (void)
{ {
state_number i;
symbol_number j;
rule_number r;
int nconflict = nondeterministic_parser ? conflicts_total_count () : 0; int nconflict = nondeterministic_parser ? conflicts_total_count () : 0;
yydefact = xnmalloc (nstates, sizeof *yydefact); yydefact = xnmalloc (nstates, sizeof *yydefact);
@@ -441,9 +437,14 @@ token_actions (void)
/* Find the rules which are reduced. */ /* Find the rules which are reduced. */
if (!nondeterministic_parser) if (!nondeterministic_parser)
{
rule_number r;
for (r = 0; r < nrules; ++r) for (r = 0; r < nrules; ++r)
rules[r].useful = false; rules[r].useful = false;
}
{
state_number i;
for (i = 0; i < nstates; ++i) for (i = 0; i < nstates; ++i)
{ {
rule *default_reduction = action_row (states[i]); rule *default_reduction = action_row (states[i]);
@@ -455,6 +456,7 @@ token_actions (void)
conflicts. */ conflicts. */
if (!nondeterministic_parser) if (!nondeterministic_parser)
{ {
symbol_number j;
for (j = 0; j < ntokens; ++j) for (j = 0; j < ntokens; ++j)
if (actrow[j] < 0 && actrow[j] != ACTION_NUMBER_MINIMUM) if (actrow[j] < 0 && actrow[j] != ACTION_NUMBER_MINIMUM)
rules[item_number_as_rule_number (actrow[j])].useful = true; rules[item_number_as_rule_number (actrow[j])].useful = true;
@@ -462,7 +464,7 @@ token_actions (void)
rules[yydefact[i] - 1].useful = true; rules[yydefact[i] - 1].useful = true;
} }
} }
}
free (actrow); free (actrow);
free (conflrow); free (conflrow);
} }