/// <summary>The <see cref="VisitSimpleSelectorSequenceNode"/> visit implementation</summary> /// <param name="simpleSelectorSequenceNode">The simpleSelector AST node</param> /// <returns>The modified AST node if modified otherwise the original node</returns> public override AstNode VisitSimpleSelectorSequenceNode(SimpleSelectorSequenceNode simpleSelectorSequenceNode) { // simple_selector_sequence // : [ type_selector | universal ] // [ HASH | class | attrib | pseudo | negation ]* // | [ HASH | class | attrib | pseudo | negation ]+ // ; if (simpleSelectorSequenceNode.TypeSelectorNode != null) { simpleSelectorSequenceNode.TypeSelectorNode.Accept(this); } if (simpleSelectorSequenceNode.UniversalSelectorNode != null) { simpleSelectorSequenceNode.UniversalSelectorNode.Accept(this); } if (simpleSelectorSequenceNode.HashClassAttribPseudoNegationNodes.Count > 0) { _printerFormatter.Append(simpleSelectorSequenceNode.Separator); } // [ HASH | class | attrib | pseudo | negation ]* // | [ HASH | class | attrib | pseudo | negation ]+ simpleSelectorSequenceNode.HashClassAttribPseudoNegationNodes.ForEach(hashClassAttribPseudoNegationNode => hashClassAttribPseudoNegationNode.Accept(this)); return(simpleSelectorSequenceNode); }
/// <summary>Initializes a new instance of the CombinatorSimpleSelectorSequenceNode class</summary> /// <param name="combinator">Combinator obejct</param> /// <param name="simpleSelectorSequenceNode">Simple SelectorNode</param> public CombinatorSimpleSelectorSequenceNode(Combinator combinator, SimpleSelectorSequenceNode simpleSelectorSequenceNode) { Contract.Requires(combinator != Combinator.None); Contract.Requires(simpleSelectorSequenceNode != null); this.Combinator = combinator; this.SimpleSelectorSequenceNode = simpleSelectorSequenceNode; }
/// <summary>The <see cref="SimpleSelectorSequenceNode"/> visit implementation</summary> /// <param name="simpleSelectorSequenceNode">The simple selector sequence node.</param> /// <returns>The modified AST node if modified otherwise the original node</returns> public override AstNode VisitSimpleSelectorSequenceNode(SimpleSelectorSequenceNode simpleSelectorSequenceNode) { return(new SimpleSelectorSequenceNode( simpleSelectorSequenceNode.TypeSelectorNode != null ? (TypeSelectorNode)simpleSelectorSequenceNode.TypeSelectorNode.Accept(this) : null, simpleSelectorSequenceNode.UniversalSelectorNode != null ? (UniversalSelectorNode)simpleSelectorSequenceNode.UniversalSelectorNode.Accept(this) : null, simpleSelectorSequenceNode.Separator, simpleSelectorSequenceNode.HashClassAttribPseudoNegationNodes.Select(hashClassAtNameAttribPseudoNegationNode => (HashClassAtNameAttribPseudoNegationNode)hashClassAtNameAttribPseudoNegationNode.Accept(this)).ToSafeReadOnlyCollection())); }
/// <summary>The <see cref="SimpleSelectorSequenceNode"/> visit implementation</summary> /// <param name="simpleSelectorSequenceNode">The simple selector sequence node.</param> /// <returns>The modified AST node if modified otherwise the original node</returns> public virtual AstNode VisitSimpleSelectorSequenceNode(SimpleSelectorSequenceNode simpleSelectorSequenceNode) { return(simpleSelectorSequenceNode); }