Changes in version 2.3a+ (????-??-??):
+* 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
- 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:
%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
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:
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
bug affected only the `.output' file and not the generated parser source
code.
+* --report-file=FILE is a new flag to override the default `.output' file name.
+
* The `=' that used to be required in the following directives is now
deprecated:
%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
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
-----
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.