Lexer, Parser, AST part of LLVM Compiler tutorial; C++-ified compared to tutorial/caught minor bugs.