Build a parse tree before compiling
Simplify ComponentCompiler
Add a nice wrapper for generating code output