]> git.saurik.com Git - bison.git/commitdiff
Fix untranslatable composition of sentences.
authorJoel E. Denny <jdenny@ces.clemson.edu>
Wed, 16 Jul 2008 06:56:36 +0000 (02:56 -0400)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Wed, 16 Jul 2008 06:56:36 +0000 (02:56 -0400)
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.

ChangeLog
THANKS
src/reduce.c
tests/reduce.at

index 8ac70e0e735896232ff52a272ed79c508a902a2e..9d5692cc27e9d8e166c7f5e3cf5b410823f2df10 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+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.
diff --git a/THANKS b/THANKS
index a54bf045d3c3d6ae88d96177d896c3341b008320..3842f6c3de9077eae573fd7eac5818f25d03f54f 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -33,6 +33,7 @@ Fabrice Bauzac            noon@cote-dazur.com
 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
index 1306374acbfd0065f89ee190ba345019a7b737d2..1f8fc34756861eece95541de2e06b7c82bb3c6f9 100644 (file)
@@ -382,26 +382,24 @@ reduce_output (FILE *out)
 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
index c7ca3266aeed5519f1fdf5eaf085ba30d8ddbbf2..55220c832b470f84afedbdcc07dc7086d2ee5c3e 100644 (file)
@@ -142,7 +142,8 @@ useless9: '9';
 ]])
 
 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
@@ -237,7 +238,8 @@ non_productive: non_productive useless_token
 ]])
 
 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
@@ -311,7 +313,8 @@ indirection: underivable;
 ]])
 
 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
@@ -346,7 +349,8 @@ exp: exp;
 ]])
 
 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
 ]])