]> git.saurik.com Git - bison.git/blobdiff - NEWS
Implement the FIXME that ends an user action with a semicolon
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index 09defd4d4f3e45656ada2b8c1343c7e4de946bc9..8a5fc93d4bae61876ecb78eafab2f2499e7adc31 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,12 +1,47 @@
 Bison News
 ----------
 
 Bison News
 ----------
 
-Changes in version 2.3a+ (????-??-??):
+Changes in version ?.? (????-??-??):
+
+* Java skeleton improvements:
+
+  The constants for token names were moved to the Lexer interface.
+  Also, it is possible to add code to the parser's constructors using
+  "%code init" and "%define init_throws".
+
+Changes in version 2.4 (2008-11-02):
+
+* %language is an experimental feature.
+
+  We first introduced this feature in test release 2.3b as a cleaner
+  alternative to %skeleton.  Since then, we have discussed the possibility of
+  modifying its effect on Bison's output file names.  Thus, in this release,
+  we consider %language to be an experimental feature that will likely evolve
+  in future releases.
+
+* Forward compatibility with GNU M4 has been improved.
+
+* Several bugs in the C++ skeleton and the experimental Java skeleton have been
+  fixed.
+
+Changes in version 2.3b (2008-05-27):
+
+* The quotes around NAME that used to be required in the following directive
+  are now deprecated:
+
+    %define NAME "VALUE"
+
+* The directive `%pure-parser' is now deprecated in favor of:
+
+    %define api.pure
+
+  which has the same effect except that Bison is more careful to warn about
+  unreasonable usage in the latter case.
 
 * Push Parsing
 
   Bison can now generate an LALR(1) parser in C with a push interface.  That
 
 * Push Parsing
 
   Bison can now generate an LALR(1) parser in C with a push interface.  That
-  is, instead of invoking yyparse, which pulls tokens from `yylex', you can
+  is, instead of invoking `yyparse', which pulls tokens from `yylex', you can
   push one token at a time to the parser using `yypush_parse', which will
   return to the caller after processing each token.  By default, the push
   interface is disabled.  Either of the following directives will enable it:
   push one token at a time to the parser using `yypush_parse', which will
   return to the caller after processing each token.  By default, the push
   interface is disabled.  Either of the following directives will enable it:
@@ -16,19 +51,47 @@ Changes in version 2.3a+ (????-??-??):
 
   See the new section `A Push Parser' in the Bison manual for details.
 
 
   See the new section `A Push Parser' in the Bison manual for details.
 
+  The current push parsing interface is experimental and may evolve.  More user
+  feedback will help to stabilize it.
+
 * The -g and --graph options now output graphs in Graphviz DOT format,
 * The -g and --graph options now output graphs in Graphviz DOT format,
