+2009-06-11 Akim Demaille <demaille@gostai.com>
+
+ xml: beware of user strings used to give a %prec to rules.
+ * tests/conflicts.at (%prec with user strings): New.
+ * src/gram.c (grammar_rules_print_xml): Escape the precedence for
+ XML output.
+
2009-06-11 Akim Demaille <demaille@gostai.com>
hash: check insertion for memory exhaustion.
/* Allocate input grammar variables for Bison.
Copyright (C) 1984, 1986, 1989, 2001, 2002, 2003, 2005, 2006
- 2007, 2008 Free Software Foundation, Inc.
+ 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
fprintf (out, "<rule number=\"%d\" usefulness=\"%s\"",
rules[r].number, usefulness);
if (rules[r].precsym)
- fprintf (out, " percent_prec=\"%s\"", rules[r].precsym->tag);
+ fprintf (out, " percent_prec=\"%s\"",
+ xml_escape (rules[r].precsym->tag));
fputs (">\n", out);
}
rule_lhs_print_xml (&rules[r], out, level + 3);
AT_CLEANUP
-## ------------------------------- ##
-## %no-default-prec without %prec ##
-## ------------------------------- ##
+## ------------------------- ##
+## %prec with user strings. ##
+## ------------------------- ##
+
+AT_SETUP([%prec with user string])
+
+AT_DATA([[input.y]],
+[[%%
+exp:
+ "foo" %prec "foo"
+;
+]])
+
+AT_BISON_CHECK([-o input.c input.y])
+AT_CLEANUP
+
+
+## -------------------------------- ##
+## %no-default-prec without %prec. ##
+## -------------------------------- ##
AT_SETUP([%no-default-prec without %prec])