Exemplo n.º 1
0
Arquivo: mkpar.c Projeto: 0mp/freebsd
void
make_parser(void)
{
    int i;

    parser = NEW2(nstates, action *);
    for (i = 0; i < nstates; i++)
	parser[i] = parse_actions(i);

    find_final_state();
    remove_conflicts();
    unused_rules();
    if (SRtotal + RRtotal > 0)
	total_conflicts();
    defreds();
}
Exemplo n.º 2
0
void
conflict_log (void)
{
  register int i;

  src_total = 0;
  rrc_total = 0;

  for (i = 0; i < nstates; i++)
    {
      if (conflicts[i])
	{
	  count_sr_conflicts(i);
	  count_rr_conflicts(i);
	  src_total += src_count;
	  rrc_total += rrc_count;
	}
    }

  total_conflicts();
}
Exemplo n.º 3
0
void
verbose_conflict_log (void)
{
  register int i;

  src_total = 0;
  rrc_total = 0;

  for (i = 0; i < nstates; i++)
    {
      if (conflicts[i])
	{
	  count_sr_conflicts(i);
	  count_rr_conflicts(i);
	  src_total += src_count;
	  rrc_total += rrc_count;

	  fprintf(foutput, _("State %d contains"), i);

	  if (src_count == 1)
	    fprintf(foutput, _(" 1 shift/reduce conflict"));
	  else if (src_count > 1)
	    fprintf(foutput, _(" %d shift/reduce conflicts"), src_count);

	  if (src_count > 0 && rrc_count > 0)
	    fprintf(foutput, _(" and"));

	  if (rrc_count == 1)
	    fprintf(foutput, _(" 1 reduce/reduce conflict"));
	  else if (rrc_count > 1)
	    fprintf(foutput, _(" %d reduce/reduce conflicts"), rrc_count);

	  putc('.', foutput);
	  putc('\n', foutput);
	}
    }

  total_conflicts();
}