-  not VCG format.
+  not VCG format.  Like --graph, -g now also takes an optional FILE argument
+  and thus cannot be bundled with other short options.
 
 
-* An experimental directive %language specifies the language of the
-  generated parser, which can be C (the default) or C++.  This
-  directive affects the skeleton used, and the names of the generated
-  files if the grammar file's name ends in ".y".
+* Java
+
+  Bison can now generate an LALR(1) parser in Java.  The skeleton is
+  `data/lalr1.java'.  Consider using the new %language directive instead of
+  %skeleton to select it.
+
+  See the new section `Java Parsers' in the Bison manual for details.
+
+  The current Java interface is experimental and may evolve.  More user
+  feedback will help to stabilize it.
+
+* %language
+
+  This new directive specifies the programming language of the generated
+  parser, which can be C (the default), C++, or Java.  Besides the skeleton
+  that Bison uses, the directive affects the names of the generated files if
+  the grammar file's name ends in ".y".
+
+* XML Automaton Report
+
+  Bison can now generate an XML report of the LALR(1) automaton using the new
+  `--xml' option.  The current XML schema is experimental and may evolve.  More
+  user feedback will help to stabilize it.
 
 * The grammar file may now specify the name of the parser header file using
   %defines.  For example:
 
     %defines "parser.h"
 
 
 * The grammar file may now specify the name of the parser header file using
   %defines.  For example:
 
     %defines "parser.h"
 
+* When reporting useless rules, useless nonterminals, and unused terminals,
+  Bison now employs the terms "useless in grammar" instead of "useless",
+  "useless in parser" instead of "never reduced", and "unused in grammar"
+  instead of "unused".
+
 * Unreachable State Removal
 
   Previously, Bison sometimes generated parser tables containing unreachable
 * Unreachable State Removal
 
   Previously, Bison sometimes generated parser tables containing unreachable
@@ -42,7 +105,7 @@ Changes in version 2.3a+ (????-??-??):
        directives in existing grammar files.
 
     3. For any rule used only in such states, Bison now reports the rule as
        directives in existing grammar files.
 
     3. For any rule used only in such states, Bison now reports the rule as
-       "never reduced because of conflicts".
+       "useless in parser due to conflicts".
 
   This feature can be disabled with the following directive:
 
 
   This feature can be disabled with the following directive:
 
@@ -52,7 +115,7 @@ Changes in version 2.3a+ (????-??-??):
   for further discussion.
 
 * Lookahead Set Correction in the `.output' Report
   for further discussion.
 
 * Lookahead Set Correction in the `.output' Report
-  
+
   When instructed to generate a `.output' file including lookahead sets
   (using `--report=lookahead', for example), Bison now prints each reduction's
   lookahead set only next to the associated state's one item that (1) is
   When instructed to generate a `.output' file including lookahead sets
   (using `--report=lookahead', for example), Bison now prints each reduction's
   lookahead set only next to the associated state's one item that (1) is
@@ -62,6 +125,9 @@ Changes in version 2.3a+ (????-??-??):
   bug affected only the `.output' file and not the generated parser source
   code.
 
   bug affected only the `.output' file and not the generated parser source
   code.
 
+* --report-file=FILE is a new option to override the default `.output' file
+  name.
+
 * The `=' that used to be required in the following directives is now
   deprecated:
 
 * The `=' that used to be required in the following directives is now
   deprecated:
 
@@ -69,11 +135,6 @@ Changes in version 2.3a+ (????-??-??):
     %name-prefix "c_"
     %output "parser.c"
 
     %name-prefix "c_"
     %output "parser.c"
 
-* The quotes around NAME that used to be required in the following directive
-  are now deprecated:
-
-    %define NAME "VALUE"
-
 * An Alternative to `%{...%}' -- `%code QUALIFIER {CODE}'
 
   Bison 2.3a provided a new set of directives as a more flexible alternative to
 * An Alternative to `%{...%}' -- `%code QUALIFIER {CODE}'
 
   Bison 2.3a provided a new set of directives as a more flexible alternative to
@@ -112,7 +173,7 @@ Changes in version 2.3a+ (????-??-??):
   sometimes prove to be false alarms in existing grammars employing the Yacc
   constructs $0 or $-N (where N is some positive integer).
 
   sometimes prove to be false alarms in existing grammars employing the Yacc
   constructs $0 or $-N (where N is some positive integer).
 
-  To enable these warnings, specify the flag `--warnings=midrule-values' or
+  To enable these warnings, specify the option `--warnings=midrule-values' or
   `-W', which is a synonym for `--warnings=all'.
 
 * Default %destructor or %printer with `<*>' or `<>'
   `-W', which is a synonym for `--warnings=all'.
 
 * Default %destructor or %printer with `<*>' or `<>'
@@ -140,6 +201,13 @@ Changes in version 2.3a+ (????-??-??):
   See the section `Freeing Discarded Symbols' in the Bison manual for further
   details.
 
   See the section `Freeing Discarded Symbols' in the Bison manual for further
   details.
 
+* %left, %right, and %nonassoc can now declare token numbers.  This is required
+  by POSIX.  However, see the end of section `Operator Precedence' in the Bison
+  manual for a caveat concerning the treatment of literal strings.
+
+* The nonfunctional --no-parser, -n, and %no-parser options have been
+  completely removed from Bison.
+
 Changes in version 2.3a, 2006-09-13:
 
 * Instead of %union, you can define and use your own union type
 Changes in version 2.3a, 2006-09-13:
 
 * Instead of %union, you can define and use your own union type
@@ -964,7 +1032,7 @@ End:
 -----
 
 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
 -----
 
 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This file is part of Bison, the GNU Compiler Compiler.
 
 
 This file is part of Bison, the GNU Compiler Compiler.