private Function Resolve(string Token, IEnumerable <Expression> Args) { Function resolve = context.LookupFunction(Token, Args).SingleOrDefault(); if (!(resolve is null)) { return(resolve); }
private Function Resolve(string Token, IEnumerable <Expression> Args) { Function resolve = context.LookupFunction(Token, Args).SingleOrDefault(); if (!ReferenceEquals(resolve, null)) { return(resolve); } else { return(UnknownFunction.New(Token, Args.Count())); } }
protected override Expression VisitCall(Call F) { F = (Call)base.VisitCall(F); if (F.Target is UnknownFunction) { IEnumerable <Function> lookup = ns.LookupFunction(F.Target.Name, F.Arguments); switch (lookup.Count()) { case 0: return(F); case 1: return(Call.New(lookup.Single(), F.Arguments)); default: throw new UnresolvedName(F.Target.Name); } } return(F); }