complain about the start symbol, not the axiom.
Use its location.
* tests/reduce.at (Empty Language): New.
+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
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
]])
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