From 69363a9e4d0b8d3b51536434d3395d38519f617b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 13 Jan 2003 06:41:29 +0000 Subject: [PATCH] * NEWS: %expect-violations are now just warnings, reverting to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2 bootstrapping problem reported by Matthias Klose; see . * src/conflicts.c (conflicts_print): Likewise. * tests/conflicts.at (%expect not enough, %expect too much, %expect with reduce conflicts): Likewise. * doc/bison.texinfo (Expect Decl): Document this. Also mention that the warning is enabled if the number of conflicts changes (not necessarily increases). --- NEWS | 5 +++++ doc/bison.texinfo | 8 ++++---- src/conflicts.c | 12 ++++++------ tests/conflicts.at | 15 ++++++++------- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/NEWS b/NEWS index c3356822..114a0fd1 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,11 @@ Bison News Changes in version 1.875a: +* %expect-count violations are now just warnings, not errors, for + compatibility with Bison 1.75 and earlier (when there are + reduce/reduce conflicts) and with Bison 1.30 and earlier (when there + are too many or too few shift/reduce conflicts). + * New configure option --disable-yacc, to disable installation of the yacc command and -ly library introduced in 1.875 for POSIX conformance. diff --git a/doc/bison.texinfo b/doc/bison.texinfo index 93b93ed8..a82c0783 100644 --- a/doc/bison.texinfo +++ b/doc/bison.texinfo @@ -3558,7 +3558,7 @@ The declaration looks like this: Here @var{n} is a decimal integer. The declaration says there should be no warning if there are @var{n} shift/reduce conflicts and no -reduce/reduce conflicts. An error, instead of the usual warning, is +reduce/reduce conflicts. The usual warning is given if there are either more or fewer conflicts, or if there are any reduce/reduce conflicts. @@ -3580,9 +3580,9 @@ Add an @code{%expect} declaration, copying the number @var{n} from the number which Bison printed. @end itemize -Now Bison will stop annoying you about the conflicts you have checked, but -it will warn you again if changes in the grammar result in additional -conflicts. +Now Bison will stop annoying you if you do not change the number of +conflicts, but it will warn you again if changes in the grammar result +in more or fewer conflicts. @node Start Decl @subsection The Start-Symbol diff --git a/src/conflicts.c b/src/conflicts.c index 721627f2..21ea7ce5 100644 --- a/src/conflicts.c +++ b/src/conflicts.c @@ -1,6 +1,6 @@ /* Find and resolve or report look-ahead conflicts for bison, - Copyright (C) 1984, 1989, 1992, 2000, 2001, 2002 + Copyright (C) 1984, 1989, 1992, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -495,12 +495,12 @@ conflicts_print (void) if (expected_conflicts != -1) { if (! src_ok) - complain (ngettext ("expected %d shift/reduce conflict", - "expected %d shift/reduce conflicts", - expected_conflicts), - expected_conflicts); + warn (ngettext ("expected %d shift/reduce conflict", + "expected %d shift/reduce conflicts", + expected_conflicts), + expected_conflicts); if (rrc_total) - complain (_("expected 0 reduce/reduce conflicts")); + warn (_("expected 0 reduce/reduce conflicts")); } } diff --git a/tests/conflicts.at b/tests/conflicts.at index 635e266a..3b51d6f0 100644 --- a/tests/conflicts.at +++ b/tests/conflicts.at @@ -1,5 +1,6 @@ # Exercising Bison on conflicts. -*- Autotest -*- -# Copyright (C) 2002 Free Software Foundation, Inc. + +# Copyright (C) 2002, 2003 Free Software Foundation, Inc. # 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 @@ -485,9 +486,9 @@ AT_DATA([input.y], exp: exp OP exp | NUM; ]]) -AT_CHECK([bison -o input.c input.y], 1, [], +AT_CHECK([bison -o input.c input.y], 0, [], [input.y: conflicts: 1 shift/reduce -input.y: expected 0 shift/reduce conflicts +input.y: warning: expected 0 shift/reduce conflicts ]) AT_CLEANUP @@ -522,9 +523,9 @@ AT_DATA([input.y], exp: exp OP exp | NUM; ]]) -AT_CHECK([bison -o input.c input.y], 1, [], +AT_CHECK([bison -o input.c input.y], 0, [], [input.y: conflicts: 1 shift/reduce -input.y: expected 2 shift/reduce conflicts +input.y: warning: expected 2 shift/reduce conflicts ]) AT_CLEANUP @@ -542,8 +543,8 @@ program: a 'a' | a a; a: 'a'; ]]) -AT_CHECK([bison -o input.c input.y], 1, [], +AT_CHECK([bison -o input.c input.y], 0, [], [input.y: conflicts: 1 reduce/reduce -input.y: expected 0 reduce/reduce conflicts +input.y: warning: expected 0 reduce/reduce conflicts ]) AT_CLEANUP -- 2.45.2