/// <summary>The <see cref="HashClassAtNameAttribPseudoNegationNode"/> visit implementation</summary>
        /// <param name="hashClassAtNameAttribPseudoNegationNode">The hash class attrib pseudo negation node.</param>
        /// <returns>The modified AST node if modified otherwise the original node</returns>
        public override AstNode VisitHashClassAtNameAttribPseudoNegationNode(HashClassAtNameAttribPseudoNegationNode hashClassAtNameAttribPseudoNegationNode)
        {
            if (!string.IsNullOrWhiteSpace(hashClassAtNameAttribPseudoNegationNode.ReplacementToken))
            {
                var newValue = ReplaceTokens(hashClassAtNameAttribPseudoNegationNode.ReplacementToken, this.resources);

                if (newValue.StartsWith("#", StringComparison.OrdinalIgnoreCase))
                {
                    return(new HashClassAtNameAttribPseudoNegationNode(newValue, null, null, null, null, null, null));
                }

                if (newValue.StartsWith(".", StringComparison.OrdinalIgnoreCase))
                {
                    return(new HashClassAtNameAttribPseudoNegationNode(null, newValue, null, null, null, null, null));
                }

                if (newValue.StartsWith(".", StringComparison.OrdinalIgnoreCase))
                {
                    return(new HashClassAtNameAttribPseudoNegationNode(null, newValue, null, null, null, null, null));
                }

                return(new HashClassAtNameAttribPseudoNegationNode(null, null, newValue, null, null, null, null));
            }

            return(base.VisitHashClassAtNameAttribPseudoNegationNode(hashClassAtNameAttribPseudoNegationNode));
        }
 /// <summary>The <see cref="HashClassAtNameAttribPseudoNegationNode"/> visit implementation</summary>
 /// <param name="hashClassAtNameAttribPseudoNegationNode">The hash class attrib pseudo negation node.</param>
 /// <returns>The modified AST node if modified otherwise the original node</returns>
 public override AstNode VisitHashClassAtNameAttribPseudoNegationNode(HashClassAtNameAttribPseudoNegationNode hashClassAtNameAttribPseudoNegationNode)
 {
     return(new HashClassAtNameAttribPseudoNegationNode(
                hashClassAtNameAttribPseudoNegationNode.Hash,
                hashClassAtNameAttribPseudoNegationNode.CssClass,
                hashClassAtNameAttribPseudoNegationNode.ReplacementToken,
                hashClassAtNameAttribPseudoNegationNode.AtName,
                hashClassAtNameAttribPseudoNegationNode.AttribNode != null ? (AttribNode)hashClassAtNameAttribPseudoNegationNode.AttribNode.Accept(this) : null,
                hashClassAtNameAttribPseudoNegationNode.PseudoNode != null ? (PseudoNode)hashClassAtNameAttribPseudoNegationNode.PseudoNode.Accept(this) : null,
                hashClassAtNameAttribPseudoNegationNode.NegationNode != null ? (NegationNode)hashClassAtNameAttribPseudoNegationNode.NegationNode.Accept(this) : null
                ));
 }
Пример #3
0
        /// <summary>The <see cref="HashClassAtNameAttribPseudoNegationNode"/> visit implementation</summary>
        /// <param name="hashClassAtNameAttribPseudoNegationNode">The simpleSelector AST node</param>
        /// <returns>The modified AST node if modified otherwise the original node</returns>
        public override AstNode VisitHashClassAtNameAttribPseudoNegationNode(HashClassAtNameAttribPseudoNegationNode hashClassAtNameAttribPseudoNegationNode)
        {
            // [ HASH | class | atname | attrib | pseudo | negation ]*
            // | [ HASH | class | atname | attrib | pseudo | negation ]+

            // Add the appropriate combinator or class output
            if (!string.IsNullOrWhiteSpace(hashClassAtNameAttribPseudoNegationNode.Hash))
            {
                _printerFormatter.Append(hashClassAtNameAttribPseudoNegationNode.Hash);
            }
            else if (!string.IsNullOrWhiteSpace(hashClassAtNameAttribPseudoNegationNode.CssClass))
            {
                _printerFormatter.Append(hashClassAtNameAttribPseudoNegationNode.CssClass);
            }
            else if (!string.IsNullOrWhiteSpace(hashClassAtNameAttribPseudoNegationNode.AtName))
            {
                _printerFormatter.Append(hashClassAtNameAttribPseudoNegationNode.AtName);
            }
            else if (!string.IsNullOrWhiteSpace(hashClassAtNameAttribPseudoNegationNode.ReplacementToken))
            {
                // TODO: REPLACECSSTOKENONPRINT
                _printerFormatter.Append(hashClassAtNameAttribPseudoNegationNode.ReplacementToken);
            }
            else if (hashClassAtNameAttribPseudoNegationNode.AttribNode != null)
            {
                hashClassAtNameAttribPseudoNegationNode.AttribNode.Accept(this);
            }
            else if (hashClassAtNameAttribPseudoNegationNode.PseudoNode != null)
            {
                hashClassAtNameAttribPseudoNegationNode.PseudoNode.Accept(this);
            }
            else if (hashClassAtNameAttribPseudoNegationNode.NegationNode != null)
            {
                hashClassAtNameAttribPseudoNegationNode.NegationNode.Accept(this);
            }

            return(hashClassAtNameAttribPseudoNegationNode);
        }
Пример #4
0
 /// <summary>The <see cref="HashClassAtNameAttribPseudoNegationNode"/> visit implementation</summary>
 /// <param name="hashClassAtNameAttribPseudoNegationNode">The hash class attrib pseudo negation node.</param>
 /// <returns>The modified AST node if modified otherwise the original node</returns>
 public virtual AstNode VisitHashClassAtNameAttribPseudoNegationNode(HashClassAtNameAttribPseudoNegationNode hashClassAtNameAttribPseudoNegationNode)
 {
     return(hashClassAtNameAttribPseudoNegationNode);
 }