mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 17:53:02 +00:00
* src/output.c (output_gram): Rely on nritems, not the
0-sentinel. See below. Use -1 as separator, not 0. * src/bison.simple (yyparse): Subtract 1 to the rule numbers. Rely on -1 as separator in yyrhs, instead of 0. * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue twice `Now at end of input', therefore there are two lines less to expect.
This commit is contained in:
12
ChangeLog
12
ChangeLog
@@ -1,3 +1,15 @@
|
|||||||
|
2001-12-27 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
|
* src/output.c (output_gram): Rely on nritems, not the
|
||||||
|
0-sentinel. See below.
|
||||||
|
Use -1 as separator, not 0.
|
||||||
|
* src/bison.simple (yyparse): Subtract 1 to the rule numbers.
|
||||||
|
Rely on -1 as separator in yyrhs, instead of 0.
|
||||||
|
* tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
|
||||||
|
twice `Now at end of input', therefore there are two lines less to
|
||||||
|
expect.
|
||||||
|
|
||||||
|
|
||||||
2001-12-27 Akim Demaille <akim@epita.fr>
|
2001-12-27 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* tests/regression.at (Unresolved SR Conflicts):
|
* tests/regression.at (Unresolved SR Conflicts):
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ static const short yyprhs[] =
|
|||||||
%%prhs
|
%%prhs
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYRHS -- A `0'-separated list of the rules' RHS. */
|
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
||||||
static const short yyrhs[] =
|
static const short yyrhs[] =
|
||||||
{
|
{
|
||||||
%%rhs
|
%%rhs
|
||||||
@@ -899,10 +899,10 @@ yyreduce:
|
|||||||
int yyi;
|
int yyi;
|
||||||
|
|
||||||
YYFPRINTF (YYSTDERR, "Reducing via rule %d (line %d), ",
|
YYFPRINTF (YYSTDERR, "Reducing via rule %d (line %d), ",
|
||||||
yyn, yyrline[yyn]);
|
yyn - 1, yyrline[yyn]);
|
||||||
|
|
||||||
/* Print the symbols being reduced, and their result. */
|
/* Print the symbols being reduced, and their result. */
|
||||||
for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
|
for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
|
||||||
YYFPRINTF (YYSTDERR, "%s ", yytname[yyrhs[yyi]]);
|
YYFPRINTF (YYSTDERR, "%s ", yytname[yyrhs[yyi]]);
|
||||||
YYFPRINTF (YYSTDERR, " -> %s\n", yytname[yyr1[yyn]]);
|
YYFPRINTF (YYSTDERR, " -> %s\n", yytname[yyr1[yyn]]);
|
||||||
}
|
}
|
||||||
|
|||||||
13
src/output.c
13
src/output.c
@@ -195,19 +195,16 @@ output_gram (void)
|
|||||||
muscle_insert ("prhs", obstack_finish (&format_obstack));
|
muscle_insert ("prhs", obstack_finish (&format_obstack));
|
||||||
|
|
||||||
{
|
{
|
||||||
size_t yyrhs_size = 1;
|
short *yyrhs;
|
||||||
short *yyrhs, *sp;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (sp = ritem + 1; *sp; sp++)
|
yyrhs = XMALLOC (short, nritems);
|
||||||
++yyrhs_size;
|
|
||||||
yyrhs = XMALLOC (short, yyrhs_size);
|
|
||||||
|
|
||||||
for (sp = ritem + 1, i = 1; *sp; ++sp, ++i)
|
for (i = 1; i < nritems; ++i)
|
||||||
yyrhs[i] = *sp >= 0 ? *sp : 0;
|
yyrhs[i] = ritem[i] >= 0 ? ritem[i] : -1;
|
||||||
|
|
||||||
output_table_data (&format_obstack, yyrhs,
|
output_table_data (&format_obstack, yyrhs,
|
||||||
ritem[0], 1, yyrhs_size);
|
ritem[0], 1, nritems);
|
||||||
muscle_insert ("rhs", obstack_finish (&format_obstack));
|
muscle_insert ("rhs", obstack_finish (&format_obstack));
|
||||||
|
|
||||||
XFREE (yyrhs);
|
XFREE (yyrhs);
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ _AT_CHECK_CALC([$1],
|
|||||||
1 - (2 - 3) = 2
|
1 - (2 - 3) = 2
|
||||||
|
|
||||||
2^2^3 = 256
|
2^2^3 = 256
|
||||||
(2^2)^3 = 64], [488])
|
(2^2)^3 = 64], [486])
|
||||||
|
|
||||||
# Some parse errors.
|
# Some parse errors.
|
||||||
_AT_CHECK_CALC_ERROR([$1], [0 0], [10],
|
_AT_CHECK_CALC_ERROR([$1], [0 0], [10],
|
||||||
|
|||||||
Reference in New Issue
Block a user