Added templating DSL to enable pretty-printing of ASTs