<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _lookahead_token(self, count=1):
 """ Peeks into the token stream up to the specified number of tokens without consuming any tokens from the stream. ``count`` Look ahead in stream up to a maximum number of tokens. Returns string token or ``None``. """


        stack = []
        next_token = None

        # fetch the specified number of tokens ahead in stream
        while count > 0:
            item = self._lexer.get_token()
            if not item:
                break
            stack.append(item)
            count -= 1

        # store the latest token and push the tokens back on the
        # lexer stack so we don't consume them
        while stack:
            line_no, token = stack.pop()

            if not next_token:
                next_token = token
            self._lexer.push_token(line_no, token)

        return next_token