Compare commits

...
5 Commits
Author SHA1 Message Date
Akim Demaille ed02d34fbc version 3.3.1
* NEWS: Record release date.
2019-01-27 16:03:23 +01:00
Akim Demaille 8b0b295569 yacc: issue warnings, not errors, for Bison extensions
Reported by Kiyoshi Kanazawa.
http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00029.html

* src/getargs.c (getargs): Let --yacc imply -Wyacc, not -Werror=yacc.
* tests/input.at: Adjust.
* doc/bison.tex (Bison Options): Document.
2019-01-27 15:53:28 +01:00
Akim Demaille 59a108c0a6 style: formatting changes in NEWS and complain.c 2019-01-27 15:51:44 +01:00
Kiyoshi KanazawaandAkim Demaille 83ebc8bdb6 tests: don't depend on the user's definition of SHELL
http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00031.html

* examples/test (SHELL): Set it to /bin/sh.
2019-01-27 07:06:44 +01:00
Akim Demaille 8023b3153a maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2019-01-26 11:45:20 +01:00
7 changed files with 43 additions and 31 deletions
+1 -1
View File
@@ -1 +1 @@
3.2.91 3.3
+11 -4
View File
@@ -1,12 +1,19 @@
GNU Bison NEWS GNU Bison NEWS
* Noteworthy changes in release 3.3.1 (2019-01-27) [stable]
** Changes
The option -y/--yacc used to imply -Werror=yacc, which turns uses of Bison
extensions into errors. It now makes them simple warnings (-Wyacc).
* Noteworthy changes in release 3.3 (2019-01-26) [stable] * Noteworthy changes in release 3.3 (2019-01-26) [stable]
A new mailing list was created, Bison Announce. It is low traffic, and is A new mailing list was created, Bison Announce. It is low traffic, and is
only about announcing new releases and important messages (e.g., polls about only about announcing new releases and important messages (e.g., polls
major decisions to make). about major decisions to make).
https://lists.gnu.org/mailman/listinfo/bison-announce https://lists.gnu.org/mailman/listinfo/bison-announce
** Backward incompatible changes ** Backward incompatible changes
+14 -14
View File
@@ -10308,26 +10308,26 @@ See the documentation of @option{--feature=fixit} below for more details.
@item -y @item -y
@itemx --yacc @itemx --yacc
Act more like the traditional Yacc command. This can cause different Act more like the traditional @command{yacc} command. This can cause
diagnostics to be generated, and may change behavior in other minor different diagnostics to be generated (it implies @option{-Wyacc}), and may
ways. Most importantly, imitate Yacc's output file name conventions, change behavior in other minor ways. Most importantly, imitate Yacc's
so that the parser implementation file is called @file{y.tab.c}, and output file name conventions, so that the parser implementation file is
the other outputs are called @file{y.output} and @file{y.tab.h}. called @file{y.tab.c}, and the other outputs are called @file{y.output} and
Also, if generating a deterministic parser in C, generate @file{y.tab.h}. Also, if generating a deterministic parser in C, generate
@code{#define} statements in addition to an @code{enum} to associate @code{#define} statements in addition to an @code{enum} to associate token
token numbers with token names. Thus, the following shell script can numbers with token names. Thus, the following shell script can substitute
substitute for Yacc, and the Bison distribution contains such a script for Yacc, and the Bison distribution contains such a script for
for compatibility with POSIX: compatibility with POSIX:
@example @example
#! /bin/sh #! /bin/sh
bison -y "$@@" bison -y "$@@"
@end example @end example
The @option{-y}/@option{--yacc} option is intended for use with The @option{-y}/@option{--yacc} option is intended for use with traditional
traditional Yacc grammars. If your grammar uses a Bison extension Yacc grammars. If your grammar uses Bison extensions like
like @samp{%glr-parser}, Bison might not be Yacc-compatible even if @samp{%glr-parser}, Bison might not be Yacc-compatible even if this option
this option is specified. is specified.
@item -W [@var{category}] @item -W [@var{category}]
@itemx --warnings[=@var{category}] @itemx --warnings[=@var{category}]
+3
View File
@@ -15,6 +15,9 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
SHELL=/bin/sh
export SHELL
me=$(basename "$1" .test) me=$(basename "$1" .test)
medir=$(dirname "$1" | sed -e 's,.*examples/,,') medir=$(dirname "$1" | sed -e 's,.*examples/,,')
+4 -2
View File
@@ -421,8 +421,10 @@ duplicate_rule_directive (char const *directive,
location first, location second) location first, location second)
{ {
unsigned i = 0; unsigned i = 0;
complain_indent (&second, complaint, &i, _("only one %s allowed per rule"), directive); complain_indent (&second, complaint, &i,
_("only one %s allowed per rule"), directive);
i += SUB_INDENT; i += SUB_INDENT;
complain_indent (&first, complaint, &i, _("previous declaration")); complain_indent (&first, complaint, &i,
_("previous declaration"));
fixits_register (&second, ""); fixits_register (&second, "");
} }
+1 -1
View File
@@ -708,7 +708,7 @@ getargs (int argc, char *argv[])
break; break;
case 'y': case 'y':
warning_argmatch ("error=yacc", 0, 6); warning_argmatch ("yacc", 0, 0);
yacc_loc = command_line_location (); yacc_loc = command_line_location ();
break; break;
+9 -9
View File
@@ -1402,15 +1402,15 @@ without_period: "WITHOUT.PERIOD";
AT_BISON_OPTION_POPDEFS AT_BISON_OPTION_POPDEFS
# POSIX Yacc accept periods, but not dashes. # POSIX Yacc accept periods, but not dashes.
AT_BISON_CHECK([--yacc input.y], [1], [], AT_BISON_CHECK([--yacc input.y], [], [],
[[input.y:1.1-5: error: POSIX Yacc does not support %code [-Werror=yacc] [[input.y:1.1-5: warning: POSIX Yacc does not support %code [-Wyacc]
input.y:9.8-16: error: POSIX Yacc forbids dashes in symbol names: WITH-DASH [-Werror=yacc] input.y:9.8-16: warning: POSIX Yacc forbids dashes in symbol names: WITH-DASH [-Wyacc]
input.y:10.21-34: error: POSIX Yacc does not support string literals [-Werror=yacc] input.y:10.21-34: warning: POSIX Yacc does not support string literals [-Wyacc]
input.y:12.23-38: error: POSIX Yacc does not support string literals [-Werror=yacc] input.y:12.23-38: warning: POSIX Yacc does not support string literals [-Wyacc]
input.y:13.1-5: error: POSIX Yacc does not support %code [-Werror=yacc] input.y:13.1-5: warning: POSIX Yacc does not support %code [-Wyacc]
input.y:20.8-16: error: POSIX Yacc forbids dashes in symbol names: with-dash [-Werror=yacc] input.y:20.8-16: warning: POSIX Yacc forbids dashes in symbol names: with-dash [-Wyacc]
input.y:22.15-28: error: POSIX Yacc does not support string literals [-Werror=yacc] input.y:22.15-28: warning: POSIX Yacc does not support string literals [-Wyacc]
input.y:24.17-32: error: POSIX Yacc does not support string literals [-Werror=yacc] input.y:24.17-32: warning: POSIX Yacc does not support string literals [-Wyacc]
]]) ]])
# Dashes are fine for GNU Bison. # Dashes are fine for GNU Bison.