* src/reduce.c (reduce_output): Formatting changes.

* src/print.c (print_results, print_grammar): Likewise.
* tests/regression.at (Rule Line Numbers)
(Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
This commit is contained in:
Akim Demaille
2001-11-30 10:49:01 +00:00
parent 760b53a84b
commit d2d1b42b07
6 changed files with 59 additions and 31 deletions

View File

@@ -419,6 +419,7 @@ conflict_report (int src_num, int rrc_num)
void
conflicts_output (FILE *out)
{
bool printed_sth = FALSE;
int i;
for (i = 0; i < nstates; i++)
if (conflicts[i])
@@ -426,7 +427,10 @@ conflicts_output (FILE *out)
fprintf (out, _("State %d contains "), i);
fputs (conflict_report (count_sr_conflicts (i),
count_rr_conflicts (i)), out);
printed_sth = TRUE;
}
if (printed_sth)
fputs ("\n\n", out);
}

View File

@@ -181,11 +181,11 @@ print_actions (FILE *out, int state)
static void
print_state (FILE *out, int state)
{
fputs ("\n\n", out);
fprintf (out, _("state %d"), state);
fputs ("\n\n", out);
print_core (out, state);
print_actions (out, state);
fputs ("\n\n", out);
}
/*-----------------------------------------.
@@ -212,7 +212,7 @@ print_grammar (FILE *out)
int column = 0;
/* rule # : LHS -> RHS */
fprintf (out, "\n%s\n\n", _("Grammar"));
fprintf (out, "%s\n\n", _("Grammar"));
fprintf (out, " %s\n", _("Number, Line, Rule"));
for (i = 1; i <= nrules; i++)
/* Don't print rules disabled in reduce_grammar_tables. */
@@ -228,9 +228,11 @@ print_grammar (FILE *out)
fprintf (out, " /* %s */", _("empty"));
fputc ('\n', out);
}
fputs ("\n\n", out);
/* TERMINAL (type #) : rule #s terminal is on RHS */
fprintf (out, "\n%s\n\n", _("Terminals, with rules where they appear"));
fprintf (out, "%s\n\n", _("Terminals, with rules where they appear"));
fprintf (out, "%s (-1)\n", tags[0]);
for (i = 0; i <= max_user_token_number; i++)
@@ -252,9 +254,10 @@ print_grammar (FILE *out)
}
fprintf (out, "%s\n", buffer);
}
fputs ("\n\n", out);
fprintf (out, "\n%s\n\n",
_("Nonterminals, with rules where they appear"));
fprintf (out, "%s\n\n", _("Nonterminals, with rules where they appear"));
for (i = ntokens; i <= nsyms - 1; i++)
{
int left_count = 0, right_count = 0;
@@ -309,6 +312,7 @@ print_grammar (FILE *out)
}
fprintf (out, "%s\n", buffer);
}
fputs ("\n\n", out);
}
void
@@ -324,6 +328,8 @@ print_results (void)
size_t size = obstack_object_size (&output_obstack);
fwrite (obstack_finish (&output_obstack), 1, size, out);
if (size)
fputs ("\n\n", out);
reduce_output (out);
conflicts_output (out);

View File

@@ -407,50 +407,46 @@ nonterminals_reduce (void)
void
reduce_output (FILE *out)
{
int i;
rule r;
bool b;
if (nuseless_nonterminals > 0)
{
fprintf (out, _("Useless nonterminals:"));
fprintf (out, "\n\n");
int i;
fprintf (out, "%s\n\n", _("Useless nonterminals:"));
for (i = 0; i < nuseless_nonterminals; ++i)
fprintf (out, " %s\n", tags[nsyms + i]);
fputs ("\n\n", out);
}
b = FALSE;
for (i = 0; i < ntokens; i++)
{
{
bool b = FALSE;
int i;
for (i = 0; i < ntokens; i++)
if (!BITISSET (V, i) && !BITISSET (V1, i))
{
if (!b)
{
fprintf (out, "\n\n");
fprintf (out, _("Terminals which are not used:"));
fprintf (out, "\n\n");
b = TRUE;
}
fprintf (out, "%s\n\n", _("Terminals which are not used:"));
b = TRUE;
fprintf (out, " %s\n", tags[i]);
}
}
if (b)
fputs ("\n\n", out);
}
if (nuseless_productions > 0)
{
fprintf (out, "\n\n");
fprintf (out, _("Useless rules:"));
fprintf (out, "\n\n");
int i;
fprintf (out, "%s\n\n", _("Useless rules:"));
for (i = 1; i <= nrules; i++)
if (!BITISSET (P, i))
{
rule r;
fprintf (out, "#%-4d ", i);
fprintf (out, "%s :\t", tags[rule_table[i].lhs]);
for (r = &ritem[rule_table[i].rhs]; *r >= 0; r++)
fprintf (out, " %s", tags[*r]);
fprintf (out, ";\n");
fputs (";\n", out);
}
fputs ("\n\n", out);
}
if (nuseless_nonterminals > 0 || nuseless_productions > 0 || b)
fprintf (out, "\n\n");
}
static void