dotLang: Writing a Compiler using LLVM - Part 1