X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/d80fb37a26b24d8aa7a4428389a6004c7f2e93be..d0d3313d10a28aa6fe77f158d61b84424aa9b3ce:/src/gram.c?ds=sidebyside diff --git a/src/gram.c b/src/gram.c index 1f2885f0..d1b38043 100644 --- a/src/gram.c +++ b/src/gram.c @@ -1,7 +1,7 @@ /* Allocate input grammar variables for Bison. - Copyright (C) 1984, 1986, 1989, 2001, 2002, 2003, 2005, 2006 - 2007 Free Software Foundation, Inc. + Copyright (C) 1984, 1986, 1989, 2001-2003, 2005-2012 Free Software + Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -21,13 +21,13 @@ #include #include "system.h" -#include - +#include "complain.h" +#include "getargs.h" #include "gram.h" +#include "print-xml.h" #include "reader.h" #include "reduce.h" #include "symtab.h" -#include "print-xml.h" /* Comments for these variables are in gram.h. */ @@ -121,8 +121,7 @@ rule_rhs_print_xml (rule *r, FILE *out, int level) item_number *rp; xml_puts (out, level, ""); for (rp = r->rhs; *rp >= 0; rp++) - xml_printf (out, level + 1, "%s", - symbol_class_get_string (symbols[*rp]), + xml_printf (out, level + 1, "%s", xml_escape (symbols[*rp]->tag)); xml_puts (out, level, ""); } @@ -221,8 +220,13 @@ grammar_rules_print_xml (FILE *out, int level) usefulness = "useless-in-parser"; else usefulness = "useful"; - xml_printf (out, level + 2, "", - rules[r].number, usefulness); + xml_indent (out, level + 2); + fprintf (out, "tag)); + fputs (">\n", out); } rule_lhs_print_xml (&rules[r], out, level + 3); rule_rhs_print_xml (&rules[r], out, level + 3); @@ -304,9 +308,12 @@ grammar_rules_useless_report (const char *message) for (r = 0; r < nrules ; ++r) if (!rules[r].useful) { - location_print (stderr, rules[r].location); - fprintf (stderr, ": %s: %s: ", _("warning"), message); - rule_print (&rules[r], stderr); + warn_at (rules[r].location, "%s: ", message); + if (warnings_flag & warnings_other) + { + rule_print (&rules[r], stderr); + fflush (stderr); + } } }