def evaluate_function_call(self, node, bindings): params = node.args.accept(self, bindings) func_name = node.name.accept(self, bindings) funcBinding = Binding(func_name[0].parent) funcBinding.bindings = func_name[0].bindings.copy() function = func_name[1] for x in range(len(params)): funcBinding.setValue(list(funcBinding.bindings.keys())[x],params[x]) return function.accept(self, funcBinding)