- for (i = 0; i < nstates; i++)
- if (conflicts[i])
- {
- src_total += count_sr_conflicts (i);
- rrc_total += count_rr_conflicts (i);
- }
-
- src_ok = src_total == (expected_conflicts == -1 ? 0 : expected_conflicts);
-
- /* If there are no RR conflicts, and as many SR conflicts as
- expected, then there is nothing to report. */
- if (!rrc_total && src_ok)
- return;
-
- /* Report the total number of conflicts on STDERR. */
- if (yacc_flag)
- {
- /* If invoked with `--yacc', use the output format specified by
- POSIX. */
- fprintf (stderr, _("conflicts: "));
- if (src_total > 0)
- fprintf (stderr, _(" %d shift/reduce"), src_total);
- if (src_total > 0 && rrc_total > 0)
- fprintf (stderr, ",");
- if (rrc_total > 0)
- fprintf (stderr, _(" %d reduce/reduce"), rrc_total);
- putc ('\n', stderr);
- }
- else
- {
- fprintf (stderr, _("%s contains "), infile);
- fputs (conflict_report (src_total, rrc_total), stderr);
- }
-
- if (expected_conflicts != -1 && !src_ok)
- {
- complain_message_count++;
- fprintf (stderr, ngettext ("expected %d shift/reduce conflict\n",
- "expected %d shift/reduce conflicts\n",
- expected_conflicts),
- expected_conflicts);
- }
-}
-