Cleaned up lexer. stores tokens and errors