]> git.saurik.com Git - bison.git/commitdiff
POSIX: complain if %prec's token was not defined.
authorJoel E. Denny <jdenny@clemson.edu>
Wed, 30 Dec 2009 08:14:12 +0000 (03:14 -0500)
committerJoel E. Denny <jdenny@clemson.edu>
Thu, 31 Dec 2009 17:54:09 +0000 (12:54 -0500)
* 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)

ChangeLog
NEWS
src/reader.c
tests/input.at

index 699ede37f67079e651e4b82dda0af0ee9eeca017..5388e29cea7516b7ccc45924fee76c3db24977a3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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.
diff --git a/NEWS b/NEWS
index 5799790572eb10a4496e356915f62c666bf105cc..13b199e6e024d6bf3b190f6b4e302b8caa9a9585 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -180,6 +180,12 @@ Bison News
   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
index 250e4f8b74730ffdfce6542b45be8fc4f18fe38c..3f00754131c1fe6e5e92f64ab919781aa094c61d 100644 (file)
@@ -327,8 +327,8 @@ grammar_rule_check (const symbol_list *r)
   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);
 }
 
 
index 6f0d70c32687234a2ec5bab2b1cf9ffa295170b8..1a08f356f7eb0e51894d42df0dbef1d112035c6f 100644 (file)
@@ -807,8 +807,8 @@ AT_DATA([[input.y]],
 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