mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
5ab8c47bcf5088cf420db6e03cd44bfa68e92ca0
This patch was inspired by work by Michiel De Wilde. But he used Boost variants which (i) requires Boost on the user side, (ii) is slow, and (iii) has useless overhead (the parser knows the type of the semantic value there is no reason to duplicate this information as Boost.Variants do). This implementation reserves a buffer large enough to store the largest objects. yy::variant implements this buffer. It was implemented with Quentin Hocquet. * src/output.c (type_names_output): New. (output_skeleton): Invoke it. * data/c++.m4 (b4_variant_if): New. (b4_symbol_value): If needed, provide a definition for variants. * data/lalr1.cc (b4_symbol_value, b4_symbol_action_) (b4_symbol_variant, _b4_char_sizeof_counter, _b4_char_sizeof_dummy) (b4_char_sizeof, yy::variant): New. (parser::parse): If variants are requested, define parser::union_type, parser::variant, change the definition of semantic_type, construct $$ before running the user action instead of performing a default $$ = $1. * examples/variant.yy: New. Based on an example by Michiel De Wilde.
This package contains the GNU Bison parser generator. See the file INSTALL for generic compilation and installation instructions. 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". Bison requires GNU m4 1.4.6 or later. See: ftp://ftp.gnu.org/gnu/m4/m4-1.4.6.tar.gz Bison can work with pre-1.4.6 distributions of GNU m4 if they are sufficiently patched, but if you encounter a bug with an older distribution and report a bug we will probably suggest that you upgrade to 1.4.6 as the first step in trying to fix it. 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. If you have questions about using Bison and the documentation does not answer them, please send mail to <help-bison@gnu.org>. ----- Copyright (C) 1992, 1998, 1999, 2003, 2004, 2005, 2008 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
Languages
C
61%
M4
11.7%
C++
11.3%
Shell
4.1%
XSLT
3.1%
Other
8.8%