groovy/ast: using AST transformations to build a DSL