mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
(yyrecoverSyntaxError): Correct yyerrState logic. Correct comment. Allow states with only a default reduction. Fixes to avoid problem that $-N rules in GLR parsers can cause buffer overruns, corrupting state. * src/output.c (prepare_rules): Output max_left_semantic_context. * src/reader.h (max_left_semantic_context): New * src/scan-gram.l (max_left_semantic_context): Define. (handle_action_dollar): Update max_left_semantic_context. * data/glr.c (YYMAXLEFT): New. (yydoAction): Increase yyrhsVals size. (yyresolveAction): Ditto. Fixes to problems with location handling in GLR parsers reported by Frank Heckenbach (2003/06/05). * data/glr.c (YYLTYPE): Make trivial if locations not used. (YYRHSLOC): Add parentheses, make depend on whether locations used. (YYLLOC_DEFAULT): Ditto. (yyuserAction): Use YYLLOC_DEFAULT. (yydoAction): Remove redundant code. * tests/cxx-type.at: Exercise location information. (yylex): Track locations. (stmtMerge): Return value rather than printing.
-*- outline -*- This directory contains Bison skeletons: the general shapes of the different parser kinds, that are specialized for specific grammars by the bison program. Currently, there are only three supported skeletons: - yacc.c It used to be named bison.simple: it corresponds to C Yacc compatible LALR(1) parsers. - lalr1.cc Produces a C++ parser class. It is still very experimental, and not yet supported. Please, subscribe to bison-patches@gnu.org. - glr.c A Generalized LR C parser based on Bison's LALR(1) tables. These skeletons are the only ones supported by the Bison team. Because the interface between skeletons and the bison program is not finished, *we are not bound to it*. In particular, Bison is not mature enough for us to consider that ``foreign skeletons'' are supported. ----- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Bison. GNU Bison 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 2, or (at your option) any later version. GNU Bison 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 Bison; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.