[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bison 1.49b released
From: |
Paul Eggert |
Subject: |
Bison 1.49b released |
Date: |
Mon, 12 Aug 2002 11:35:06 -0700 (PDT) |
The Bison team is happy to present its 1.49b test release. Akim
Demaille has done a yeoman's job in preparing this new version, and we
feel that we're getting much closer to an official release. Also,
we'd like to draw your attention to the new GLR parser-generator
contributed by Paul Hilfinger.
Here are the URLs:
ftp://alpha.gnu.org/gnu/bison/bison-1.49b.tar.gz
ftp://alpha.gnu.org/gnu/bison/bison-1.49b.tar.bz2
Here are MD5 and SHA1 checksums:
b627ff22a6dac3028d0f274f77133fc3 bison-1.49b.tar.bz2
8023b9b02ed8dc00e8658045e57f28de bison-1.49b.tar.gz
f143bde9c18d96ef76d4c1e4dbb766a22d8fd452 bison-1.49b.tar.bz2
9f560d6e56fc4916ad8065af7a2c110fbdd5d2f7 bison-1.49b.tar.gz
Here are the new entries in version 1.49b's NEWS file:
* GLR parsing
The declaration
%glr-parser
causes Bison to produce a Generalized LR (GLR) parser, capable of handling
almost any context-free grammar, ambiguous or not. The new declarations
%dprec and %merge on grammar rules allow parse-time resolution of
ambiguities. Contributed by Paul Hilfinger.
* Output Directory
When not in Yacc compatibility mode, when the output file was not
specified, runnning `bison foo/bar.y' created `foo/bar.c'. It
now creates `bar.c'.
* Verbose error messages
They no longer report `..., expecting error or...' for state where
error recovery is possible.
* End token
Defaults to `$end' instead of `$'.
* Error recovery now conforms to documentation and to POSIX
When a Bison-generated parser encounters a syntax error, it now pops
the stack until it finds a state that allows shifting the error
token. Formerly, it popped the stack until it found a state that
allowed some non-error action other than a default reduction on the
error token. The new behavior has long been the documented behavior,
and has long been required by POSIX. For more details, please see
<http://mail.gnu.org/pipermail/bug-bison/2002-May/001452.html>.
* Traces
Popped tokens and nonterminals are now reported.
* Useless rules, useless nonterminals
They are now reported, as a warning, with their locations.
* Rules never reduced
Rules that can never be reduced because of conflicts are now
reported.
* Default locations
By an accident of design, the default computation of @$ was
performed after another default computation was performed: @$ = @1.
The latter is now removed: YYLLOC_DEFAULT is fully responsible of
the computation of @$.
* Semantic parser
This old option, which has been broken for ages, is removed.
* New translations
Brazilian Portuguese, thanks to Alexandre Folle de Menezes.
Croatian, thanks to Denis Lackovic.
* Incorrect token definitions
When fed with `%token 'a' "A"', Bison used to output `#define 'a' 65'.
* Token definitions as enums
Tokens are output both as the traditional #define's, and, provided
the compiler supports ANSI C or is a C++ compiler, as enums.
This helps debuggers producing symbols instead of values.
* Reports
In addition to --verbose, bison supports --report=THINGS, which
produces additional information:
- itemset
complete the core item sets with their closure
- lookahead
explicitly associate lookaheads to items
- solved
describe shift/reduce conflicts solving.
Bison used to systematically output this information on top of
the report. Solved conflicts are now attached to their states.
* Type clashes
Previous versions don't complain when there is a type clash on
the default action if the rule has a mid-rule action, such as in:
%type <foo> bar
%%
bar: '0' {} '0';
This is fixed.
* GNU M4 is now required when using Bison.
- Bison 1.49b released,
Paul Eggert <=