1 |
Bison News |
Bison News |
2 |
---------- |
---------- |
3 |
|
|
4 |
Changes in version 1.75f, 2002-12-28: |
Changes in version 1.875, 2003-01-01: |
5 |
|
|
6 |
* In Yacc-style parsers YYLLOC_DEFAULT is now used to compute error |
* The documentation license has been upgraded to version 1.2 |
7 |
locations too. This fixes bugs in error-location computation. |
of the GNU Free Documentation License. |
|
|
|
|
* Bison now uses a Yacc-style format for conflict reports, e.g., |
|
|
"conflicts: 2 shift/reduce, 1 reduce/reduce". |
|
|
|
|
|
* Bison now warns if it detects conflicting outputs to the same file, |
|
|
e.g., it generates a warning for "bison -d -o foo.h foo.y" since |
|
|
that command outputs both code and header to foo.h. |
|
|
|
|
|
Changes in version 1.75e, 2002-12-24: |
|
|
|
|
|
* If the user does not define YYSTYPE as a macro, Bison now declares it |
|
|
using typedef instead of defining it as a macro. POSIX requires this. |
|
|
For consistency, YYLTYPE is also declared instead of defined. |
|
8 |
|
|
9 |
* %union directives can now have a tag before the `{', e.g., the |
* syntax error processing |
|
directive `%union foo {...}' now generates the C code |
|
|
`typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility. |
|
|
The default union tag is `YYSTYPE', for compatibility with Solaris 9 Yacc. |
|
|
For consistency, YYLTYPE's struct tag is now `YYLTYPE' instead of `yyltype'. |
|
10 |
|
|
11 |
* `yystype' and `yyltype' are now obsolescent macros instead of being |
- In Yacc-style parsers YYLLOC_DEFAULT is now used to compute error |
12 |
typedefs or tags; they are no longer documented and will be |
locations too. This fixes bugs in error-location computation. |
|
withdrawn in a future release. |
|
13 |
|
|
14 |
* References to the experimental %lex-param and %parse-param directives |
- %destructor |
15 |
have been temporarily removed from the manual, since we don't want |
It is now possible to reclaim the memory associated to symbols |
16 |
users to rely upon these features quite yet. |
discarded during error recovery. This feature is still experimental. |
17 |
|
|
18 |
Changes in version 1.75d, 2002-12-13: |
- %error-verbose |
19 |
|
This new directive is preferred over YYERROR_VERBOSE. |
20 |
|
|
21 |
* Semicolons are once again optional at the end of grammar rules. |
- #defining yyerror to steal internal variables is discouraged. |
22 |
This reverts to the behavior of Bison 1.33 and earlier, and improves |
It is not guaranteed to work forever. |
|
compatibility with Yacc. |
|
23 |
|
|
24 |
* Type clashes now generate warnings, not errors. |
* POSIX conformance |
25 |
|
|
26 |
* Yacc command and library now available |
- Semicolons are once again optional at the end of grammar rules. |
27 |
The Bison distribution now installs a yacc command, as POSIX requires. |
This reverts to the behavior of Bison 1.33 and earlier, and improves |
28 |
Also, Bison now installs a small library liby.a containing |
compatibility with Yacc. |
|
implementations of Yacc-compatible yyerror and main functions. |
|
|
This library is normally not useful, but POSIX requires it. |
|
29 |
|
|
30 |
* %lex-param, %parse-param |
- `parse error' -> `syntax error' |
31 |
These now take just one operand, not two. |
Bison now uniformly uses the term `syntax error'; formerly, the code |
32 |
|
and manual sometimes used the term `parse error' instead. POSIX |
33 |
|
requires `syntax error' in diagnostics, and it was thought better to |
34 |
|
be consistent. |
35 |
|
|
36 |
* The documentation now emphasizes that yylex and yyerror must be |
- The documentation now emphasizes that yylex and yyerror must be |
37 |
declared before use. C99 requires this. |
declared before use. C99 requires this. |
38 |
|
|
39 |
* The documentation license has been upgraded to version 1.2 |
- Bison now parses C99 lexical constructs like UCNs and |
40 |
of the GNU Free Documentation License. |
backslash-newline within C escape sequences, as POSIX 1003.1-2001 requires. |
41 |
|
|
42 |
Changes in version 1.75c, 2002-11-25: |
- File names are properly escaped in C output. E.g., foo\bar.y is |
43 |
|
output as "foo\\bar.y". |
44 |
|
|
45 |
* "parse error" -> "syntax error" |
- Yacc command and library now available |
46 |
Bison now uniformly uses the term "syntax error"; formerly, the code |
The Bison distribution now installs a `yacc' command, as POSIX requires. |
47 |
and manual sometimes used the term "parse error" instead. POSIX |
Also, Bison now installs a small library liby.a containing |
48 |
requires "syntax error" in diagnostics, and it was thought better to |
implementations of Yacc-compatible yyerror and main functions. |
49 |
be consistent. |
This library is normally not useful, but POSIX requires it. |
50 |
|
|
51 |
* "parsing stack overflow..." -> "parser stack overflow" |
- Type clashes now generate warnings, not errors. |
|
GLR parsers now report "parser stack overflow" as per the Bison manual. |
|
52 |
|
|
53 |
* GLR and inline |
- If the user does not define YYSTYPE as a macro, Bison now declares it |
54 |
Users of Bison have to decide how they handle the portability of the |
using typedef instead of defining it as a macro. |
55 |
C keyword `inline'. |
For consistency, YYLTYPE is also declared instead of defined. |
56 |
|
|
57 |
Changes in version 1.75b, 2002-11-13: |
* Other compatibility issues |
58 |
|
|
59 |
* %destructor |
- %union directives can now have a tag before the `{', e.g., the |
60 |
It is now possible to reclaim the memory associated to symbols |
directive `%union foo {...}' now generates the C code |
61 |
discarded during error recovery. This feature is still experimental. |
`typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility. |
62 |
|
The default union tag is `YYSTYPE', for compatibility with Solaris 9 Yacc. |
63 |
|
For consistency, YYLTYPE's struct tag is now `YYLTYPE' not `yyltype'. |
64 |
|
This is for compatibility with both Yacc and Bison 1.35. |
65 |
|
|
66 |
* Bison now parses C99 lexical constructs like UCNs and |
- `;' is output before the terminating `}' of an action, for |
67 |
backslash-newline within C escape sequences, as POSIX 1003.1-2001 requires. |
compatibility with Bison 1.35. |
68 |
|
|
69 |
* --no-line works properly. |
- Bison now uses a Yacc-style format for conflict reports, e.g., |
70 |
|
`conflicts: 2 shift/reduce, 1 reduce/reduce'. |
71 |
|
|
72 |
* %error-verbose |
- `yystype' and `yyltype' are now obsolescent macros instead of being |
73 |
This new directive is preferred over YYERROR_VERBOSE. |
typedefs or tags; they are no longer documented and are planned to be |
74 |
|
withdrawn in a future release. |
75 |
|
|
76 |
* %lex-param, %parse-param |
* GLR parser notes |
|
These new directives are preferred over PARSE_PARAM and LEX_PARAM. |
|
|
In addition, they provide a means for yyerror to remain pure, and |
|
|
to access to the current location. |
|
77 |
|
|
78 |
#defining yyerror to steal internal variables is strongly |
- GLR and inline |
79 |
discouraged. It is not guaranteed to work for ever. |
Users of Bison have to decide how they handle the portability of the |
80 |
|
C keyword `inline'. |
81 |
|
|
82 |
* #line |
- `parsing stack overflow...' -> `parser stack overflow' |
83 |
Bison now recognizes #line in its input, and forwards them. |
GLR parsers now report `parser stack overflow' as per the Bison manual. |
84 |
|
|
85 |
* #line |
* Bison now warns if it detects conflicting outputs to the same file, |
86 |
File names are properly escaped. E.g. foo\bar.y give #line 123 "foo\\bar.y". |
e.g., it generates a warning for `bison -d -o foo.h foo.y' since |
87 |
|
that command outputs both code and header to foo.h. |
88 |
|
|
89 |
Changes in version 1.75a, 2002-10-24: |
* #line in output files |
90 |
|
- --no-line works properly. |
91 |
|
|
92 |
* Bison can no longer be built by a K&R C compiler; it requires C89 or |
* Bison can no longer be built by a K&R C compiler; it requires C89 or |
93 |
later to be built. This change originally took place a few versions |
later to be built. This change originally took place a few versions |
528 |
|
|
529 |
----- |
----- |
530 |
|
|
531 |
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free |
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 |
532 |
Software Foundation, Inc. |
Free Software Foundation, Inc. |
533 |
|
|
534 |
This file is part of Bison, the GNU Compiler Compiler. |
This file is part of Bison, the GNU Compiler Compiler. |
535 |
|
|