macro_rules! swrite { ($target : expr, if $expr : expr, $($tt : tt) +) => { ... }; ($target : expr, for $expr : expr, $($tt : tt) +) => { ... }; ($target : expr, $($tt : tt) +) => { ... }; }