Major parser update
Template definition should be just a macro, not a custom part of the compiler
Fix parser exports
Update compiler
Add compiler back to system definition
Update tests