Implementing a language with LLVM