structured_values

anon_value:=
expressions | struct { sstruct_mem_decl* }
expressions | struct { sstruct_assign* }
expressions | union { stype_sum_item0* }
sstruct_mem_decl:=
csyntax | declarator ;
expressions | NAME : stypeexpr ;
sstruct_assign:=
expressions | NAME = sexpr ;
stype_sum_item:=
expressions | NAME sopt_value stvarlist of sexpr
expressions | NAME sopt_value stvarlist
stype_sum_item0:=
expressions | NAME of sexpr
expressions | NAME
stype_sum_item1:=
csyntax | declarator ;
expressions | stype_sum_item ;
stype_sum_item2:=
expressions | | stype_sum_item
stype_sum_items2:=
expressions | stype_sum_item stype_sum_item2*
expressions | stype_sum_item2*