mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 09:43:03 +00:00
* src/lalr.c (set_goto_map): Remove a wrong but benign loop
duplication.
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2001-12-27 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
|
* src/lalr.c (set_goto_map): Remove a wrong but benign loop
|
||||||
|
duplication.
|
||||||
|
|
||||||
|
|
||||||
2001-12-27 Akim Demaille <akim@epita.fr>
|
2001-12-27 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* src/reader.c (packgram): Catch nitems overflows.
|
* src/reader.c (packgram): Catch nitems overflows.
|
||||||
|
|||||||
43
src/lalr.c
43
src/lalr.c
@@ -159,12 +159,8 @@ initialize_LA (void)
|
|||||||
static void
|
static void
|
||||||
set_goto_map (void)
|
set_goto_map (void)
|
||||||
{
|
{
|
||||||
int state;
|
int state, i;
|
||||||
int i;
|
|
||||||
int symbol;
|
|
||||||
int k;
|
|
||||||
short *temp_map;
|
short *temp_map;
|
||||||
int state2;
|
|
||||||
|
|
||||||
goto_map = XCALLOC (short, nvars + 1) - ntokens;
|
goto_map = XCALLOC (short, nvars + 1) - ntokens;
|
||||||
temp_map = XCALLOC (short, nvars + 1) - ntokens;
|
temp_map = XCALLOC (short, nvars + 1) - ntokens;
|
||||||
@@ -175,7 +171,7 @@ set_goto_map (void)
|
|||||||
shifts *sp = state_table[state]->shifts;
|
shifts *sp = state_table[state]->shifts;
|
||||||
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
|
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
|
||||||
{
|
{
|
||||||
symbol = state_table[sp->shifts[i]]->accessing_symbol;
|
int symbol = state_table[sp->shifts[i]]->accessing_symbol;
|
||||||
|
|
||||||
if (ngotos == MAXSHORT)
|
if (ngotos == MAXSHORT)
|
||||||
fatal (_("too many gotos (max %d)"), MAXSHORT);
|
fatal (_("too many gotos (max %d)"), MAXSHORT);
|
||||||
@@ -185,18 +181,20 @@ set_goto_map (void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
k = 0;
|
{
|
||||||
for (i = ntokens; i < nsyms; i++)
|
int k = 0;
|
||||||
{
|
for (i = ntokens; i < nsyms; i++)
|
||||||
temp_map[i] = k;
|
{
|
||||||
k += goto_map[i];
|
temp_map[i] = k;
|
||||||
}
|
k += goto_map[i];
|
||||||
|
}
|
||||||
|
|
||||||
for (i = ntokens; i < nsyms; i++)
|
for (i = ntokens; i < nsyms; i++)
|
||||||
goto_map[i] = temp_map[i];
|
goto_map[i] = temp_map[i];
|
||||||
|
|
||||||
goto_map[nsyms] = ngotos;
|
goto_map[nsyms] = ngotos;
|
||||||
temp_map[nsyms] = ngotos;
|
temp_map[nsyms] = ngotos;
|
||||||
|
}
|
||||||
|
|
||||||
from_state = XCALLOC (short, ngotos);
|
from_state = XCALLOC (short, ngotos);
|
||||||
to_state = XCALLOC (short, ngotos);
|
to_state = XCALLOC (short, ngotos);
|
||||||
@@ -206,15 +204,12 @@ set_goto_map (void)
|
|||||||
shifts *sp = state_table[state]->shifts;
|
shifts *sp = state_table[state]->shifts;
|
||||||
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
|
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
|
||||||
{
|
{
|
||||||
for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
|
int state2 = sp->shifts[i];
|
||||||
{
|
int symbol = state_table[state2]->accessing_symbol;
|
||||||
state2 = sp->shifts[i];
|
|
||||||
symbol = state_table[state2]->accessing_symbol;
|
|
||||||
|
|
||||||
k = temp_map[symbol]++;
|
int k = temp_map[symbol]++;
|
||||||
from_state[k] = state;
|
from_state[k] = state;
|
||||||
to_state[k] = state2;
|
to_state[k] = state2;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -133,10 +133,8 @@ get_lines_number (const char *s)
|
|||||||
|
|
||||||
size_t i;
|
size_t i;
|
||||||
for (i = 0; s[i]; ++i)
|
for (i = 0; s[i]; ++i)
|
||||||
{
|
if (s[i] == '\n')
|
||||||
if (s[i] == '\n')
|
++lines;
|
||||||
++lines;
|
|
||||||
}
|
|
||||||
|
|
||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user