]> git.saurik.com Git - bison.git/blobdiff - NEWS
grammar: split %union to group together related aspects
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index a48ef713b65e3e09d21f0dbb9bb7c76a778d126b..3bfc1f94ee1184ecdce6f841977c3aca0a7124bf 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,14 +4,6 @@ GNU Bison NEWS
 
 ** WARNING: Future backward-incompatibilities!
 
 
 ** WARNING: Future backward-incompatibilities!
 
-  Bison will stop adding a semicolon at the end of the actions (as announced
-  in the release 2.5):
-
-    foo.y:2.25: warning: a ';' might be needed at the end of action code
-     exp: "number" { $$ = $1 }
-                             ^
-    foo.y:2.25:     future versions of Bison will not add the ';'
-
   Like other GNU packages, Bison will start using some of the C99 features
   for its own code, especially the definition of variables after statements.
   The generated C parsers still aim at C90.
   Like other GNU packages, Bison will start using some of the C99 features
   for its own code, especially the definition of variables after statements.
   The generated C parsers still aim at C90.
@@ -28,6 +20,9 @@ GNU Bison NEWS
   Support for YYLEX_PARAM and YYPARSE_PARAM is removed (deprecated in Bison
   1.875): use %lex-param, %parse-param, or %param.
 
   Support for YYLEX_PARAM and YYPARSE_PARAM is removed (deprecated in Bison
   1.875): use %lex-param, %parse-param, or %param.
 
+  Missing semicolons at the end of actions are no longer added (as announced
+  in the release 2.5).
+
 ** Bug fixes
 
 *** The epilogue is no longer affected by internal #defines (glr.c)
 ** Bug fixes
 
 *** The epilogue is no longer affected by internal #defines (glr.c)
@@ -221,6 +216,11 @@ GNU Bison NEWS
     bar.y: error: shift/reduce conflicts: 1 found, 0 expected
     bar.y: error: reduce/reduce conflicts: 2 found, 0 expected
 
     bar.y: error: shift/reduce conflicts: 1 found, 0 expected
     bar.y: error: reduce/reduce conflicts: 2 found, 0 expected
 
+** Incompatibilities with POSIX Yacc
+
+  The 'yacc' category is no longer part of '-Wall', enable it explicitly
+  with '-Wyacc'.
+
 ** Additional yylex/yyparse arguments
 
   The new directive %param declares additional arguments to both yylex and
 ** Additional yylex/yyparse arguments
 
   The new directive %param declares additional arguments to both yylex and
@@ -284,11 +284,27 @@ GNU Bison NEWS
   It used to be an error only if used in non GLR mode, _and_ if there are
   reduce/reduce conflicts.
 
   It used to be an error only if used in non GLR mode, _and_ if there are
   reduce/reduce conflicts.
 
-** Token numbering has changed to preserve the user-defined order
+** Tokens are numbered in their order of appearance
+
+  Contributed by Valentin Tolmer.
+
+  With '%token A B', A had a number less than the one of B.  However,
+  precedence declarations used to generate a reversed order.  This is now
+  fixed, and introducing tokens with any of %token, %left, %right,
+  %precedence, or %nonassoc yields the same result.
+
+  When mixing declarations of tokens with a litteral character (e.g., 'a')
+  or with an identifier (e.g., B) in a precedence declaration, Bison
+  numbered the litteral characters first.  For example
+
+    %right A B 'c' 'd'
+
+  would lead to the tokens declared in this order: 'c' 'd' A B.  Again, the
+  input order is now preserved.
 
 
-  When declaring %token A B, the numbering for A is inferior to B. Up to now,
-  when declaring associativity at the same time, with %left (or %right,
-  %precedence, %nonassoc), B was inferior to A.
+  These changes were made so that one can remove useless precedence and
+  associativity declarations (i.e., map %nonassoc, %left or %right to
+  %precedence, or to %token) and get exactly the same output.
 
 ** Useless precedence and associativity
 
 
 ** Useless precedence and associativity