def _p_paren_list_of(self, func):

        result = []
        self._p_simple_string('(', syntax_error = "expected a '(' beginning " \
                              "a parenthesized list")
        # If we hit a ')' then it was an empty list.
        #
        if self._p_simple_string(')', silent = True) is not None:
            return result

        # Go through the list looking for tokens
        #
        while True:

            # We should have a token next. If this fails it will raise an
            # exception all the way up
            #
            result.append(func())

            # if the next element is a ')' then we have hit the end of our
            # list.
            #
            if self._p_simple_string(')', silent = True) is not None:
                break

            # It was not a ')' it MUST be a ' ' then.
            #
            self._p_simple_string(' ')

        # all done
        #
        return result

    #######################################################################
    #
return reduce(combine_fn, map(extract_fn, data)) for each quanta of the
dataset/ETHPy150Open scanner/asimap/asimap/parse.py/IMAPClientCommand._p_paren_list_of--crossover with--dataset/ETHPy150Open jansel/opentuner/opentuner/utils/stats_matplotlib.py/stats_over_time