diff options
author | Daniel Grunwald <daniel@danielgrunwald.de> | 2012-02-20 22:55:21 +0400 |
---|---|---|
committer | Daniel Grunwald <daniel@danielgrunwald.de> | 2012-02-20 22:55:21 +0400 |
commit | 06bf2f4c2fe9da62bd081a1b8c09e08e6715c3d5 (patch) | |
tree | d621dae04387943e9b6de30cfc31f0296b5e7df1 /ICSharpCode.NRefactory.Xml | |
parent | 191ac7c9dfceb8c959f791a6ef89a72325b81c7e (diff) |
Add consistency check for incremental tag soup parser
Diffstat (limited to 'ICSharpCode.NRefactory.Xml')
-rw-r--r-- | ICSharpCode.NRefactory.Xml/AXmlAttribute.cs | 7 | ||||
-rw-r--r-- | ICSharpCode.NRefactory.Xml/AXmlTag.cs | 7 | ||||
-rw-r--r-- | ICSharpCode.NRefactory.Xml/AXmlText.cs | 12 | ||||
-rw-r--r-- | ICSharpCode.NRefactory.Xml/TagReader.cs | 2 |
4 files changed, 27 insertions, 1 deletions
diff --git a/ICSharpCode.NRefactory.Xml/AXmlAttribute.cs b/ICSharpCode.NRefactory.Xml/AXmlAttribute.cs index a7adbeae..ae24bcf0 100644 --- a/ICSharpCode.NRefactory.Xml/AXmlAttribute.cs +++ b/ICSharpCode.NRefactory.Xml/AXmlAttribute.cs @@ -17,6 +17,7 @@ // DEALINGS IN THE SOFTWARE. using System; +using System.Globalization; using ICSharpCode.NRefactory.Editor; namespace ICSharpCode.NRefactory.Xml @@ -57,5 +58,11 @@ namespace ICSharpCode.NRefactory.Xml { visitor.VisitAttribute(this); } + + /// <inheritdoc/> + public override string ToString() + { + return string.Format(CultureInfo.InvariantCulture, "[{0} '{1}={2}']", base.ToString(), this.Name, this.Value); + } } } diff --git a/ICSharpCode.NRefactory.Xml/AXmlTag.cs b/ICSharpCode.NRefactory.Xml/AXmlTag.cs index 3584053d..adca935c 100644 --- a/ICSharpCode.NRefactory.Xml/AXmlTag.cs +++ b/ICSharpCode.NRefactory.Xml/AXmlTag.cs @@ -18,6 +18,7 @@ using System; using System.Collections.ObjectModel; +using System.Globalization; using ICSharpCode.NRefactory.Editor; namespace ICSharpCode.NRefactory.Xml @@ -87,5 +88,11 @@ namespace ICSharpCode.NRefactory.Xml { visitor.VisitTag(this); } + + /// <inheritdoc/> + public override string ToString() + { + return string.Format(CultureInfo.InvariantCulture, "[{0} '{1}{2}{3}' Attr:{4}]", base.ToString(), this.OpeningBracket, this.Name, this.ClosingBracket, this.Children.Count); + } } } diff --git a/ICSharpCode.NRefactory.Xml/AXmlText.cs b/ICSharpCode.NRefactory.Xml/AXmlText.cs index fe50ec48..f07895a5 100644 --- a/ICSharpCode.NRefactory.Xml/AXmlText.cs +++ b/ICSharpCode.NRefactory.Xml/AXmlText.cs @@ -17,6 +17,7 @@ // DEALINGS IN THE SOFTWARE. using System; +using System.Globalization; namespace ICSharpCode.NRefactory.Xml { @@ -30,6 +31,11 @@ namespace ICSharpCode.NRefactory.Xml { } +// /// <summary> The type of the text node </summary> +// public TextType Type { +// get { return ((InternalText)internalObject).Type; } +// } + /// <summary> The text with all entity references resloved </summary> public string Value { get { return ((InternalText)internalObject).Value; } @@ -47,5 +53,11 @@ namespace ICSharpCode.NRefactory.Xml { visitor.VisitText(this); } + + /// <inheritdoc/> + public override string ToString() + { + return string.Format(CultureInfo.InvariantCulture, "[{0} Text.Length={1}]", base.ToString(), this.Value.Length); + } } } diff --git a/ICSharpCode.NRefactory.Xml/TagReader.cs b/ICSharpCode.NRefactory.Xml/TagReader.cs index c31d2e62..bbde5171 100644 --- a/ICSharpCode.NRefactory.Xml/TagReader.cs +++ b/ICSharpCode.NRefactory.Xml/TagReader.cs @@ -220,7 +220,7 @@ namespace ICSharpCode.NRefactory.Xml HashSet<string> attributeNames = new HashSet<string>(); foreach (var obj in tag.NestedObjects) { InternalAttribute attr = obj as InternalAttribute; - if (attr != null && attributeNames.Add(attr.Name)) { + if (attr != null && !attributeNames.Add(attr.Name)) { int attrStart = tagStart + attr.StartRelativeToParent; OnSyntaxError(attrStart, attrStart + attr.Name.Length, "Attribute with name '{0}' already exists", attr.Name); } |