mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
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.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
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.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* 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.
|
||||
|
||||
@@ -224,7 +224,8 @@ grammar_rules_print_xml (FILE *out, int level)
|
||||
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);
|
||||
|
||||
@@ -600,9 +600,26 @@ input.y: expected 0 reduce/reduce conflicts
|
||||
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])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user