code: function parseChunks(selector, selectors) {
            var parts = [], extra, matches, i;
  
            do {
              chunker.exec("");
              matches = chunker.exec(selector);
  
              if (matches) {
                selector = matches[3];
                parts.push(matches[1]);
  
                if (matches[2]) {
                  extra = matches[3];
                  break;
                }
              }
            } while (matches);
  
            if (extra) {
              parseChunks(extra, selectors);
            }
  
            selector = [];
            for (i = 0; i < parts.length; i++) {
              if (parts[i] != '>') {
                selector.push(compile(parts[i], [], parts[i - 1] === '>'));
              }
            }
  
            selectors.push(selector);
  
            return selectors;
          }
docs: Parser logic based on Sizzle by John Resig