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);
}