]> git.saurik.com Git - bison.git/commitdiff
* NEWS: %expect-violations are now just warnings, reverting
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 13 Jan 2003 06:41:29 +0000 (06:41 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 13 Jan 2003 06:41:29 +0000 (06:41 +0000)
to Bison 1.30 and 1.75 behavior.  This fixes the GCC 3.2
bootstrapping problem reported by Matthias Klose; see
<http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
* 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
doc/bison.texinfo
src/conflicts.c
tests/conflicts.at

diff --git a/NEWS b/NEWS
index c33568229767f46a442cc0d76b9851c825d66f82..114a0fd1647401a1a0554fff722f213a3226d2ad 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,11 @@ Bison News
 
 Changes in version 1.875a:
 
 
 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.
 \f
 * New configure option --disable-yacc, to disable installation of the
   yacc command and -ly library introduced in 1.875 for POSIX conformance.
 \f
index 93b93ed85bb6105ff7c9136800089ce297c538af..a82c0783849774278c2266ca93a0077f16fa7fa0 100644 (file)
@@ -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
 
 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.
 
 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
 
 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
 
 @node Start Decl
 @subsection The Start-Symbol
index 721627f2ced20c22cc3f423b9078f1fc2f8a1732..21ea7ce548be5aea3bcd7dc04bef6a6971d79df0 100644 (file)
@@ -1,6 +1,6 @@
 /* Find and resolve or report look-ahead conflicts for bison,
 
 /* 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.
    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)
   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)
       if (rrc_total)
-       complain (_("expected 0 reduce/reduce conflicts"));
+       warn (_("expected 0 reduce/reduce conflicts"));
     }
 }
 
     }
 }
 
index 635e266a5050a8adf551f7db288f15a4513a5f52..3b51d6f0d51b0f37aeecb33abcbb12211475a822 100644 (file)
@@ -1,5 +1,6 @@
 # Exercising Bison on conflicts.                         -*- Autotest -*-
 # 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
 
 # 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;
 ]])
 
 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: conflicts: 1 shift/reduce
-input.y: expected 0 shift/reduce conflicts
+input.y: warning: expected 0 shift/reduce conflicts
 ])
 AT_CLEANUP
 
 ])
 AT_CLEANUP
 
@@ -522,9 +523,9 @@ AT_DATA([input.y],
 exp: exp OP exp | NUM;
 ]])
 
 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: conflicts: 1 shift/reduce
-input.y: expected 2 shift/reduce conflicts
+input.y: warning: expected 2 shift/reduce conflicts
 ])
 AT_CLEANUP
 
 ])
 AT_CLEANUP
 
@@ -542,8 +543,8 @@ program: a 'a' | 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: conflicts: 1 reduce/reduce
-input.y: expected 0 reduce/reduce conflicts
+input.y: warning: expected 0 reduce/reduce conflicts
 ])
 AT_CLEANUP
 ])
 AT_CLEANUP