private Function PickFunction(AstNode node, FunctionGroup fgroup, FunctionGroupType groupType, FunctionGroupSelector selector, List<object> arguments, bool forgive) { if(groupType == ChelaType.GetAnyFunctionGroupType()) { Function ret = PickFunction(node, fgroup, false, selector, arguments, true); if(ret != null) return ret; return PickFunction(node, fgroup, true, selector, arguments, false || forgive); } else if(groupType == ChelaType.GetStaticFunctionGroupType()) { return PickFunction(node, fgroup, true, selector, arguments, false || forgive); } else { return PickFunction(node, fgroup, false, selector, arguments, false || forgive); } }
private Function PickFunction(AstNode node, FunctionGroup fgroup, FunctionGroupType groupType, List<object> arguments) { return PickFunction(node, fgroup, groupType, null, arguments, false); }
private Function PickFunction(AstNode node, FunctionGroup fgroup, FunctionGroupType groupType, FunctionGroupSelector selector, Expression arguments) { if(groupType == ChelaType.GetAnyFunctionGroupType()) { Function ret = PickFunction(node, fgroup, false, selector, arguments, true); if(ret != null) return ret; return PickFunction(node, fgroup, true, selector, arguments, false); } else if(groupType == ChelaType.GetStaticFunctionGroupType()) { return PickFunction(node, fgroup, true, selector, arguments, false); } else { return PickFunction(node, fgroup, false, selector, arguments, false); } }