Reworking lexer