The JavaClassGenerator compiles a template into a single Java class file.
A template is compiled such that it has two static methods, execute and
getTemplateParameterNames.
A TypeChecker operates on a template's parse tree, created by a
Parser , filling in type information while it checks the validity of
the whole template.