mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
%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.
This commit is contained in:
2
THANKS
2
THANKS
@@ -126,6 +126,7 @@ Sebastien Fricker sebastien.fricker@gmail.com
|
||||
Sergei Steshenko sergstesh@yahoo.com
|
||||
Shura debil_urod@ngs.ru
|
||||
Stefano Lattarini stefano.lattarini@gmail.com
|
||||
Stephen Cameron stephenmcameron@gmail.com
|
||||
Steve Murphy murf@parsetree.com
|
||||
Sum Wu sum@geekhouse.org
|
||||
Théophile Ranquet theophile.ranquet@gmail.com
|
||||
@@ -133,6 +134,7 @@ Thiru Ramakrishnan thiru.ramakrishnan@gmail.com
|
||||
Tim Josling tej@melbpc.org.au
|
||||
Tim Landscheidt tim@tim-landscheidt.de
|
||||
Tim Van Holder tim.van.holder@pandora.be
|
||||
Tobias Frost tobi@debian.org
|
||||
Tom Lane tgl@sss.pgh.pa.us
|
||||
Tom Tromey tromey@cygnus.com
|
||||
Tommy Nordgren tommy.nordgren@chello.se
|
||||
|
||||
Reference in New Issue
Block a user