mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +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>
|
2009-06-11 Akim Demaille <demaille@gostai.com>
|
||||||
|
|
||||||
hash: check insertion for memory exhaustion.
|
hash: check insertion for memory exhaustion.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* Allocate input grammar variables for Bison.
|
/* Allocate input grammar variables for Bison.
|
||||||
|
|
||||||
Copyright (C) 1984, 1986, 1989, 2001, 2002, 2003, 2005, 2006
|
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.
|
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\"",
|
fprintf (out, "<rule number=\"%d\" usefulness=\"%s\"",
|
||||||
rules[r].number, usefulness);
|
rules[r].number, usefulness);
|
||||||
if (rules[r].precsym)
|
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);
|
fputs (">\n", out);
|
||||||
}
|
}
|
||||||
rule_lhs_print_xml (&rules[r], out, level + 3);
|
rule_lhs_print_xml (&rules[r], out, level + 3);
|
||||||
|
|||||||
@@ -600,9 +600,26 @@ input.y: expected 0 reduce/reduce conflicts
|
|||||||
AT_CLEANUP
|
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])
|
AT_SETUP([%no-default-prec without %prec])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user