DSL for cross-compiling templates to different template languages