/// <summary>Initializes a new instance of the <see cref="NegationArgNode"/> class.</summary> /// <param name="typeSelectorNode">The type selector node.</param> /// <param name="universalSelectorNode">The universal selector node.</param> /// <param name="hash">The hash.</param> /// <param name="cssClass">The css class.</param> /// <param name="attribNode">The attrib node.</param> /// <param name="pseudoNode">The pseudo node.</param> public NegationArgNode(TypeSelectorNode typeSelectorNode, UniversalSelectorNode universalSelectorNode, string hash, string cssClass, AttribNode attribNode, PseudoNode pseudoNode) { if (typeSelectorNode != null) { if (universalSelectorNode != null || !string.IsNullOrWhiteSpace(hash) || !string.IsNullOrWhiteSpace(cssClass) || attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (universalSelectorNode != null) { if (!string.IsNullOrWhiteSpace(hash) || !string.IsNullOrWhiteSpace(cssClass) || attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (!string.IsNullOrWhiteSpace(hash)) { if (!string.IsNullOrWhiteSpace(cssClass) || attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (!string.IsNullOrWhiteSpace(cssClass)) { if (attribNode != null || pseudoNode != null) { throw new AstException(ExceptionMessage); } } if (attribNode != null) { if (pseudoNode != null) { throw new AstException(ExceptionMessage); } } this.TypeSelectorNode = typeSelectorNode; this.UniversalSelectorNode = universalSelectorNode; this.Hash = hash; this.CssClass = cssClass; this.AttribNode = attribNode; this.PseudoNode = pseudoNode; }
public HashClassAtNameAttribPseudoNegationNode(string hash, string cssClass, string replacementToken, string atName, AttribNode attribNode, PseudoNode pseudoNode, NegationNode negationNode) { // TODO: RTUIT: Maybe remove this and code like this in non-debug mode, seems this only happens when our parser/lexer is invalid? // At least simplify this logic. if (!string.IsNullOrWhiteSpace(hash)) { if (!string.IsNullOrWhiteSpace(cssClass) || !string.IsNullOrWhiteSpace(atName) || !string.IsNullOrWhiteSpace(replacementToken) || attribNode != null || pseudoNode != null || negationNode != null) { throw new AstException(ExceptionMessage); } } else if (!string.IsNullOrWhiteSpace(cssClass)) { if (!string.IsNullOrWhiteSpace(replacementToken) || !string.IsNullOrWhiteSpace(atName) || attribNode != null || pseudoNode != null || negationNode != null) { throw new AstException(ExceptionMessage); } } else if (!string.IsNullOrWhiteSpace(replacementToken)) { if (!string.IsNullOrWhiteSpace(atName) || attribNode != null || pseudoNode != null || negationNode != null) { throw new AstException(ExceptionMessage); } } else if (!string.IsNullOrWhiteSpace(atName)) { if (attribNode != null || pseudoNode != null || negationNode != null) { throw new AstException(ExceptionMessage); } } else if (attribNode != null) { if (pseudoNode != null || negationNode != null) { throw new AstException(ExceptionMessage); } } else if (pseudoNode != null) { if (negationNode != null) { throw new AstException(ExceptionMessage); } } this.Hash = hash; this.ReplacementToken = replacementToken; this.CssClass = cssClass; this.AtName = atName; this.AttribNode = attribNode; this.PseudoNode = pseudoNode; this.NegationNode = negationNode; }