A simple C-like language compiler with an extensible syntax and typed macros support