macro_rules! pt {
[ $func:ident($($args:expr),*) $($other:tt)+] => { ... };
[ $a:ident . $b:ident $(($($args:expr),*))?. $($other:tt)+] => { ... };
[ $a:ident . $b:ident $(($($args:expr),*))?-> $($other:tt)+] => { ... };
[ $a:ident -> $b:ident $(($($args:expr),*))?. $($other:tt)+] => { ... };
[ $a:ident -> $b:ident $(($($args:expr),*))?-> $($other:tt)+] => { ... };
[ $a:ident . $b:ident $(($($args:expr),*))? ] => { ... };
[ $a:ident -> $b:ident $(($($args:expr),*))? ] => { ... };
[ $a:ident . $b:ident $(($($args:expr),*))? = $c:ident $($other:tt)+] => { ... };
[ $a:ident -> $b:ident $(($($args:expr),*))? = $c:ident $($other:tt)+] => { ... };
[ $a:ident . $b:ident $(($($args:expr),*))? = $c:expr] => { ... };
[ $a:ident -> $b:ident $(($($args:expr),*))? = $c:expr] => { ... };
}