bug-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bison-3.3] sideeffect to flex ?


From: Akim Demaille
Subject: Re: [bison-3.3] sideeffect to flex ?
Date: Sun, 27 Jan 2019 15:56:01 +0100


> Le 27 janv. 2019 à 09:53, Kiyoshi KANAZAWA <address@hidden> a écrit :
> 
> Hi,
> 
> No side effect is detected by other software, including flex & automake.

Thanks a lot.  I will install this version of the patch in the maint branch, 
and release 3.3.1 asap.

_Many_ thanks for this early report.

commit 8b0b2955691f511eb91cc6eb0fec75601aea80ac
Author: Akim Demaille <address@hidden>
Date:   Sun Jan 27 06:38:27 2019 +0100

    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.

diff --git a/NEWS b/NEWS
index 6172bad6..ae5b923a 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,10 @@ GNU Bison NEWS
 
 * Noteworthy changes in release ?.? (????-??-??) [?]
 
+** 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]
 
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
address@hidden 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
address@hidden  Also, if generating a deterministic parser in C, generate
address@hidden 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
address@hidden, Bison might not be Yacc-compatible even if this option
+is specified.
 
 @item -W address@hidden
 @itemx address@hidden
diff --git a/src/getargs.c b/src/getargs.c
index 95572681..417e163c 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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]