DSL?! You crazy bro?
If you are using DScanner, just let people use D itself to
write their own custom AST transformation code. With DUB it
should be super easy to compile that code and run it on the
target D code.
This solution is vastly more simple than inventing your own
DSL, and scales way better as a general purpose language will
have much more power that selection/transformation patterns.
The thing I have in mind should be really easy for simple tasks
`if constuctor in any class has parameter of type "oldRouter"
change that parameter to type "new Router"`
but i habe yet to find a good notation for that