mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-12 22:03:02 +00:00
warnings: raise warning for useless printers or destructors
* src/scan-code.h (code_props): Add field 'is_used'. (CODE_PROPS_NONE_INIT): Adjust. * src/scan-code.l (code_props_plain_init, code_props_symbol_action_init) (code_props_rule_action_init): Instead of implementing several times the initialization of the code_props structures, use code_props_none_init. * src/symtab.c (symbol_check_defined): If a symbol does not have a destructor (resp. printer) but has a type which has a destructor (resp. printer), then set field 'is_used' to true. (semantic_type_check_defined): If a type has a destructor (resp. printer) but all symbols of this type have already a destructor (resp. printer), then raise a warning. * tests/input.at (Useless printers or destructors): New. Signed-off-by: Akim Demaille <akim@lrde.epita.fr>
This commit is contained in:
committed by
Akim Demaille
parent
9641b918ba
commit
ea9a35c605
14
NEWS
14
NEWS
@@ -31,6 +31,20 @@ GNU Bison NEWS
|
||||
|
||||
This is now only a warning.
|
||||
|
||||
** Warnings about useless destructors or printers
|
||||
|
||||
Bison now warns about useless destructors or printers. In the following
|
||||
example, the printer for <type1>, and the destructor for <type2> are
|
||||
useless: all symbols of <type1> (token1) already have a printer, and all
|
||||
symbols of type <type2> (token2) already have a destructor.
|
||||
|
||||
%token <type1> token1
|
||||
<type2> token2
|
||||
<type3> token3
|
||||
<type4> token4
|
||||
%printer {} token1 <type1> <type3>
|
||||
%destructor {} token2 <type2> <type4>
|
||||
|
||||
** Additional yylex/yyparse arguments
|
||||
|
||||
The new directive %param declares additional arguments to both yylex and
|
||||
|
||||
Reference in New Issue
Block a user