public CssAttributeSelector(string attributeName, string attributeValue, CssAttributeSelectorOperation operation, CssAttributeSelectorValueType attributeValueType, bool explicitCaseInsensitive) { AttributeName = attributeName ?? throw new ArgumentNullException(nameof(attributeName)); AttributeValue = attributeValue ?? throw new ArgumentNullException(nameof(attributeValue)); Operation = operation; AttributeValueType = attributeValueType; ExplicitCaseInsensitive = explicitCaseInsensitive; }
public bool TryReadCssAttributeSelectorOperation(out CssAttributeSelectorOperation operation) { switch (CurrentChar) { case ']': operation = CssAttributeSelectorOperation.Has; return(true); case '=': Position++; operation = CssAttributeSelectorOperation.Exact; return(true); case '~' when NextChar == '=': Position += 2; operation = CssAttributeSelectorOperation.WordExact; return(true); case '|' when NextChar == '=': Position += 2; operation = CssAttributeSelectorOperation.ExactOrHyphenatedPrefix; return(true); case '^' when NextChar == '=': Position += 2; operation = CssAttributeSelectorOperation.Prefix; return(true); case '$' when NextChar == '=': Position += 2; operation = CssAttributeSelectorOperation.Suffix; return(true); case '*' when NextChar == '=': Position += 2; operation = CssAttributeSelectorOperation.Contains; return(true); default: operation = CssAttributeSelectorOperation.Exact; return(false); } }