mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 00:03:03 +00:00
report: stop counting uselessly
* src/print.c (print_nonterminal_symbols): Replace left_count and right_count with on_left and on_right.
This commit is contained in:
22
src/print.c
22
src/print.c
@@ -392,18 +392,16 @@ print_nonterminal_symbols (FILE *out)
|
|||||||
for (symbol_number i = ntokens; i < nsyms; i++)
|
for (symbol_number i = ntokens; i < nsyms; i++)
|
||||||
{
|
{
|
||||||
const char *tag = symbols[i]->tag;
|
const char *tag = symbols[i]->tag;
|
||||||
int left_count = 0, right_count = 0;
|
bool on_left = false;
|
||||||
|
bool on_right = false;
|
||||||
|
|
||||||
for (rule_number r = 0; r < nrules; r++)
|
for (rule_number r = 0; r < nrules; r++)
|
||||||
{
|
{
|
||||||
if (rules[r].lhs->number == i)
|
on_left |= rules[r].lhs->number == i;
|
||||||
left_count++;
|
for (item_number *rhsp = rules[r].rhs; !on_right && 0 <= *rhsp; ++rhsp)
|
||||||
for (item_number *rhsp = rules[r].rhs; 0 <= *rhsp; rhsp++)
|
on_right |= item_number_as_symbol_number (*rhsp) == i;
|
||||||
if (item_number_as_symbol_number (*rhsp) == i)
|
if (on_left && on_right)
|
||||||
{
|
break;
|
||||||
right_count++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int column = 4 + strlen (tag);
|
int column = 4 + strlen (tag);
|
||||||
@@ -413,7 +411,7 @@ print_nonterminal_symbols (FILE *out)
|
|||||||
symbols[i]->content->type_name);
|
symbols[i]->content->type_name);
|
||||||
fprintf (out, " (%d)\n", i);
|
fprintf (out, " (%d)\n", i);
|
||||||
|
|
||||||
if (left_count > 0)
|
if (on_left)
|
||||||
{
|
{
|
||||||
fprintf (out, "%8s%s", "", _("on left:"));
|
fprintf (out, "%8s%s", "", _("on left:"));
|
||||||
for (rule_number r = 0; r < nrules; r++)
|
for (rule_number r = 0; r < nrules; r++)
|
||||||
@@ -422,11 +420,11 @@ print_nonterminal_symbols (FILE *out)
|
|||||||
fputc ('\n', out);
|
fputc ('\n', out);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (right_count > 0)
|
if (on_right)
|
||||||
{
|
{
|
||||||
fprintf (out, "%8s%s", "", _("on right:"));
|
fprintf (out, "%8s%s", "", _("on right:"));
|
||||||
for (rule_number r = 0; r < nrules; r++)
|
for (rule_number r = 0; r < nrules; r++)
|
||||||
for (item_number *rhsp = rules[r].rhs; 0 <= *rhsp; rhsp++)
|
for (item_number *rhsp = rules[r].rhs; 0 <= *rhsp; ++rhsp)
|
||||||
if (item_number_as_symbol_number (*rhsp) == i)
|
if (item_number_as_symbol_number (*rhsp) == i)
|
||||||
{
|
{
|
||||||
fprintf (out, " %d", r);
|
fprintf (out, " %d", r);
|
||||||
|
|||||||
Reference in New Issue
Block a user