mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
* 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.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user