Rewrote lexer