diff options
-rw-r--r-- | .prev-version | 2 | ||||
-rw-r--r-- | NEWS | 15 | ||||
-rw-r--r-- | doc/bison.texi | 28 | ||||
-rwxr-xr-x | examples/test | 3 | ||||
-rw-r--r-- | src/complain.c | 6 | ||||
-rw-r--r-- | src/getargs.c | 2 | ||||
-rw-r--r-- | tests/input.at | 18 |
7 files changed, 43 insertions, 31 deletions
diff --git a/.prev-version b/.prev-version index eb39e538..bea438e9 100644 --- a/.prev-version +++ b/.prev-version @@ -1 +1 @@ -3.3 +3.3.1 @@ -3,13 +3,20 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] +* 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] -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 -major decisions to make). + 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 major decisions to make). -https://lists.gnu.org/mailman/listinfo/bison-announce + https://lists.gnu.org/mailman/listinfo/bison-announce ** Backward incompatible changes diff --git a/doc/bison.texi b/doc/bison.texi index 884a7bd8..279b73d2 100644 --- a/doc/bison.texi +++ b/doc/bison.texi @@ -10308,26 +10308,26 @@ See the documentation of @option{--feature=fixit} below for more details. @item -y @itemx --yacc -Act more like the traditional Yacc command. This can cause different -diagnostics to be generated, and may change behavior in other minor -ways. Most importantly, imitate Yacc's output file name conventions, -so that the parser implementation file is called @file{y.tab.c}, and -the other outputs are called @file{y.output} and @file{y.tab.h}. -Also, if generating a deterministic parser in C, generate -@code{#define} statements in addition to an @code{enum} to associate -token numbers with token names. Thus, the following shell script can -substitute for Yacc, and the Bison distribution contains such a script -for compatibility with POSIX: +Act more like the traditional @command{yacc} command. This can cause +different diagnostics to be generated (it implies @option{-Wyacc}), and may +change behavior in other minor ways. Most importantly, imitate Yacc's +output file name conventions, so that the parser implementation file is +called @file{y.tab.c}, and the other outputs are called @file{y.output} and +@file{y.tab.h}. Also, if generating a deterministic parser in C, generate +@code{#define} statements in addition to an @code{enum} to associate token +numbers with token names. Thus, the following shell script can substitute +for Yacc, and the Bison distribution contains such a script for +compatibility with POSIX: @example #! /bin/sh bison -y "$@@" @end example -The @option{-y}/@option{--yacc} option is intended for use with -traditional Yacc grammars. If your grammar uses a Bison extension -like @samp{%glr-parser}, Bison might not be Yacc-compatible even if -this option is specified. +The @option{-y}/@option{--yacc} option is intended for use with traditional +Yacc grammars. If your grammar uses Bison extensions like +@samp{%glr-parser}, Bison might not be Yacc-compatible even if this option +is specified. @item -W [@var{category}] @itemx --warnings[=@var{category}] diff --git a/examples/test b/examples/test index 5e643c1f..d987d094 100755 --- a/examples/test +++ b/examples/test @@ -15,6 +15,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +SHELL=/bin/sh +export SHELL + me=$(basename "$1" .test) medir=$(dirname "$1" | sed -e 's,.*examples/,,') diff --git a/src/complain.c b/src/complain.c index a4ab0a1f..50f65af5 100644 --- a/src/complain.c +++ b/src/complain.c @@ -421,8 +421,10 @@ duplicate_rule_directive (char const *directive, location first, location second) { 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; - complain_indent (&first, complaint, &i, _("previous declaration")); + complain_indent (&first, complaint, &i, + _("previous declaration")); fixits_register (&second, ""); } diff --git a/src/getargs.c b/src/getargs.c index 4c411583..973d0f69 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -708,7 +708,7 @@ getargs (int argc, char *argv[]) break; case 'y': - warning_argmatch ("error=yacc", 0, 6); + warning_argmatch ("yacc", 0, 0); yacc_loc = command_line_location (); break; diff --git a/tests/input.at b/tests/input.at index 8853af51..7494e46a 100644 --- a/tests/input.at +++ b/tests/input.at @@ -1402,15 +1402,15 @@ without_period: "WITHOUT.PERIOD"; AT_BISON_OPTION_POPDEFS # POSIX Yacc accept periods, but not dashes. -AT_BISON_CHECK([--yacc input.y], [1], [], -[[input.y:1.1-5: error: POSIX Yacc does not support %code [-Werror=yacc] -input.y:9.8-16: error: POSIX Yacc forbids dashes in symbol names: WITH-DASH [-Werror=yacc] -input.y:10.21-34: error: POSIX Yacc does not support string literals [-Werror=yacc] -input.y:12.23-38: error: POSIX Yacc does not support string literals [-Werror=yacc] -input.y:13.1-5: error: POSIX Yacc does not support %code [-Werror=yacc] -input.y:20.8-16: error: POSIX Yacc forbids dashes in symbol names: with-dash [-Werror=yacc] -input.y:22.15-28: error: POSIX Yacc does not support string literals [-Werror=yacc] -input.y:24.17-32: error: POSIX Yacc does not support string literals [-Werror=yacc] +AT_BISON_CHECK([--yacc input.y], [], [], +[[input.y:1.1-5: warning: POSIX Yacc does not support %code [-Wyacc] +input.y:9.8-16: warning: POSIX Yacc forbids dashes in symbol names: WITH-DASH [-Wyacc] +input.y:10.21-34: warning: POSIX Yacc does not support string literals [-Wyacc] +input.y:12.23-38: warning: POSIX Yacc does not support string literals [-Wyacc] +input.y:13.1-5: warning: POSIX Yacc does not support %code [-Wyacc] +input.y:20.8-16: warning: POSIX Yacc forbids dashes in symbol names: with-dash [-Wyacc] +input.y:22.15-28: warning: POSIX Yacc does not support string literals [-Wyacc] +input.y:24.17-32: warning: POSIX Yacc does not support string literals [-Wyacc] ]]) # Dashes are fine for GNU Bison. |