macro_rules! analit {
( +-- $($t:tt)+) => { ... };
(X $x:expr, , ; -- $($t:tt)+) => { ... };
(X $x:expr, , ; + ) => { ... };
( +| $($t:tt)+) => { ... };
(Y $x:expr, , ; | $($t:tt)+) => { ... };
(Y $x:expr, , ; + ) => { ... };
( +/ $($t:tt)+) => { ... };
(Z $x:expr, , ; / $($t:tt)+) => { ... };
(Z $x:expr, , ; + ) => { ... };
(X $x:expr, , ; +/ $($t:tt)+) => { ... };
(XZ $x:expr,$y:expr, ; / $($t:tt)+) => { ... };
(XZ $x:expr,$y:expr, ; + $($t:tt)+) => { ... };
(X $x:expr, , ; +| $($t:tt)+) => { ... };
(XY $x:expr,$y:expr, ; | $($t:tt)+) => { ... };
(XY $x:expr,$y:expr, ; +- $($t:tt)+) => { ... };
(Z $x:expr, , ; | $($t:tt)+) => { ... };
(YZ $x:expr,$y:expr, ; | $($t:tt)+) => { ... };
(YZ $x:expr,$y:expr, ; / $($t:tt)+) => { ... };
(YZ $x:expr,$y:expr, ; + $($t:tt)+) => { ... };
(YZ $x:expr,$y:expr, ; + ) => { ... };
(XZ $x:expr,$y:expr, ; | $($t:tt)+) => { ... };
(XYZ $x:expr,$y:expr,$z:expr; | $($t:tt)+) => { ... };
(XYZ $x:expr,$y:expr,$z:expr; / $($t:tt)+) => { ... };
(XYZ $x:expr,$y:expr,$z:expr; - $($t:tt)+) => { ... };
(XYZ $x:expr,$y:expr,$z:expr; + $($t:tt)+) => { ... };
(XYZ $x:expr,$y:expr,$z:expr; + ) => { ... };
}