macro_rules! query {
    ( ..$lhs:tt && $($rest:tt)+ ) => { ... };
    ( ..$lhs:expr; && $($rest:tt)+ ) => { ... };
    ( ..$lhs:tt || $($rest:tt)+ ) => { ... };
    ( ..$lhs:expr; || $($rest:tt)+ ) => { ... };
    ( $key:tt in [ $($e:expr),* ] ) => { ... };
    ( $key:tt contains $value:tt ) => { ... };
    ( $key:tt contains $value:expr; ) => { ... };
    ( $key:tt == $value:tt ) => { ... };
    ( $key:tt == $value:expr; ) => { ... };
    ( $key:tt != $value:tt ) => { ... };
    ( $key:tt != $value:expr; ) => { ... };
    ( $key:tt > $value:tt ) => { ... };
    ( $key:tt > $value:expr; ) => { ... };
    ( $key:tt >= $value:tt ) => { ... };
    ( $key:tt >= $value:expr; ) => { ... };
    ( $key:tt < $value:tt ) => { ... };
    ( $key:tt < $value:expr; ) => { ... };
    ( $key:tt >= $value:tt ) => { ... };
    ( $key:tt >= $value:expr; ) => { ... };
    ( $key:tt %% $value:tt ) => { ... };
    ( $key:tt %% $value:expr; ) => { ... };
    ( $key:tt $op:tt $value:tt && cond($condition:expr) $($rest:tt)+ ) => { ... };
    ( $key:tt $op:tt $value:expr; && cond($condition:expr) $($rest:tt)+ ) => { ... };
    ( $key:tt $op:tt $value:tt || cond($condition:expr) $($rest:tt)+ ) => { ... };
    ( $key:tt $op:tt $value:expr; || cond($condition:expr) $($rest:tt)+ ) => { ... };
    ( $key:tt $op:tt $value:tt && $($rest:tt)+ ) => { ... };
    ( $key:tt $op:tt $value:expr; && $($rest:tt)+ ) => { ... };
    ( $key:tt $op:tt $value:tt || $($rest:tt)+ ) => { ... };
    ( $key:tt $op:tt $value:expr; || $($rest:tt)+ ) => { ... };
    ( ($($lhs:tt)+) && cond($condition:expr) $($rhs:tt)+ ) => { ... };
    ( ($($lhs:tt)+) || cond($condition:expr) $($rhs:tt)+ ) => { ... };
    ( $($lhs:tt)+ && cond($condition:expr) ($($rhs:tt)+) ) => { ... };
    ( $($lhs:tt)+ || cond($condition:expr) ($($rhs:tt)+) ) => { ... };
    ( ($($lhs:tt)+) && $($rhs:tt)+ ) => { ... };
    ( ($($lhs:tt)+) || $($rhs:tt)+ ) => { ... };
    ( $($lhs:tt)+ && ($($rhs:tt)+) ) => { ... };
    ( $($lhs:tt)+ || ($($rhs:tt)+) ) => { ... };
    ( ($($qq:tt)+) ) => { ... };
}