[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bison test version 2.3a available

From: Paul Eggert
Subject: Bison test version 2.3a available
Date: Wed, 13 Sep 2006 12:58:50 -0700
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux)

Bison test version 2.3a is now available.  An important change in 2.3a
is an experimental approach for replacing traditional Yacc prologue blocks.

Here is the URL:

Here are the MD5 and SHA512 checksums:

64e334f0a44cb3bb5e8be6b122c97d4f  bison-2.3a.tar.gz

To try this test version, please make sure you have GNU m4 1.4.6
<> installed, and then execute
the following shell commands or their equivalents:

   gunzip <bison-2.3a.tar.gz | tar xf -
   cd bison-2.3a
   make check

We particularly appreciate tests on unusual hosts.

Please report bugs to <address@hidden>.

Bison is a parser generator that is compatible with Yacc.
Please see <> for more info about Bison.

Here is a list of user-visible changes in version 2.3a, compared to 2.3:

Bison News

Changes in version 2.3a, 2006-09-13:

* There is an experimental substitute for the handling of traditional
  Yacc prologue blocks.  This substitute is still evolving, and may
  change before the next release.  Comments and feedback are welcome.
  For details, please see the NEWS file of the release.

* Instead of %union, you can define and use your own union type
  YYSTYPE if your grammar contains at least one <type> tag.
  Your YYSTYPE need not be a macro; it can be a typedef.
  This change is for compatibility with other Yacc implementations,
  and is required by POSIX.

* Locations columns and lines start at 1.
  In accordance with the GNU Coding Standards and Emacs.

* You may now declare per-type and default %destructor's and %printer's:

  For example:

    %union { char *string; }
    %token <string> STRING1
    %token <string> STRING2
    %type  <string> string1
    %type  <string> string2
    %union { char character; }
    %token <character> CHR
    %type  <character> chr
    %destructor { free ($$); } %symbol-default
    %destructor { free ($$); printf ("%d", @$.first_line); } STRING1 string1
    %destructor { } <character>

  guarantees that, when the parser discards any user-defined symbol that has a
  semantic type tag other than `<character>', it passes its semantic value to
  `free'.  However, when the parser discards a `STRING1' or a `string1', it
  also prints its line number to `stdout'.  It performs only the second
  `%destructor' in this case, so it invokes `free' only once.

* Except for LALR(1) parsers in C with POSIX Yacc emulation enabled (with `-y',
  `--yacc', or `%yacc'), Bison no longer generates #define statements for
  associating token numbers with token names.  Removing the #define statements
  helps to sanitize the global namespace during preprocessing, but POSIX Yacc
  requires them.  Bison still generates an enum for token names in all cases.

reply via email to

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