Use compilers for rendering output

This should make it very easy to implement compilers for various
preprocessors.