def expand_call(node): if is_name(node): return collect_functor(unit(node)()) elif is_call(node): return collect_functor(unit(copy.deepcopy(node))) else: raise TypeError('Name or Call node expected, not {}'.format(node))
def visit_Call(self, node): if not is_name(node.func): raise TypeError('{} is not a valid functor name.' .format(node.func)) if node.keywords: raise TypeError('Keyword arguments are not allowed: {}' .format(node)) if node.starargs: raise TypeError('Starred arguments are not allowed: {}' .format(node)) if node.kwargs: raise TypeError('Starred keyword arguments are not allowed: {}' .format(node)) self.push() for each in node.args: self.visit(each) args = self.pop() assert len(args) == len(node.args) self.append(Relation(env=self.env, name=node.func.id, params=args))
def visit_Call(self, node): if not is_name(node.func): raise TypeError('{} is not a valid functor name.' .format(node.func)) if node.keywords: raise TypeError('Keyword arguments are not allowed: {}' .format(node)) if node.starargs: raise TypeError('Starred arguments are not allowed: {}' .format(node)) if node.kwargs: raise TypeError('Starred keyword arguments are not allowed: {}' .format(node)) self.append( ast.Call( func=node.func, args=[_rearrange(arg) for arg in node.args], keywords=[], starargs=None, kwargs=None))