code: function checkCompoundSelector1(i) {
    if (i >= tokensLength) return 0;
  
    const start = i;
    let l;
  
    if (l = checkUniversalSelector(i) ||
        checkTypeSelector(i) ||
        checkPlaceholder(i) ||
        checkParentSelectorWithExtension(i)) i += l;
    else return 0;
  
    while (i < tokensLength) {
      const l = checkShash(i) ||
          checkClass(i) ||
          checkAttributeSelector(i) ||
          checkPseudo(i) ||
          checkPlaceholder(i) ||
          checkInterpolation(i);
  
      if (l) i += l;
      else break;
    }
  
    tokens[start].compoundSelectorEnd = i;
  
    return i - start;
  }
docs: Check for compound selectors that start with either a type selector,
  placeholder or parent selector with extension
  (1) `foo.bar`
  (2) `foo[attr=val]`
  (3) `foo:first-of-type`
  (4) `foo%bar`
  @param {number} i Token's index
  @return {number} Compound selector's length