updated lexer operation