It used to be possible to define foo! bar {} macros in some way (I think using the unstable compiler plugin api which has been almost entirely removed since, but supported for example a predecessor to proc macros), but since rustc 1.38.0 macro_rules! is a special case in the parser and anything else will give a syntax error.