Ejemplo n.º 1
0
def foldFunctionIR(extractor, func, vargs=(), kargs={}):
    newvargs = [arg.pyobj for arg in vargs]

    assert not kargs, kargs
    newkargs = {}

    result = applyFunction(func, newvargs, newkargs)
    return extractor.getObject(result)
Ejemplo n.º 2
0
def foldFunctionIR(extractor, func, vargs=(), kargs={}):
	newvargs = [arg.pyobj for arg in vargs]

	assert not kargs, kargs
	newkargs = {}

	result = applyFunction(func, newvargs, newkargs)
	return extractor.getObject(result)
Ejemplo n.º 3
0
def foldCallAST(extractor, node, func, args=(), kargs={}):
	assert not kargs, kargs

	for arg in args:
		if not existingConstant(arg):
			return node
	try:
		args = [arg.object.pyobj for arg in args]
		value = apply.applyFunction(func, args)
		obj = extractor.getObject(value)
		return ast.Existing(obj)
	except apply.ApplyError:
		pass

	return node
Ejemplo n.º 4
0
def foldCallAST(extractor, node, func, args=(), kargs={}):
    assert not kargs, kargs

    for arg in args:
        if not existingConstant(arg):
            return node
    try:
        args = [arg.object.pyobj for arg in args]
        value = apply.applyFunction(func, args)
        obj = extractor.getObject(value)
        return ast.Existing(obj)
    except apply.ApplyError:
        pass

    return node