mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-11 21:33:04 +00:00
maint: factor the handling of %printer and %destructor
There is too much code duplication between %printer and %destructor. We used to have two functions for each action: the first one for destructors, the second one for printers. Factor using a 'code_props_type', and an array of code_props instead of two members. * src/symlist.h, src/symlist.c (symbol_list_destructor_set) (symbol_list_printer_set): Fuse into... (symbol_list_code_props_set): this. * src/symtab.h, src/symtab.c (default_tagged_destructor) (default_tagged_printer): Fuse into... (default_tagged_code_props): this. (default_tagless_destructor, default_tagless_printer) (default_tagless_code_props): Likewise. (code_props_type_string): new. (symbol_destructor_set, symbol_destructor_get, semantic_type_destructor_set) (default_tagged_destructor_set, default_tagless_destructor_set) (symbol_printer_set, symbol_printer_get, semantic_type_printer_set) (default_tagged_printer_set, default_tagless_printer_set): Replace by... (symbol_code_props_set, symbol_code_props_get, semantic_type_code_props_set) (default_tagged_code_props_set, default_tagless_code_props_set): these. * src/parse-gram.y (grammar_declaration): Adjust. * src/output.c (CODE_PROP, grammar_declaration): Ditto. * src/reader.c (symbol_should_be_used): Ditto.
This commit is contained in:
committed by
Akim Demaille
parent
dfe292c695
commit
71da68b366
@@ -257,7 +257,7 @@ grammar_current_rule_begin (symbol *lhs, location loc,
|
||||
static bool
|
||||
symbol_should_be_used (symbol_list const *s, bool *midrule_warning)
|
||||
{
|
||||
if (symbol_destructor_get (s->content.sym)->code)
|
||||
if (symbol_code_props_get (s->content.sym, destructor)->code)
|
||||
return true;
|
||||
if ((s->midrule && s->midrule->action_props.is_value_used)
|
||||
|| (s->midrule_parent_rule
|
||||
|
||||
Reference in New Issue
Block a user