own lexer