private Expression Resolve(string Token) { Expression resolve = context.LookupName(Token).SingleOrDefault(); if (!ReferenceEquals(resolve, null)) { return(resolve); } else { return(Variable.New(Token)); } }
protected override Expression VisitVariable(Variable V) { IEnumerable <Expression> lookup = ns.LookupName(V.Name); switch (lookup.Count()) { case 0: return(V); case 1: return(lookup.Single()); default: throw new UnresolvedName(V.Name); } }