public bool TryGetValidValue(TexlNode argNode, TexlBinding binding, out IExternalDataSource dsInfo) { Contracts.AssertValue(argNode); Contracts.AssertValue(binding); dsInfo = null; switch (argNode.Kind) { case NodeKind.FirstName: return(TryGetDsInfo(argNode.AsFirstName(), binding, out dsInfo)); case NodeKind.Call: return(TryGetDsInfo(argNode.AsCall(), binding, out dsInfo)); case NodeKind.DottedName: return(TryGetDsInfo(argNode.AsDottedName(), binding, out dsInfo)); case NodeKind.As: return(TryGetValidValue(argNode.AsAsNode().Left, binding, out dsInfo)); } return(false); }