]> git.saurik.com Git - bison.git/blobdiff - NEWS
style: comment changes
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index 5046a9b4a9923b813f0e0161a0d23e0a3fe8f100..3bfc1f94ee1184ecdce6f841977c3aca0a7124bf 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,14 +4,6 @@ GNU Bison NEWS
 
 ** 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.
@@ -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.
 
+  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)
@@ -39,7 +34,7 @@ GNU Bison NEWS
 
     int yylex (YYSTYPE *yylval);
 
-  This is has been fixed: yylval, yynerrs, yychar, and yylloc are now valid
+  This is fixed: yylval, yynerrs, yychar, and yylloc are now valid
   identifiers for user-provided variables.
 
 *** stdio.h is no longer needed when locations are enabled (yacc.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
 
+** 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
@@ -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.
 
-** 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