macro_rules! bop {
{} => { ... };
{ let $($p:pat $(| $t:ty)? $(= $e:expr)?),*} => { ... };
{ match && $($p:pat = $e:expr),* => $b:block else $el:block } => { ... };
{ bool match && $($p:pat = $e:expr),* => $b:block $(else $el:block)? } => { ... };
{ !loop match && $($p:pat = $e:expr),* => $b:block else $el:block } => { ... };
{ !loop bool match && $($p:pat = $e:expr),* => $b:block $(else $el:block)? } => { ... };
{ $x:expr $(;)? } => { ... };
{ || $x:expr $(;)? } => { ... };
{ && $x:expr $(;)? } => { ... };
{ = $x:expr $(;)? } => { ... };
{ || $x:expr ; $($op:tt $a:expr $(;$n:tt)?),* } => { ... };
{ && $x:expr ; $($op:tt $a:expr $(;$n:tt)?),* } => { ... };
{ = $x:ident ; $($op:tt $a:expr $(;$n:tt)?),* } => { ... };
{ $fname:ident ; $($v:expr),* => in && $t:expr } => { ... };
{ $fname:ident ; $($v:expr),* => in || $t:expr } => { ... };
{ $fname:ident ; $v:expr => in && $($t:expr),* } => { ... };
{ $fname:ident ; $v:expr => in || $($t:expr),* } => { ... };
{ $($fname:ident ;)? => in && $t:expr } => { ... };
{ $($fname:ident ;)? => in || $t:expr } => { ... };
{ $($fname:ident ;)? $v:expr => in && } => { ... };
{ $($fname:ident ;)? $v:expr => in || } => { ... };
{ $($v:expr),* => in && $t:expr } => { ... };
{ $($v:expr),* => in || $t:expr } => { ... };
{ $v:expr => in && $($t:expr),* } => { ... };
{ $v:expr => in || $($t:expr),* } => { ... };
}