tables: scope reduction

* src/tables.c (save_row): here.
This commit is contained in:
Akim Demaille
2012-12-26 18:14:47 +01:00
parent 28be3b8e53
commit c95f5dadd6

View File

@@ -382,39 +382,34 @@ static void
save_row (state_number s) save_row (state_number s)
{ {
symbol_number i; symbol_number i;
size_t count;
base_number *sp;
base_number *sp1;
base_number *sp2;
unsigned int *sp3;
/* Number of non default actions in S. */ /* Number of non default actions in S. */
count = 0; size_t count = 0;
for (i = 0; i < ntokens; i++) for (i = 0; i < ntokens; i++)
if (actrow[i] != 0) if (actrow[i] != 0)
count++; count++;
if (count == 0) if (count)
return; {
/* Allocate non defaulted actions. */
base_number *sp1 = froms[s] = xnmalloc (count, sizeof *sp1);
base_number *sp2 = tos[s] = xnmalloc (count, sizeof *sp2);
unsigned int *sp3 = conflict_tos[s] =
nondeterministic_parser ? xnmalloc (count, sizeof *sp3) : NULL;;
/* Allocate non defaulted actions. */ /* Store non defaulted actions. */
froms[s] = sp = sp1 = xnmalloc (count, sizeof *sp1); for (i = 0; i < ntokens; i++)
tos[s] = sp2 = xnmalloc (count, sizeof *sp2); if (actrow[i] != 0)
conflict_tos[s] = sp3 = {
nondeterministic_parser ? xnmalloc (count, sizeof *sp3) : NULL; *sp1++ = i;
*sp2++ = actrow[i];
if (nondeterministic_parser)
*sp3++ = conflrow[i];
}
/* Store non defaulted actions. */ tally[s] = count;
for (i = 0; i < ntokens; i++) width[s] = sp1[-1] - froms[s][0] + 1;
if (actrow[i] != 0) }
{
*sp1++ = i;
*sp2++ = actrow[i];
if (nondeterministic_parser)
*sp3++ = conflrow[i];
}
tally[s] = count;
width[s] = sp1[-1] - sp[0] + 1;
} }