Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/NRefactory.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Grunwald <daniel@danielgrunwald.de>2012-02-20 22:55:21 +0400
committerDaniel Grunwald <daniel@danielgrunwald.de>2012-02-20 22:55:21 +0400
commit06bf2f4c2fe9da62bd081a1b8c09e08e6715c3d5 (patch)
treed621dae04387943e9b6de30cfc31f0296b5e7df1 /ICSharpCode.NRefactory.Xml
parent191ac7c9dfceb8c959f791a6ef89a72325b81c7e (diff)
Add consistency check for incremental tag soup parser
Diffstat (limited to 'ICSharpCode.NRefactory.Xml')
-rw-r--r--ICSharpCode.NRefactory.Xml/AXmlAttribute.cs7
-rw-r--r--ICSharpCode.NRefactory.Xml/AXmlTag.cs7
-rw-r--r--ICSharpCode.NRefactory.Xml/AXmlText.cs12
-rw-r--r--ICSharpCode.NRefactory.Xml/TagReader.cs2
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);
}