diff --git a/ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs b/ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs index 01c7a3d69..e9b3a90cd 100644 --- a/ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs +++ b/ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs @@ -2274,8 +2274,6 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor void MaybeNewLinesAfterUsings(AstNode node) { var nextSibling = node.NextSibling; - while (nextSibling is WhitespaceNode || nextSibling is NewLineNode) - nextSibling = nextSibling.NextSibling; if ((node is UsingDeclaration || node is UsingAliasDeclaration) && !(nextSibling is UsingDeclaration || nextSibling is UsingAliasDeclaration)) { for (int i = 0; i < policy.MinimumBlankLinesAfterUsings; i++) @@ -2400,23 +2398,6 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor writer.EndNode(comment); } - public virtual void VisitNewLine(NewLineNode newLineNode) - { - // formatter.StartNode(newLineNode); - // formatter.NewLine(); - // formatter.EndNode(newLineNode); - } - - public virtual void VisitWhitespace(WhitespaceNode whitespaceNode) - { - // unused - } - - public virtual void VisitText(TextNode textNode) - { - // unused - } - public virtual void VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective) { writer.StartNode(preProcessorDirective); diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/DepthFirstAstVisitor.cs b/ICSharpCode.Decompiler/CSharp/Syntax/DepthFirstAstVisitor.cs index 73a4862db..5d6b71a8b 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/DepthFirstAstVisitor.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/DepthFirstAstVisitor.cs @@ -61,21 +61,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax VisitChildren(comment); } - public virtual void VisitNewLine(NewLineNode newLineNode) - { - VisitChildren(newLineNode); - } - - public virtual void VisitWhitespace(WhitespaceNode whitespaceNode) - { - VisitChildren(whitespaceNode); - } - - public virtual void VisitText(TextNode textNode) - { - VisitChildren(textNode); - } - public virtual void VisitDocumentationReference (DocumentationReference documentationReference) { VisitChildren (documentationReference); @@ -718,21 +703,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax return VisitChildren (comment); } - public virtual T VisitNewLine(NewLineNode newLineNode) - { - return VisitChildren(newLineNode); - } - - public virtual T VisitWhitespace(WhitespaceNode whitespaceNode) - { - return VisitChildren(whitespaceNode); - } - - public virtual T VisitText(TextNode textNode) - { - return VisitChildren(textNode); - } - public virtual T VisitDocumentationReference (DocumentationReference documentationReference) { return VisitChildren (documentationReference); @@ -1375,21 +1345,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax return VisitChildren (comment, data); } - public virtual S VisitNewLine(NewLineNode newLineNode, T data) - { - return VisitChildren(newLineNode, data); - } - - public virtual S VisitWhitespace(WhitespaceNode whitespaceNode, T data) - { - return VisitChildren(whitespaceNode, data); - } - - public virtual S VisitText(TextNode textNode, T data) - { - return VisitChildren(textNode, data); - } - public virtual S VisitDocumentationReference (DocumentationReference documentationReference, T data) { return VisitChildren (documentationReference, data); diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/ErrorNode.cs b/ICSharpCode.Decompiler/CSharp/Syntax/ErrorNode.cs deleted file mode 100644 index 0af49997b..000000000 --- a/ICSharpCode.Decompiler/CSharp/Syntax/ErrorNode.cs +++ /dev/null @@ -1,89 +0,0 @@ -// -// ErrorNode.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2011 Xamarin (http://www.xamarin.com); -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -using ICSharpCode.Decompiler.CSharp.OutputVisitor; - -namespace ICSharpCode.Decompiler.CSharp.Syntax -{ - /// - /// Represents a parsing error in the ast. At the moment it only represents missing closing bracket. - /// This closing bracket is replaced by a node at the highest possible position. - /// (To make GetAstNodeAt (line, col) working). - /// - public class ErrorNode : AstNode - { - static TextLocation maxLoc = new TextLocation (int.MaxValue, int.MaxValue); - - public override NodeType NodeType { - get { - return NodeType.Unknown; - } - } - - public override TextLocation StartLocation { - get { - return maxLoc; - } - } - - public override TextLocation EndLocation { - get { - return maxLoc; - } - } - - public ErrorNode () - { - } - - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitErrorNode(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitErrorNode(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitErrorNode(this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - var o = other as ErrorNode; - return o != null; - } - - public override string ToString(CSharpFormattingOptions formattingOptions) - { - return "[ErrorNode]"; - } - } -} - diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NewLineNode.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NewLineNode.cs deleted file mode 100644 index 55c4e7966..000000000 --- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NewLineNode.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using ICSharpCode.Decompiler.CSharp.OutputVisitor; -using ICSharpCode.Decompiler.Util; - -namespace ICSharpCode.Decompiler.CSharp.Syntax -{ - - /// - /// A New line node represents a line break in the text. - /// - public sealed class NewLineNode : AstNode - { - public override NodeType NodeType { - get { - return NodeType.Whitespace; - } - } - - const uint newLineMask = 0xfu << AstNodeFlagsUsedBits; - static readonly UnicodeNewline[] newLineTypes = { - UnicodeNewline.Unknown, - UnicodeNewline.LF, - UnicodeNewline.CRLF, - UnicodeNewline.CR, - UnicodeNewline.NEL, - UnicodeNewline.VT, - UnicodeNewline.FF, - UnicodeNewline.LS, - UnicodeNewline.PS - }; - - public UnicodeNewline NewLineType { - get { - return newLineTypes[(flags & newLineMask) >> AstNodeFlagsUsedBits]; - } - set { - ThrowIfFrozen(); - int pos = Array.IndexOf(newLineTypes, value); - if (pos < 0) - pos = 0; - flags &= ~newLineMask; // clear old newline type - flags |= (uint)pos << AstNodeFlagsUsedBits; - } - } - - TextLocation startLocation; - public override TextLocation StartLocation { - get { - return startLocation; - } - } - - public override TextLocation EndLocation { - get { - return new TextLocation (startLocation.Line + 1, 1); - } - } - - public NewLineNode() : this (TextLocation.Empty) - { - } - - public NewLineNode(TextLocation startLocation) - { - this.startLocation = startLocation; - } - - public sealed override string ToString(CSharpFormattingOptions formattingOptions) - { - return NewLine.GetString (NewLineType); - } - - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitNewLine (this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitNewLine (this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitNewLine (this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - return other is NewLineNode; - } - } -} - diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TextNode.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TextNode.cs deleted file mode 100644 index 191d15c45..000000000 --- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TextNode.cs +++ /dev/null @@ -1,94 +0,0 @@ -// -// TextNode.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2012 Xamarin Inc. (http://xamarin.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - - -namespace ICSharpCode.Decompiler.CSharp.Syntax -{ - /// - /// A text node contains text without syntactic or semantic information. - /// (non parseable part of a text) - /// - public class TextNode : AstNode - { - public override NodeType NodeType { - get { - return NodeType.Whitespace; - } - } - - public string Text { - get; - set; - } - - TextLocation startLocation; - public override TextLocation StartLocation { - get { - return startLocation; - } - } - - TextLocation endLocation; - public override TextLocation EndLocation { - get { - return endLocation; - } - } - - public TextNode(string text) : this (text, TextLocation.Empty, TextLocation.Empty) - { - } - - public TextNode(string text, TextLocation startLocation, TextLocation endLocation) - { - this.Text = text; - this.startLocation = startLocation; - this.endLocation = endLocation; - } - - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitText (this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitText (this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitText (this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - var o = other as TextNode; - return o != null && o.Text == Text; - } - } -} - diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/WhitespaceNode.cs b/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/WhitespaceNode.cs deleted file mode 100644 index 937ad7e60..000000000 --- a/ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/WhitespaceNode.cs +++ /dev/null @@ -1,91 +0,0 @@ -// -// WhitespaceNode.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2012 Xamarin Inc. (http://xamarin.com) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - - -namespace ICSharpCode.Decompiler.CSharp.Syntax -{ - /// - /// A Whitespace node contains only whitespaces. - /// - public class WhitespaceNode : AstNode - { - public override NodeType NodeType { - get { - return NodeType.Whitespace; - } - } - - public string WhiteSpaceText { - get; - set; - } - - TextLocation startLocation; - public override TextLocation StartLocation { - get { - return startLocation; - } - } - - public override TextLocation EndLocation { - get { - return new TextLocation (startLocation.Line, startLocation.Column + WhiteSpaceText.Length); - } - } - - public WhitespaceNode(string whiteSpaceText) : this (whiteSpaceText, TextLocation.Empty) - { - } - - public WhitespaceNode(string whiteSpaceText, TextLocation startLocation) - { - this.WhiteSpaceText = whiteSpaceText; - this.startLocation = startLocation; - } - - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitWhitespace (this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitWhitespace (this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitWhitespace (this, data); - } - - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) - { - var o = other as WhitespaceNode; - return o != null && o.WhiteSpaceText == WhiteSpaceText; - } - } -} - diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs b/ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs index f9c2976ad..90d8371ca 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs @@ -143,9 +143,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax void VisitPrimitiveType(PrimitiveType primitiveType); void VisitComment(Comment comment); - void VisitNewLine(NewLineNode newLineNode); - void VisitWhitespace(WhitespaceNode whitespaceNode); - void VisitText(TextNode textNode); void VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective); void VisitDocumentationReference(DocumentationReference documentationReference); @@ -286,9 +283,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax S VisitPrimitiveType(PrimitiveType primitiveType); S VisitComment(Comment comment); - S VisitWhitespace(WhitespaceNode whitespaceNode); - S VisitText(TextNode textNode); - S VisitNewLine(NewLineNode newLineNode); S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective); S VisitDocumentationReference(DocumentationReference documentationReference); @@ -429,9 +423,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax S VisitPrimitiveType(PrimitiveType primitiveType, T data); S VisitComment(Comment comment, T data); - S VisitNewLine(NewLineNode newLineNode, T data); - S VisitWhitespace(WhitespaceNode whitespaceNode, T data); - S VisitText(TextNode textNode, T data); S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective, T data); S VisitDocumentationReference(DocumentationReference documentationReference, T data); diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Roles.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Roles.cs index 32d29d71c..872f977aa 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Roles.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Roles.cs @@ -68,11 +68,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax public static readonly TokenRole DoubleColon = new TokenRole ("::"); public static readonly TokenRole Arrow = new TokenRole("=>"); public static readonly Role Comment = new Role ("Comment"); - public static readonly Role NewLine = new Role ("NewLine"); - public static readonly Role Whitespace = new Role ("Whitespace"); - public static readonly Role Text = new Role ("Text"); public static readonly Role PreProcessorDirective = new Role ("PreProcessorDirective"); - public static readonly Role Error = new Role ("Error"); public readonly static Role BaseType = new Role ("BaseType", AstType.Null); diff --git a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj index e3af17f9b..6accb2116 100644 --- a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj +++ b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj @@ -89,7 +89,6 @@ - @@ -138,14 +137,11 @@ - - -