Akim Demaille 827bc59ca1 %union: fix the support for named %union
Bison supports a union tag, for obscure reasons.  But it does a poor
job at it, especially since Bison 3.0.
Reported by Stephen Cameron and Tobias Frost.

It did not ensure that the name was not given several times.  An easy
way to do this is to make the %union tag be handled as a %define
variable, as they cannot be defined several times.

Since Bison 3.0, the synclines were wrongly placed, resulting in
invalid code.  Addressing this issue, because of the way the union tag
was stored (as a code muscle), would have been tedious.  Unless we
rather define the %union tag as a %percent variable, whose synclines
are easier to manipulate.

So replace the b4_union_name muscle by the api.value.union.name
%define variable, document, and check.

* data/bison.m4: Make sure that api.value.union.name has a keyword value.
* data/c++.m4: Make sure that api.value.union.name is not defined.
* data/c.m4 (b4_union_name): No longer use it, use api.value.union.name.
* doc/bison.texi (%define Summary): Document it.
* src/parse-gram.y (union_name): No longer define b4_uion_name, but
api.value.union.name.
* tests/input.at (Redefined %union name): New.
* tests/synclines.at (%union name syncline): New.
* tests/types.at: Check named %unions.
2015-01-04 18:00:51 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2012-05-24 13:54:55 +02:00
2006-01-22 07:59:51 +00:00
2006-01-22 07:59:51 +00:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2007-08-15 20:21:33 +00:00
2015-01-04 17:49:13 +01:00
2015-01-04 18:00:51 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2015-01-04 17:49:13 +01:00
2013-02-18 10:01:28 +01:00
2015-01-04 17:49:13 +01:00

This package contains the GNU Bison parser generator.

* Installation
** Build
See the file INSTALL for generic compilation and installation
instructions.

Bison requires GNU m4 1.4.6 or later.  See:

      ftp://ftp.gnu.org/gnu/m4/m4-1.4.6.tar.gz

** Internationalization
Bison supports two catalogues: one for Bison itself (i.e., for the
maintainer-side parser generation), and one for the generated parsers
(i.e., for the user-side parser execution).  The requirements between
both differ: bison needs ngettext, the generated parsers do not.  To
simplify the build system, neither are installed if ngettext is not
supported, even if generated parsers could have been localized.  See
http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html for
more details.

* Questions
See the section FAQ in the documentation (doc/bison.info) for
frequently asked questions.  The documentation is also available in
PDF and HTML, provided you have a recent version of Texinfo installed:
run "make pdf" or "make html".

If you have questions about using Bison and the documentation does
not answer them, please send mail to <help-bison@gnu.org>.

* Bug reports
Please send bug reports to <bug-bison@gnu.org>.  Please include the
version number from 'bison --version', and a complete, self-contained
test case in each bug report.

* Copyright statements
For any copyright year range specified as YYYY-ZZZZ in this package,
note that the range specifies every single year in that closed interval.


Local Variables:
mode: outline
End:

-----

Copyright (C) 1992, 1998-1999, 2003-2005, 2008-2015 Free Software
Foundation, Inc.

This file is part of Bison, the GNU Compiler Compiler.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
Description
No description provided
Readme 18 MiB
Languages
C 61%
M4 11.7%
C++ 11.3%
Shell 4.1%
XSLT 3.1%
Other 8.8%