Akim Demaille 0e0ed236ab Fuse the three stacks into a single one.
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.
2008-11-03 21:59:59 +01:00
2008-11-02 16:54:45 -05:00
2008-10-28 17:05:48 +01:00
2008-11-02 18:16:13 -05:00
2008-11-01 20:00:01 +01:00
2008-10-28 17:05:48 +01:00
2006-01-22 07:59:51 +00:00
2006-01-22 07:59:51 +00:00
1998-11-25 22:13:23 +00:00
2008-08-02 02:32:29 -04:00
2007-08-15 20:21:33 +00:00
2008-11-02 18:16:13 -05:00
2007-08-15 20:21:33 +00:00
2008-11-02 16:55:14 -05:00
2007-08-15 20:21:33 +00:00
2007-08-15 20:21:33 +00:00

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
No description provided
Readme 18 MiB
Languages
C 61%
M4 11.7%
C++ 11.3%
Shell 4.1%
XSLT 3.1%
Other 8.8%