private static bool TryGetBindings(SyntaxTreeNode node, BindingContext bindingContext, out MemberBinding[] bindings, out Exception bindingError)
        {
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }
            if (bindingContext == null)
            {
                throw new ArgumentNullException("bindingContext");
            }

            var bindingNodes = node.GetBindings(throwOnError: true);

            bindingError = null;

            bindings = new MemberBinding[bindingNodes.Count];
            for (var i = 0; i < bindings.Length; i++)
            {
                if (TryGetBinding(bindingNodes[Constants.GetIndexAsString(i)], bindingContext, out bindings[i], out bindingError))
                {
                    continue;
                }

                bindingError = bindingError ?? new ExpressionParserException(Properties.Resources.EXCEPTION_BIND_FAILEDTOBINDMEMBERBINDINGS, node);
                return(false);
            }

            return(true);
        }