[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:


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
  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

* 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

* 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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]