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``.

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