macro_rules! arg { ($x:ident; (var($e:ident))) => { ... }; ($x:ident; ($f:tt $e:tt?)) => { ... }; ($x:ident; ($e:tt?)) => { ... }; ($x:ident; ($e:tt..)) => { ... }; ($x:ident; $e:tt) => { ... }; }