corrected lexer