+2008-07-16 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Fix untranslatable composition of sentences. Reported by Goran
+ Uddeborg at
+ <http://lists.gnu.org/archive/html/bug-bison/2008-06/msg00000.html>.
+ * THANKS (Goran Uddeborg): Add.
+ * src/reduce.c (reduce_print): Report the number of nonterminals and
+ rules useless in the grammar in separate sentences.
+ * tests/reduce.at (Useless Rules): Update output.
+ (Reduced Automaton): Likewise.
+ (Underivable Rules): Likewise.
+ (Empty Language): Likewise.
+
2008-07-15 Joel E. Denny <jdenny@ces.clemson.edu>
Fix some .gitignore and .cvsignore problems.
Florian Krohm florian@edamail.fishkill.ibm.com
Frank Heckenbach frank@g-n-u.de
Frans Englich frans.englich@telia.com
+Goran Uddeborg goeran@uddeborg.se
Guido Trentalancia trentalg@aston.ac.uk
H. Merijn Brand h.m.brand@hccnet.nl
Hans Aberg haberg@matematik.su.se
static void
reduce_print (void)
{
- fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
-
if (nuseless_nonterminals > 0)
- fprintf (stderr, ngettext ("%d nonterminal",
- "%d nonterminals",
- nuseless_nonterminals),
- nuseless_nonterminals);
-
- if (nuseless_nonterminals > 0 && nuseless_productions > 0)
- fprintf (stderr, _(" and "));
-
+ {
+ fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
+ fprintf (stderr, ngettext ("%d nonterminal useless in grammar",
+ "%d nonterminals useless in grammar",
+ nuseless_nonterminals),
+ nuseless_nonterminals);
+ fprintf (stderr, "\n");
+ }
if (nuseless_productions > 0)
- fprintf (stderr, ngettext ("%d rule",
- "%d rules",
- nuseless_productions),
- nuseless_productions);
-
- if (nuseless_nonterminals > 0 || nuseless_productions > 0)
- fprintf (stderr, _(" useless in grammar"));
- fprintf (stderr, "\n");
+ {
+ fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
+ fprintf (stderr, ngettext ("%d rule useless in grammar",
+ "%d rules useless in grammar",
+ nuseless_productions),
+ nuseless_productions);
+ fprintf (stderr, "\n");
+ }
}
\f
void
]])
AT_BISON_CHECK([[input.y]], 0, [],
-[[input.y: warning: 9 nonterminals and 9 rules useless in grammar
+[[input.y: warning: 9 nonterminals useless in grammar
+input.y: warning: 9 rules useless in grammar
input.y:6.1-8: warning: nonterminal useless in grammar: useless1
input.y:7.1-8: warning: nonterminal useless in grammar: useless2
input.y:8.1-8: warning: nonterminal useless in grammar: useless3
]])
AT_BISON_CHECK([[not-reduced.y]], 0, [],
-[[not-reduced.y: warning: 2 nonterminals and 3 rules useless in grammar
+[[not-reduced.y: warning: 2 nonterminals useless in grammar
+not-reduced.y: warning: 3 rules useless in grammar
not-reduced.y:14.1-13: warning: nonterminal useless in grammar: not_reachable
not-reduced.y:11.6-19: warning: nonterminal useless in grammar: non_productive
not-reduced.y:11.6-57: warning: rule useless in grammar: exp: non_productive
]])
AT_BISON_CHECK([[input.y]], 0, [],
-[[input.y: warning: 2 nonterminals and 3 rules useless in grammar
+[[input.y: warning: 2 nonterminals useless in grammar
+input.y: warning: 3 rules useless in grammar
input.y:5.15-25: warning: nonterminal useless in grammar: underivable
input.y:6.14-24: warning: nonterminal useless in grammar: indirection
input.y:5.15-25: warning: rule useless in grammar: exp: underivable
]])
AT_BISON_CHECK([[input.y]], 1, [],
-[[input.y: warning: 2 nonterminals and 2 rules useless in grammar
+[[input.y: warning: 2 nonterminals useless in grammar
+input.y: warning: 2 rules useless in grammar
input.y:3.1-3: fatal error: start symbol exp does not derive any sentence
]])