mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 16:23:04 +00:00
simplify the handling of <> and <*>'s code_props.
Currently they are treated in separated variables, contrary to other <TYPE> code_props. This duplicates code (and messages for translators) uselessly, as demonstrated by the fact that thanks to this patch, now useless <*> and <> code_props are reported like the others. * src/parse-gram.y (generic_symlist_item): Treat "<*>" and "<>" as regular type tags. * src/symlist.h, src/symlist.c (symbol_list_default_tagged_new) (symbol_list_default_tagless_new,SYMLIST_DEFAULT_TAGGED) (SYMLIST_DEFAULT_TAGLESS): Remove. * src/symtab.h, src/symtab.c (default_tagged_code_props) (default_tagless_code_props, default_tagged_code_props_set) (default_tagless_code_props_set): Remove. (symbol_code_props_get): Default to <*> or <>'s code_props. * tests/actions.at: Complete expected errors: there are new warnings. * tests/input.at: Likewise. (Useless printers or destructors): Extend.
This commit is contained in:
@@ -78,42 +78,6 @@ symbol_list_type_new (uniqstr type_name, location loc)
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------.
|
||||
| Create a list containing a <*> at LOC. |
|
||||
`----------------------------------------*/
|
||||
|
||||
symbol_list *
|
||||
symbol_list_default_tagged_new (location loc)
|
||||
{
|
||||
symbol_list *res = xmalloc (sizeof *res);
|
||||
|
||||
res->content_type = SYMLIST_DEFAULT_TAGGED;
|
||||
res->location = res->sym_loc = loc;
|
||||
res->named_ref = NULL;
|
||||
res->next = NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------.
|
||||
| Create a list containing a <> at LOC. |
|
||||
`---------------------------------------*/
|
||||
|
||||
symbol_list *
|
||||
symbol_list_default_tagless_new (location loc)
|
||||
{
|
||||
symbol_list *res = xmalloc (sizeof *res);
|
||||
|
||||
res->content_type = SYMLIST_DEFAULT_TAGLESS;
|
||||
res->location = res->sym_loc = loc;
|
||||
res->named_ref = NULL;
|
||||
res->next = NULL;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------.
|
||||
| Print this list, for which every content_type must be SYMLIST_SYMBOL. |
|
||||
`-----------------------------------------------------------------------*/
|
||||
@@ -247,11 +211,5 @@ symbol_list_code_props_set (symbol_list *node, code_props_type kind,
|
||||
if (node->content.sem_type->status == undeclared)
|
||||
node->content.sem_type->status = used;
|
||||
break;
|
||||
case SYMLIST_DEFAULT_TAGGED:
|
||||
default_tagged_code_props_set (kind, &cprops);
|
||||
break;
|
||||
case SYMLIST_DEFAULT_TAGLESS:
|
||||
default_tagless_code_props_set (kind, &cprops);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user