mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-18 08:43:03 +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>
|
2002-07-26 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* src/reader.h, src/reader.c (gram_error): ... can't get
|
* src/reader.h, src/reader.c (gram_error): ... can't get
|
||||||
|
|||||||
@@ -439,8 +439,9 @@ reduce_grammar (void)
|
|||||||
reduce_print ();
|
reduce_print ();
|
||||||
|
|
||||||
if (!bitset_test (N, axiom->number - ntokens))
|
if (!bitset_test (N, axiom->number - ntokens))
|
||||||
fatal (_("Start symbol %s does not derive any sentence"),
|
fatal_at (startsymbol_location,
|
||||||
symbols[axiom->number]->tag);
|
_("start symbol %s does not derive any sentence"),
|
||||||
|
startsymbol->tag);
|
||||||
|
|
||||||
/* First reduce the nonterminals, as they renumber themselves in the
|
/* First reduce the nonterminals, as they renumber themselves in the
|
||||||
whole grammar. If you change the order, nonterms would be
|
whole grammar. If you change the order, nonterms would be
|
||||||
|
|||||||
@@ -332,3 +332,24 @@ Useless rules
|
|||||||
]])
|
]])
|
||||||
|
|
||||||
AT_CLEANUP
|
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