Simulates unhygienic macro to make parser's code cleaner. It lives here because it's not a generic purpose macro (at all).
This can't be implemented with macro_rule! because
rust does not support token munching (destructing $b:block
into { $($t:tt)* }
).