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
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.
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
/* 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.
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"));
}
}
# 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
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
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
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