A much much better system would be one that lets you write vanilla Rust code to manipulate either the token stream or the parsed AST.
Token manipulation code is frequently full of syn! macro hell. So even token manipulation is only kind of normal Rust code.
A much much better system would be one that lets you write vanilla Rust code to manipulate either the token stream or the parsed AST.