macro_rules! ast_enum_of_structs {
(
$(#[$enum_attr:meta])*
pub enum $name:ident {
$(
$(#[$variant_attr:meta])*
pub $variant:ident $( ($member:ident $($rest:tt)*) )*,
)*
}
$($remaining:tt)*
) => { ... };
}