code: function checkPseudoClass3(i) {
    const start = i;
    let l = 0;
  
    // Skip `:`.
    i++;
  
    if (i >= tokensLength) return 0;
  
    if (l = checkIdent(i)) i += l;
    else return 0;
  
    if (i >= tokensLength ||
        tokens[i].type !== TokenType.LeftParenthesis) return 0;
  
    const right = tokens[i].right;
  
    // Skip `(`.
    i++;
  
    if (l = checkSC(i)) i += l;
  
    if (l = checkUnary(i)) i += l;
  
    if (i >= tokensLength) return 0;
    if (tokens[i].type === TokenType.DecimalNumber) i++;
  
    if (i >= tokensLength) return 0;
    if (tokens[i].value === 'n') i++;
    else return 0;
  
    if (l = checkSC(i)) i += l;
  
    if (i >= tokensLength) return 0;
    if (tokens[i].value === '+' ||
        tokens[i].value === '-') i++;
    else return 0;
  
    if (l = checkSC(i)) i += l;
  
    if (tokens[i].type === TokenType.DecimalNumber) i++;
    else return 0;
  
    if (l = checkSC(i)) i += l;
  
    if (i !== right) return 0;
  
    // Skip `)`.
    i++;
  
    return i - start;
  }
docs: (-) `:nth-child(-3n + 2)`