summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJoel E. Denny <jdenny@ces.clemson.edu>2009-05-23 02:25:28 -0400
committerJoel E. Denny <jdenny@ces.clemson.edu>2009-05-23 02:27:11 -0400
commite3a33f7c23fc9febd1bbff33045c8b455a1972a8 (patch)
treef5b12d7c528f2e184a5426670e2950e95d0e6873 /doc
parent34d419381579dd30642e5646aaeaece36207be94 (diff)
downloadbison-e3a33f7c23fc9febd1bbff33045c8b455a1972a8.tar.gz
Convert multiple variable definition warnings to complaints.
* NEWS (2.5): Add a new entry for that change. * doc/bison.texinfo (Decl Summary): Update %define entry. (Bison Options): Update -D/--define/-F/--force-define entry. * src/muscle_tab.c (muscle_percent_define_insert): Implement. * src/muscle_tab.h (muscle_percent_define_insert): Update comments. * tests/input.at (`%define errors'): Update. (`%define, --define, --force-define'): Update.
Diffstat (limited to 'doc')
-rw-r--r--doc/bison.texinfo23
1 files changed, 13 insertions, 10 deletions
diff --git a/doc/bison.texinfo b/doc/bison.texinfo
index d377b5c6..3c63a19a 100644
--- a/doc/bison.texinfo
+++ b/doc/bison.texinfo
@@ -4837,8 +4837,8 @@ The possible choices for @var{variable}, as well as their meanings, depend on
the selected target language and/or the parser skeleton (@pxref{Decl
Summary,,%language}, @pxref{Decl Summary,,%skeleton}).
-Bison will warn if a @var{variable} is defined by @code{%define}
-multiple times, but @ref{Bison Options,,-D @var{name}[=@var{value}]}.
+It is an error if a @var{variable} is defined by @code{%define} multiple
+times, but @ref{Bison Options,,-D @var{name}[=@var{value}]}.
Omitting @code{"@var{value}"} is always equivalent to specifying it as
@code{""}.
@@ -7991,16 +7991,19 @@ definitions for the same @var{name} as follows:
@itemize
@item
-Bison processes all command-line definitions in order and then processes
-all @code{%define} definitions in order.
+Bison quietly ignores all command-line definitions for @var{name} except
+the last.
@item
-Later definitions override earlier definitions except that Bison quietly
-ignores all @code{%define} definitions if the last command-line
-definition is specified by @code{-F} or @code{--force-define}.
+If that command-line definition is specified by a @code{-D} or
+@code{--define}, Bison reports an error for any @code{%define}
+definition for @var{name}.
@item
-Bison never warns when a command-line definition overrides another
-definition, but Bison always warns when a @code{%define} definition
-overrides a command-line or @code{%define} definition.
+If that command-line definition is specified by a @code{-F} or
+@code{--force-define} instead, Bison quietly ignores all @code{%define}
+definitions for @var{name}.
+@item
+Otherwise, Bison reports an error if there are multiple @code{%define}
+definitions for @var{name}.
@end itemize
You should avoid using @code{-F} and @code{--force-define} in your