lexer work