From dd232b95b78948b5a7db8d044e1ab2e27b35a095 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 5 Feb 2019 07:46:38 +0100 Subject: [PATCH] report: stop counting uselessly * src/print.c (print_nonterminal_symbols): Replace left_count and right_count with on_left and on_right. --- src/print.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/print.c b/src/print.c index ab63a3eb..97dd18f8 100644 --- a/src/print.c +++ b/src/print.c @@ -392,18 +392,16 @@ print_nonterminal_symbols (FILE *out) for (symbol_number i = ntokens; i < nsyms; i++) { 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++) { - if (rules[r].lhs->number == i) - left_count++; - for (item_number *rhsp = rules[r].rhs; 0 <= *rhsp; rhsp++) - if (item_number_as_symbol_number (*rhsp) == i) - { - right_count++; - break; - } + on_left |= rules[r].lhs->number == i; + for (item_number *rhsp = rules[r].rhs; !on_right && 0 <= *rhsp; ++rhsp) + on_right |= item_number_as_symbol_number (*rhsp) == i; + if (on_left && on_right) + break; } int column = 4 + strlen (tag); @@ -413,7 +411,7 @@ print_nonterminal_symbols (FILE *out) symbols[i]->content->type_name); fprintf (out, " (%d)\n", i); - if (left_count > 0) + if (on_left) { fprintf (out, "%8s%s", "", _("on left:")); for (rule_number r = 0; r < nrules; r++) @@ -422,11 +420,11 @@ print_nonterminal_symbols (FILE *out) fputc ('\n', out); } - if (right_count > 0) + if (on_right) { fprintf (out, "%8s%s", "", _("on right:")); 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) { fprintf (out, " %d", r);