mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
tables: scope reduction
* src/tables.c (save_row): here.
This commit is contained in:
45
src/tables.c
45
src/tables.c
@@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user