]> git.saurik.com Git - bison.git/commitdiff
* src/reduce.c (reduce_grammar): When the language is empty,
authorAkim Demaille <akim@epita.fr>
Mon, 29 Jul 2002 17:28:56 +0000 (17:28 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 29 Jul 2002 17:28:56 +0000 (17:28 +0000)
complain about the start symbol, not the axiom.
Use its location.
* tests/reduce.at (Empty Language): New.

ChangeLog
src/reduce.c
tests/reduce.at

index da80bdc460e6381a11183dd5845b13a581a7496a..5b9c35dfb3dd9b94f894b23a85395cec68612aff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-07-29  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (reduce_grammar): When the language is empty,
+       complain about the start symbol, not the axiom.
+       Use its location.
+       * tests/reduce.at (Empty Language): New.
+
 2002-07-26  Akim Demaille  <akim@epita.fr>
 
        * src/reader.h, src/reader.c (gram_error): ... can't get
index 154e63bf404af9d6279b2dde8044a3268fae58d8..aadf3f8819bd72f903caae07781b008b38ba212e 100644 (file)
@@ -439,8 +439,9 @@ reduce_grammar (void)
   reduce_print ();
 
   if (!bitset_test (N, axiom->number - ntokens))
-    fatal (_("Start symbol %s does not derive any sentence"),
-          symbols[axiom->number]->tag);
+    fatal_at (startsymbol_location,
+             _("start symbol %s does not derive any sentence"),
+             startsymbol->tag);
 
   /* First reduce the nonterminals, as they renumber themselves in the
      whole grammar.  If you change the order, nonterms would be
index 7dc939ed399e4428911efeb30449c28cd37287fa..4c8da723898cc719bab2105918899cc9250b34db 100644 (file)
@@ -332,3 +332,24 @@ Useless rules
 ]])
 
 AT_CLEANUP
+
+
+
+## ---------------- ##
+## Empty Language.  ##
+## ---------------- ##
+
+AT_SETUP([Empty Language])
+
+AT_DATA([[input.y]],
+[[%output="input.c"
+%%
+exp: exp;
+]])
+
+AT_CHECK([[bison input.y]], 1, [],
+[[input.y: warning: 2 useless nonterminals and 2 useless rules
+input.y:3.1-3: fatal error: start symbol exp does not derive any sentence
+]])
+
+AT_CLEANUP