What is the difference between procedural macros and syntactic macros? Rust refers to its macro system as procedural, but I've seen language articles refer to a system like the rust macro system as syntactic macros. Syntactic macros would appear to have access to all or part of the AST when parsing them. Which appears to be what Rust has.