* NEWS (2.5): Document.
* src/reader.c (grammar_rule_check): Convert warning to
complaint.
* tests/input.at (%prec's token must be defined): Update.
(cherry picked from commit
510df9519ec6347c13a57535d0589e3a87bfe2fe)
+2009-12-30 Joel E. Denny <jdenny@clemson.edu>
+
+ POSIX: complain if %prec's token was not defined.
+ * NEWS (2.5): Document.
+ * src/reader.c (grammar_rule_check): Convert warning to
+ complaint.
+ * tests/input.at (%prec's token must be defined): Update.
+
2009-12-30 Joel E. Denny <jdenny@clemson.edu>
POSIX: warn if %prec's token was not defined.
discussion of how to suppress C preprocessor warnings about YYFAIL
being unused, see the Bison 2.4.2 NEWS entry.
+** `%prec IDENTIFIER' requires IDENTIFIER to be defined separately.
+
+ As promised in Bison 2.4.2's NEWS entry, it is now an error if a token
+ that appears after a %prec directive is not defined by %token, %left,
+ %right, or %nonassoc. This is required by POSIX.
+
** Temporary hack for adding a semicolon to the user action.
Previously, Bison appended a semicolon to every user action for
if (r->ruleprec
&& r->ruleprec->tag[0] != '\'' && r->ruleprec->tag[0] != '"'
&& !r->ruleprec->declared && !r->ruleprec->prec)
- warn_at (r->location, _("token for %%prec is not defined: %s"),
- r->ruleprec->tag);
+ complain_at (r->location, _("token for %%prec is not defined: %s"),
+ r->ruleprec->tag);
}
start: %prec PREC ;
]])
-AT_BISON_CHECK([[input.y]], [[0]], [],
-[[input.y:2.8-17: warning: token for %prec is not defined: PREC
+AT_BISON_CHECK([[input.y]], [[1]], [],
+[[input.y:2.8-17: token for %prec is not defined: PREC
]])
AT_CLEANUP