MoreInternals.Model.Selector.ParseRawChildSelector C# (CSharp) Method

ParseRawChildSelector() private static method

private static ParseRawChildSelector ( string parts, int start, int stop, string filePath ) : Selector
parts string
start int
stop int
filePath string
return Selector
        private static Selector ParseRawChildSelector(string[] parts, int start, int stop, string filePath)
        {
            if (parts.Length == 2)
            {
                Selector parent, child;

                if (parts.Count(c => c.Trim().Length > 0) == 2)
                {
                    parent = ParseRawSelector(parts[0], start, stop, filePath);
                    child = ParseRawSelector(parts[1], start, stop, filePath);
                }
                else
                {
                    parent = null;
                    child = ParseRawSelector(parts[1], start, stop, filePath);
                }

                return new ChildSelector(parent, child, start, stop, filePath);
            }

            var left = ParseRawSelector(parts[0], start, stop, filePath);

            return new ChildSelector(left, ParseRawChildSelector(parts.Skip(1).ToArray(), start, stop, filePath), start, stop, filePath);
        }