mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
0e0ed236ab1af293700da682f764f04ba0733302
In order to make it easy to perform benchmarks to ensure that there are no performance loss, lalr1.cc is forked into lalr1-fusion.cc. Eventually, lalr1-fusion.cc will replace lalr1.cc. Meanwhile, to make sure that lalr1-fusion.cc is correctly exercized by the test suite, the user must install a symbolic link from lalr1.cc to it. Instead of having three stacks (state, value, location), use a stack of triples. This considerably simplifies the code (and it will be easier not to require locations as currently does the C++ parser), and also gives a 10% speedup according to etc/bench (probably mainly since memory allocation is done once instead of three times). Another motivation is to make it easier to destruct properly semantic values: now that they are bound to their state (hence symbol type) it will be easier to call the appropriate destructor. These changes should probably benefit the C parser too. * data/lalr1.cc: Copy as... * data/lalr1-fusion.cc: this new file. (b4_rhs_value, b4_rhs_location): New definitions overriding those from c++.m4. (state_stack_type, semantic_stack_type, location_stack_type) (yystate_stack_, yysemantic_stack_, yylocation_stack_): Remove. (data_type, stack_type, yystack_): New. (YYLLOC_DEFAULT, yypush_): Adjust. (yyerror_range): Now based on data_type, not location_type.
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%