Exemplo n.º 1
0
        public override ElementSyntaxBase With(
            NameToken name = null,
            IImmutableList <AttributeSyntaxBase> attributes = null,
            IImmutableList <NodeSyntax> nodes = null,
            bool?isEmpty = null)
        {
            name       = name ?? Name;
            nodes      = nodes ?? Nodes;
            attributes = attributes ?? Attributes;

            if ((isEmpty ?? true) && nodes.Count == 0)
            {
                if (name.Equals(Name) &&
                    (attributes.Equals(Attributes) || attributes.SequenceEqual(Attributes)))
                {
                    return(this);
                }

                return(new EmptyElementSyntax(LessThan, name, attributes, Slash, GreaterThan));
            }

            return(ElementSyntax.Create(
                       ElementStartTagSyntax.Create(LessThan, name, attributes, GreaterThanToken.Default),
                       nodes,
                       ElementEndTagSyntax.Create(
                           LessThanToken.Default,
                           SlashToken.Default,
                           name,
                           GreaterThan)));
        }
 public static InlineScriptElementSyntax Create(
     ElementStartTagSyntax startTag,
     ScriptToken script,
     ElementEndTagSyntax endTag)
 {
     return(new InlineScriptElementSyntax(startTag, script, endTag));
 }
Exemplo n.º 3
0
        protected virtual SyntaxBase VisitElementEndTag(ElementEndTagSyntax syntax)
        {
            var lessThan    = VisitAndConvert(syntax.LessThan);
            var slash       = VisitAndConvert(syntax.Slash);
            var name        = VisitAndConvert(syntax.Name);
            var greaterThan = VisitAndConvert(syntax.GreaterThan);

            if (SyntaxEquals(syntax.LessThan, lessThan) &&
                SyntaxEquals(syntax.Slash, slash) &&
                SyntaxEquals(syntax.Name, name) &&
                SyntaxEquals(syntax.GreaterThan, greaterThan))
            {
                return(syntax);
            }
            return(ElementEndTagSyntax.Create(lessThan, slash, name, greaterThan));
        }
 InlineScriptElementSyntax(ElementStartTagSyntax startTag, ScriptToken script, ElementEndTagSyntax endTag)
 {
     StartTag = startTag ?? throw new ArgumentNullException(nameof(startTag));
     Script   = script ?? throw new ArgumentNullException(nameof(script));
     EndTag   = endTag ?? throw new ArgumentNullException(nameof(endTag));
 }
Exemplo n.º 5
0
 public static ElementSyntax Create(ElementStartTagSyntax startTag, IImmutableList <NodeSyntax> nodes, ElementEndTagSyntax endTag)
 {
     return(new ElementSyntax(startTag, nodes, endTag));
 }
Exemplo n.º 6
0
        ElementSyntax(ElementStartTagSyntax startTag, IImmutableList <NodeSyntax> nodes, ElementEndTagSyntax endTag)
        {
            StartTag = startTag ?? throw new ArgumentNullException(nameof(startTag));
            Nodes    = nodes ?? throw new ArgumentNullException(nameof(nodes));
            EndTag   = endTag ?? throw new ArgumentNullException(nameof(endTag));

            DescendantElementCount = nodes.OfType <ElementSyntaxBase>().Sum(x => x.DescendantElementCount + 1);
        }