From: Paul Eggert Date: Tue, 3 Jan 2006 22:35:45 +0000 (+0000) Subject: * doc/bison.texinfo (Bison Options): Say more accurately what X-Git-Tag: v2.3b~518 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/5466269793d749abc42371a88cb477a85ce60e92 * doc/bison.texinfo (Bison Options): Say more accurately what --yacc does. * src/parse-gram.y (rules_or_grammar_declaration): Don't complain about declarations in the grammar when in Yacc mode, as POSIX does not require a diagnostic when the grammar uses extensions. --- diff --git a/ChangeLog b/ChangeLog index f9907482..a9d8a7ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2006-01-03 Paul Eggert + * doc/bison.texinfo (Bison Options): Say more accurately what + --yacc does. + * src/parse-gram.y (rules_or_grammar_declaration): Don't complain + about declarations in the grammar when in Yacc mode, as POSIX does + not require a diagnostic when the grammar uses extensions. + + * src/reduce.c (reduce_grammar): Remove unnecessary cast to bool. + Warn about dubious constructions like "%token T T". Reported by twlevo. * src/symtab.h (struct symbol.declared): New member. diff --git a/doc/bison.texinfo b/doc/bison.texinfo index 671d1c4e..b5c2849b 100644 --- a/doc/bison.texinfo +++ b/doc/bison.texinfo @@ -6677,13 +6677,14 @@ Print the version number of Bison and exit. @item --print-localedir Print the name of the directory containing locale-dependent data. -@need 1750 @item -y @itemx --yacc -Equivalent to @samp{-o y.tab.c}; the parser output file is called +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 output file is called @file{y.tab.c}, and the other outputs are called @file{y.output} and -@file{y.tab.h}. The purpose of this option is to imitate Yacc's output -file name conventions. Thus, the following shell script can substitute +@file{y.tab.h}. Thus, the following shell script can substitute for Yacc, and the Bison distribution contains such a script for compatibility with @acronym{POSIX}: @@ -6691,6 +6692,12 @@ compatibility with @acronym{POSIX}: #! /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. + @end table @noindent diff --git a/src/parse-gram.y b/src/parse-gram.y index 71f4829e..4a31f014 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -391,10 +391,6 @@ grammar: rules_or_grammar_declaration: rules | grammar_declaration ";" - { - if (yacc_flag) - complain_at (@$, _("POSIX forbids declarations in the grammar")); - } | error ";" { yyerrok;