* 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:
Akim Demaille
2001-12-27 18:17:39 +00:00
parent b365aa0589
commit 3db472b9eb
4 changed files with 21 additions and 12 deletions

View File

@@ -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):

View File

@@ -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]]);
} }

View File

@@ -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);

View File

@@ -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],