* NEWS: Version 2.1a.

* tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
since C99 requires this.
This commit is contained in:
Paul Eggert
2006-02-13 19:07:04 +00:00
parent 498e897c67
commit 4e26c69eb6
3 changed files with 24 additions and 19 deletions

33
NEWS
View File

@@ -1,14 +1,14 @@
Bison News
----------
Changes in version 2.1a:
Changes in version 2.1a, 2006-02-13:
* Bison now allows multiple %union declarations, and concatenates
their contents together.
* New warning: unused values
Typed right-hand side symbols whose value are not used are reported.
For instance:
Typed right-hand side symbols whose values are not used are reported,
if the associated types have destructors. For instance:
exp: exp "?" exp ":" exp { $1 ? $1 : $3; }
| exp "+" exp
@@ -16,14 +16,17 @@ Changes in version 2.1a:
will trigger a warning about $$ and $5 in the first rule, and $3 in
the second ($1 is copied to $$ by the default rule). This example
most likely contains three errors, and should be rewritten as:
most likely contains three errors, and could be rewritten as:
exp: exp "?" exp ":" exp { $$ = $1 ? $3 : $5; }
| exp "+" exp { $$ = $1 + $3; }
exp: exp "?" exp ":" exp
{ $$ = $1 ? $3 : $5; free ($1 ? $5 : $3); free ($1); }
| exp "+" exp
{ $$ = $1 ? $1 : $3; if ($1) free ($3); }
;
However, if the original actions were really intended, the warnings
can be suppressed by letting Bison believe the values are used, e.g.:
However, if the original actions were really intended, memory leaks
and all, the warnings can be suppressed by letting Bison believe the
values are used, e.g.:
exp: exp "?" exp ":" exp { $1 ? $1 : $3; (void) ($$, $5); }
| exp "+" exp { $$ = $1; (void) $3; }
@@ -34,12 +37,6 @@ Changes in version 2.1a:
exp: exp { push ($1); } '+' exp { push ($3); sum (); };
Mid-rule actions that use $$ cause the corresponding value to be
set, therefore the following action must use it. The following rule
triggers a warning about $2.
exp: '1' { $$ = 1; } '+' exp { $$ = $1 + $4; };
The warning is intended to help catching lost values and memory leaks.
If a value is ignored, its associated memory typically is not reclaimed.
@@ -53,14 +50,14 @@ Changes in version 2.1a:
instead of warnings.
* GLR, YACC parsers.
The %parse-params are available in the %destructor's (and the
experimental %printer's) as per the documentation.
The %parse-params are available in the destructors (and the
experimental printers) as per the documentation.
* Bison now warns if it finds a stray `$' or `@' in an action.
* %require "VERSION"
To specify that the grammar file depends on features implemented in
Bison version VERSION or higher.
This specifies that the grammar file depends on features implemented
in Bison version VERSION or higher.
* lalr1.cc: The token and value types are now class members.
The tokens were defined as free form enums and cpp macros. YYSTYPE