X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/41d7a5f24d5e69bdf6ce10c012d50b89ce1e3957..9ca7f077a0a5ecdd00c5945c7a7bd3cf46e23c13:/src/conflicts.c diff --git a/src/conflicts.c b/src/conflicts.c index 3a8edba4..7a9f3c22 100644 --- a/src/conflicts.c +++ b/src/conflicts.c @@ -135,78 +135,78 @@ log_resolution (rule *r, symbol_number token, } obstack_sgrow (&solved_conflicts_obstack, ".\n"); + } - /* XML report */ - if (xml_flag) - { - /* The description of the resolution. */ - switch (resolution) - { - case shift_resolution: - case right_resolution: - obstack_fgrow2 (&solved_conflicts_xml_obstack, - "", - r->number, - xml_escape (symbols[token]->tag)); - break; - - case reduce_resolution: - case left_resolution: - obstack_fgrow2 (&solved_conflicts_xml_obstack, - "", - r->number, - xml_escape (symbols[token]->tag)); - break; - - case nonassoc_resolution: - obstack_fgrow2 (&solved_conflicts_xml_obstack, - "", - r->number, - xml_escape (symbols[token]->tag)); - break; - } - - /* The reason. */ - switch (resolution) - { - case shift_resolution: - obstack_fgrow2 (&solved_conflicts_xml_obstack, - "%s < %s", - xml_escape_n (0, r->prec->tag), - xml_escape_n (1, symbols[token]->tag)); - break; - - case reduce_resolution: - obstack_fgrow2 (&solved_conflicts_xml_obstack, - "%s < %s", - xml_escape_n (0, symbols[token]->tag), - xml_escape_n (1, r->prec->tag)); - break; - - case left_resolution: - obstack_fgrow1 (&solved_conflicts_xml_obstack, - "%%left %s", - xml_escape (symbols[token]->tag)); - break; - - case right_resolution: - obstack_fgrow1 (&solved_conflicts_xml_obstack, - "%%right %s", - xml_escape (symbols[token]->tag)); - break; - - case nonassoc_resolution: - obstack_fgrow1 (&solved_conflicts_xml_obstack, - "%%nonassoc %s", - xml_escape (symbols[token]->tag)); - break; - } + /* XML report */ + if (xml_flag) + { + /* The description of the resolution. */ + switch (resolution) + { + case shift_resolution: + case right_resolution: + obstack_fgrow2 (&solved_conflicts_xml_obstack, + " ", + r->number, + xml_escape (symbols[token]->tag)); + break; + + case reduce_resolution: + case left_resolution: + obstack_fgrow2 (&solved_conflicts_xml_obstack, + " ", + r->number, + xml_escape (symbols[token]->tag)); + break; + + case nonassoc_resolution: + obstack_fgrow2 (&solved_conflicts_xml_obstack, + " ", + r->number, + xml_escape (symbols[token]->tag)); + break; + } - obstack_sgrow (&solved_conflicts_xml_obstack, "\n"); - } + /* The reason. */ + switch (resolution) + { + case shift_resolution: + obstack_fgrow2 (&solved_conflicts_xml_obstack, + "%s < %s", + xml_escape_n (0, r->prec->tag), + xml_escape_n (1, symbols[token]->tag)); + break; + + case reduce_resolution: + obstack_fgrow2 (&solved_conflicts_xml_obstack, + "%s < %s", + xml_escape_n (0, symbols[token]->tag), + xml_escape_n (1, r->prec->tag)); + break; + + case left_resolution: + obstack_fgrow1 (&solved_conflicts_xml_obstack, + "%%left %s", + xml_escape (symbols[token]->tag)); + break; + + case right_resolution: + obstack_fgrow1 (&solved_conflicts_xml_obstack, + "%%right %s", + xml_escape (symbols[token]->tag)); + break; + + case nonassoc_resolution: + obstack_fgrow1 (&solved_conflicts_xml_obstack, + "%%nonassoc %s", + xml_escape (symbols[token]->tag)); + break; + } + + obstack_sgrow (&solved_conflicts_xml_obstack, "\n"); } } @@ -522,47 +522,6 @@ conflicts_output (FILE *out) fputs ("\n\n", out); } -void -conflicts_output_xml (FILE *out, int level) -{ - bool printed_sth = false; - state_number i; - int src_num; - int rrc_num; - - for (i = 0; i < nstates; i++) - { - state *s = states[i]; - if (conflicts[i]) - { - if (!printed_sth) { - fputc ('\n', out); - xml_puts (out, level, ""); - } - - src_num = count_sr_conflicts (s); - rrc_num = count_rr_conflicts (s, true); - - if (src_num) - xml_printf (out, level + 1, - "", - i, src_num); - if (rrc_num) - xml_printf (out, level + 1, - "", - i, rrc_num); - - printed_sth = true; - } - } - if (printed_sth) - xml_puts (out, level, ""); - else - xml_puts (out, level, ""); -} - /*--------------------------------------------------------. | Total the number of S/R and R/R conflicts. Unlike the | | code in conflicts_output, however, count EACH pair of |