doc: cleanup.

* NEWS (2.5): Make some minor improvements to wording, and format
entries more consistently.
* doc/bison.texinfo (Language and Grammar): Point out that IELR
and canonical LR are experimental features.
(Decl Summary): In list of %define variables, make wording more
consistent.  Improve discussion of using LALR for GLR.
(cherry picked from commit f1b238df18)

Conflicts:

	doc/bison.texinfo
This commit is contained in:
Joel E. Denny
2010-12-19 22:14:08 -05:00
parent 4c38b19e26
commit 3b1977eab5
3 changed files with 43 additions and 29 deletions

44
NEWS
View File

@@ -3,7 +3,7 @@ Bison News
* Changes in version 2.5 (????-??-??):
** Named References Support
** Named references:
Historically, Yacc and Bison have supported positional references
($n, $$) to allow access to symbol values from inside of semantic
@@ -28,13 +28,13 @@ Bison News
These features are experimental in this version. More user feedback
will help to stabilize them.
** IELR(1) and Canonical LR(1) Support
** IELR(1) and canonical LR(1):
IELR(1) is a minimal LR(1) parser table generation algorithm. That
is, given any context-free grammar, IELR(1) generates parser tables
with the full language recognition power of canonical LR(1) but with
nearly the same number of parser states as LALR(1). This reduction in
parser states is often an order of magnitude. More importantly,
nearly the same number of parser states as LALR(1). This reduction
in parser states is often an order of magnitude. More importantly,
because canonical LR(1)'s extra parser states may contain duplicate
conflicts in the case of non-LR(1) grammars, the number of conflicts
for IELR(1) is often an order of magnitude less as well. This can
@@ -98,15 +98,15 @@ Bison News
LAC is an experimental feature. More user feedback will help to
stabilize it.
** Unrecognized %code qualifiers are now an error not a warning.
** Unrecognized %code qualifiers are now errors not warnings.
** %define improvements.
** %define improvements:
*** Unrecognized variables are now an error not a warning.
*** Unrecognized variables are now errors not warnings.
*** Multiple invocations for any variable is now an error not a warning.
*** Can now be invoked via the command line.
*** Can now be invoked via the command line:
Each of these command-line options
@@ -125,7 +125,7 @@ Bison News
quietly override %define, but -D and --define do not. For further
details, see the section "Bison Options" in the Bison manual.
*** Variables renamed.
*** Variables renamed:
The following %define variables
@@ -140,7 +140,7 @@ Bison News
The old names are now deprecated but will be maintained indefinitely
for backward compatibility.
*** Values no longer need to be quoted in grammar file.
*** Values no longer need to be quoted in grammar file:
If a %define value is an identifier, it no longer needs to be placed
within quotations marks. For example,
@@ -151,15 +151,15 @@ Bison News
%define api.push-pull push
** Symbol names.
** Grammar symbol names can now contain dashes:
Consistently with directives (such as %error-verbose) and variables
(e.g. push-pull), symbol names may include dashes in any position,
similarly to periods and underscores. This is GNU extension over
POSIX Yacc whose use is reported by -Wyacc, and rejected in Yacc
mode (--yacc).
(e.g. push-pull), grammar symbol names may include dashes in any
position, similarly to periods and underscores. This is GNU
extension over POSIX Yacc whose use is reported by -Wyacc, and
rejected in Yacc mode (--yacc).
** YYFAIL now produces warnings and Java parsers no longer implement it.
** YYFAIL now produces warnings and Java parsers no longer implement it:
YYFAIL has existed for many years as an undocumented feature of
deterministic parsers in C generated by Bison. More recently, it was
@@ -170,7 +170,7 @@ Bison News
discussion of how to suppress C preprocessor warnings about YYFAIL
being unused, see the Bison 2.4.2 NEWS entry.
** Temporary hack for adding a semicolon to the user action.
** Temporary hack for adding a semicolon to the user action:
Previously, Bison appended a semicolon to every user action for
reductions when the output language defaulted to C (specifically, when
@@ -191,7 +191,7 @@ Bison News
about a missing semicolon where it did not before. Future releases of
Bison will cease to append semicolons entirely.
** Character literals not of length one.
** Character literals not of length one:
Previously, Bison quietly converted all character literals to length
one. For example, without warning, Bison interpreted the operators in
@@ -202,7 +202,7 @@ Bison News
;
Bison now warns when a character literal is not of length one. In
some future release, Bison will report an error instead.
some future release, Bison will start reporting an error instead.
** Verbose syntax error message fixes:
@@ -242,14 +242,14 @@ Bison News
canonical LR. However, LAC is still experimental and is disabled
by default.
** Destructor calls fixed for lookaheads altered in semantic actions.
** Destructor calls fixed for lookaheads altered in semantic actions:
Previously for deterministic parsers in C, if a user semantic action
altered yychar, the parser in some cases used the old yychar value to
determine which destructor to call for the lookahead upon a syntax
error or upon parser return. This bug has been fixed.
** C++ parsers use YYRHSLOC
** C++ parsers use YYRHSLOC:
Similarly to the C parsers, the C++ parsers now define the YYRHSLOC
macro and use it in the default YYLLOC_DEFAULT. You are encouraged
@@ -284,7 +284,7 @@ Bison News
} \
while (false)
** YYLLOC_DEFAULT in C++
** YYLLOC_DEFAULT in C++:
The default implementation of YYLLOC_DEFAULT used to be issued in
the header file. It is now output in the implementation file, after