lexer modified