mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 16:23:04 +00:00
* 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:
@@ -1,3 +1,9 @@
|
|||||||
|
2006-02-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
|
* NEWS: Version 2.1a.
|
||||||
|
* tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
|
||||||
|
since C99 requires this.
|
||||||
|
|
||||||
2006-02-11 Paul Eggert <eggert@cs.ucla.edu>
|
2006-02-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
* m4/c-working.m4: New file.
|
* m4/c-working.m4: New file.
|
||||||
@@ -1376,7 +1382,7 @@
|
|||||||
|
|
||||||
2005-09-19 Akim Demaille <akim@epita.fr>
|
2005-09-19 Akim Demaille <akim@epita.fr>
|
||||||
|
|
||||||
* NEWS, configure.ac: Version 2.1a.
|
* NEWS, configure.ac: update version number to 2.1a.
|
||||||
|
|
||||||
2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
|
2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
|
|||||||
33
NEWS
33
NEWS
@@ -1,14 +1,14 @@
|
|||||||
Bison News
|
Bison News
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Changes in version 2.1a:
|
Changes in version 2.1a, 2006-02-13:
|
||||||
|
|
||||||
* Bison now allows multiple %union declarations, and concatenates
|
* Bison now allows multiple %union declarations, and concatenates
|
||||||
their contents together.
|
their contents together.
|
||||||
|
|
||||||
* New warning: unused values
|
* New warning: unused values
|
||||||
Typed right-hand side symbols whose value are not used are reported.
|
Typed right-hand side symbols whose values are not used are reported,
|
||||||
For instance:
|
if the associated types have destructors. For instance:
|
||||||
|
|
||||||
exp: exp "?" exp ":" exp { $1 ? $1 : $3; }
|
exp: exp "?" exp ":" exp { $1 ? $1 : $3; }
|
||||||
| exp "+" exp
|
| 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
|
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
|
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 "?" exp ":" exp
|
||||||
| exp "+" exp { $$ = $1 + $3; }
|
{ $$ = $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
|
However, if the original actions were really intended, memory leaks
|
||||||
can be suppressed by letting Bison believe the values are used, e.g.:
|
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 "?" exp ":" exp { $1 ? $1 : $3; (void) ($$, $5); }
|
||||||
| exp "+" exp { $$ = $1; (void) $3; }
|
| exp "+" exp { $$ = $1; (void) $3; }
|
||||||
@@ -34,12 +37,6 @@ Changes in version 2.1a:
|
|||||||
|
|
||||||
exp: exp { push ($1); } '+' exp { push ($3); sum (); };
|
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.
|
The warning is intended to help catching lost values and memory leaks.
|
||||||
If a value is ignored, its associated memory typically is not reclaimed.
|
If a value is ignored, its associated memory typically is not reclaimed.
|
||||||
|
|
||||||
@@ -53,14 +50,14 @@ Changes in version 2.1a:
|
|||||||
instead of warnings.
|
instead of warnings.
|
||||||
|
|
||||||
* GLR, YACC parsers.
|
* GLR, YACC parsers.
|
||||||
The %parse-params are available in the %destructor's (and the
|
The %parse-params are available in the destructors (and the
|
||||||
experimental %printer's) as per the documentation.
|
experimental printers) as per the documentation.
|
||||||
|
|
||||||
* Bison now warns if it finds a stray `$' or `@' in an action.
|
* Bison now warns if it finds a stray `$' or `@' in an action.
|
||||||
|
|
||||||
* %require "VERSION"
|
* %require "VERSION"
|
||||||
To specify that the grammar file depends on features implemented in
|
This specifies that the grammar file depends on features implemented
|
||||||
Bison version VERSION or higher.
|
in Bison version VERSION or higher.
|
||||||
|
|
||||||
* lalr1.cc: The token and value types are now class members.
|
* lalr1.cc: The token and value types are now class members.
|
||||||
The tokens were defined as free form enums and cpp macros. YYSTYPE
|
The tokens were defined as free form enums and cpp macros. YYSTYPE
|
||||||
|
|||||||
@@ -58,6 +58,8 @@ AS_MKDIR_P([$dirname])
|
|||||||
AT_DATA_GRAMMAR([$1.y],
|
AT_DATA_GRAMMAR([$1.y],
|
||||||
[%{
|
[%{
|
||||||
#include <$1.h>
|
#include <$1.h>
|
||||||
|
void yyerror (const char *);
|
||||||
|
int yylex (void);
|
||||||
%}
|
%}
|
||||||
%%
|
%%
|
||||||
dummy:;
|
dummy:;
|
||||||
|
|||||||
Reference in New Issue
Block a user