From: Wojciech Polak Date: Thu, 11 Oct 2007 16:36:49 +0000 (+0000) Subject: (print_core): Remove item set redundancy. X-Git-Tag: v2.3b~84 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/25f6da67d3bcacc570804c76b9312f74699c22fe?ds=inline (print_core): Remove item set redundancy. --- diff --git a/src/print-xml.c b/src/print-xml.c index 2a578488..d1535a33 100644 --- a/src/print-xml.c +++ b/src/print-xml.c @@ -108,6 +108,7 @@ print_core (FILE *out, int level, state *s) for (i = 0; i < snritems; i++) { + bool printed = false; item_number *sp; item_number *sp1; rule_number r; @@ -118,30 +119,33 @@ print_core (FILE *out, int level, state *s) sp++; r = item_number_as_rule_number (*sp); - - xml_printf (out, level + 1, "", - rules[r].number); - - rule_lhs_print_xml (&rules[r], out, level + 2); - - xml_puts (out, level + 2, ""); - for (sp = rules[r].rhs; sp < sp1; sp++) - xml_printf (out, level + 3, "%s", - symbol_class_get_string (symbols[*sp]), - xml_escape (symbols[*sp]->tag)); - xml_puts (out, level + 3, ""); - for (/* Nothing */; *sp >= 0; ++sp) - xml_printf (out, level + 3, "%s", - symbol_class_get_string (symbols[*sp]), - xml_escape (symbols[*sp]->tag)); - - xml_puts (out, level + 2, ""); + sp = rules[r].rhs; /* Display the lookahead tokens? */ if (report_flag & report_lookahead_tokens) - state_rule_lookahead_tokens_print_xml (s, &rules[r], out, level + 2); + { + reductions *reds = s->reductions; + int red = state_reduction_find (s, &rules[r]); + /* Print item with lookaheads if there are. */ + if (reds->lookahead_tokens && red != -1) + { + xml_printf (out, level + 1, + "", + rules[r].number, sp1 - sp); + state_rule_lookahead_tokens_print_xml (s, &rules[r], + out, level + 2); + xml_puts (out, level + 1, ""); + printed = true; + } + } - xml_puts (out, level + 1, ""); + if (!printed) + { + xml_printf (out, level + 1, + "", + rules[r].number, + sp1 - sp); + } } xml_puts (out, level, ""); }