macro_rules! morestuff { ( <= "space between most kinds of tokens" : 1 $x + @ :: >>= 'static "no space inside paren or bracket" : (2 a) [2 a] $(2 $a:tt)* "space inside curly brace" : { 2 a } "no space inside empty delimiters" : () [] {} "no space before comma or semicolon" : a, (a), { a }, a; [T; 0]; "the three repetition specifiers" : $(@)*, $(@)+, $(@)? "repetition separators" : $(@)|*, $(@)|+, $(@)==*, $(@)static* "plus or star cannot be a repetition separator" : $(@)+ * $(@)* + "no space between ident and paren" : let _ = f(0) + f[0] + Struct {}; "space between keyword and paren" : return (a,) & for x in (..) "some special case keywords" : pub(crate), fn() -> u8, Self(0, 0) => ) => { ... }; }