Beispiel #1
0
        /// <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;
        }
Beispiel #2
0
        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;
        }