def __lookup_builtin(name):
    """Lookup the parameter name and default parameter values for
    builtin functions.
    """
    global __builtin_functions
    if __builtin_functions is None:
        builtins = dict()
        for proto in __builtins:
            pos = proto.find('(')
            name, params, defaults = proto[:pos], list(), dict()
            for param in proto[pos + 1:-1].split(','):
                pos = param.find('=')
                if not pos < 0:
                    param, value = param[:pos], param[pos + 1:]
                    try:
                        defaults[param] = __builtin_defaults[value]
                    except KeyError:
                        raise ValueError(
                            'builtin function %s: parameter %s: '
                            'unknown default %r' % (name, param, value))
                params.append(param)
            builtins[name] = (params, defaults)
        __builtin_functions = builtins

    try:
        params, defaults = __builtin_functions[name]
    except KeyError:
        params, defaults = tuple(), dict()
        __builtin_functions[name] = (params, defaults)
        print(
            "Warning: builtin function %r is missing prototype" % name,
            file=sys.stderr)
    return len(params), params, defaults
Lookup the parameter name and default parameter values for
    builtin functions.