Virtual destructors, virtual destructors everywhere
Create ErrorReporter class
Integrate ErrorReporter into Lexer and Parser (Also, memory leaks are gone according to Valgrind)