lexer working