As it turns out, it's actually quite easy. At least making an interpreated one is. That's why I decided to turn the project from an interpreter into a compiler.
At first it compiled to NASM style assembly, but implementing more complex language features in assembly proved to be harder than I anticipated. Now the compiler targets LLVM intermediate representation instead.