public XmlAttributeExpressionNode([NotNull] XmlValueExpressionNode name, XmlValueExpressionNode equal, [NotNull] XmlValueExpressionNode value, int start, int end)
     : base(start, end)
 {
     Should.NotBeNull(name, "name");
     Should.NotBeNull(value, "value");
     Name  = name;
     Equal = equal;
     Value = value;
 }
 public XmlElementExpressionNode([NotNull] XmlValueExpressionNode startTag, string name, int start, int end)
     : base(start, end)
 {
     Should.NotBeNull(startTag, "startTag");
     Should.NotBeNull(name, "name");
     StartTag    = startTag;
     _name       = name;
     _elements   = new List <XmlExpressionNode>();
     _attributes = new List <XmlExpressionNode>();
 }
        protected override void AcceptInternal(IExpressionVisitor visitor)
        {
            StartTag = AcceptWithCheck(visitor, StartTag, true);
            if (StartTagEnd != null)
            {
                StartTagEnd = AcceptWithCheck(visitor, StartTagEnd, true);
            }
            if (EndTag != null)
            {
                EndTag = AcceptWithCheck(visitor, EndTag, true);
            }
            for (int i = 0; i < _elements.Count; i++)
            {
                XmlExpressionNode node = AcceptWithCheck(visitor, _elements[i], false);
                if (node == null)
                {
                    _elements.RemoveAt(i);
                    i--;
                }
                else
                {
                    _elements[i] = node;
                }
            }

            for (int i = 0; i < _attributes.Count; i++)
            {
                XmlExpressionNode node = AcceptWithCheck(visitor, _attributes[i], false);
                if (node == null)
                {
                    _attributes.RemoveAt(i);
                    i--;
                }
                else
                {
                    _attributes[i] = node;
                }
            }
        }
 public void UpdateCloseTag([NotNull] XmlValueExpressionNode endTag, int endPosition)
 {
     Should.NotBeNull(endTag, "endTag");
     EndTag = endTag;
     UpdatePosition(Start, endPosition);
 }
 public void UpdateStartTagEnd([NotNull] XmlValueExpressionNode startTagEnd)
 {
     Should.NotBeNull(startTagEnd, "startTagEnd");
     StartTagEnd = startTagEnd;
 }
 protected override void AcceptInternal(IExpressionVisitor visitor)
 {
     Name  = AcceptWithCheck(visitor, Name, true);
     Equal = AcceptWithCheck(visitor, Equal, true);
     Value = AcceptWithCheck(visitor, Value, true);
 }