/// <summary> /// Constructs a new input reference, from the specified input key and chain of member references. /// </summary> /// <param name = "key">The key.</param> /// <param name = "memberChain">The member chain.</param> public InputReference(InputKey key, IEnumerable <InputMemberReference> memberChain) { this.key = key; invocationChain = memberChain; var names = new[] { key.Label }.Concat(memberChain.Select(x => x.ToString())); localName = string.Join("_", names); preProcessing = ProcessingQueue.Empty(); preProcessing = memberChain.Any() ? preProcessing.Extend(new ReferenceMemberStep(memberChain)) : preProcessing; }
public static IToken DefineInjection(string name, IEnumerable <InputReference> inputs) { return(new UnresolvedToken(new TokenKey(name, TokenType.Injection), inputs, ProcessingQueue.Empty())); }
public static IToken DefineLiteral(string name) { return(new ResolvedToken (new TokenKey(name, TokenType.Literal), Enumerable.Empty <InputReference>(), ProcessingQueue.Empty(), name)); }