Browse Source

#2049: Delete old NRefactory node types that were never supported for output.

pull/2055/head
Daniel Grunwald 5 years ago
parent
commit
94a8190861
  1. 19
      ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs
  2. 45
      ICSharpCode.Decompiler/CSharp/Syntax/DepthFirstAstVisitor.cs
  3. 89
      ICSharpCode.Decompiler/CSharp/Syntax/ErrorNode.cs
  4. 94
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NewLineNode.cs
  5. 94
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TextNode.cs
  6. 91
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/WhitespaceNode.cs
  7. 9
      ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs
  8. 4
      ICSharpCode.Decompiler/CSharp/Syntax/Roles.cs
  9. 4
      ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj

19
ICSharpCode.Decompiler/CSharp/OutputVisitor/CSharpOutputVisitor.cs

@ -2274,8 +2274,6 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor @@ -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 @@ -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);

45
ICSharpCode.Decompiler/CSharp/Syntax/DepthFirstAstVisitor.cs

@ -61,21 +61,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -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 @@ -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 @@ -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);

89
ICSharpCode.Decompiler/CSharp/Syntax/ErrorNode.cs

@ -1,89 +0,0 @@ @@ -1,89 +0,0 @@
//
// ErrorNode.cs
//
// Author:
// Mike Krüger <mkrueger@novell.com>
//
// 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
{
/// <summary>
/// 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).
/// </summary>
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<T>(IAstVisitor<T> visitor)
{
return visitor.VisitErrorNode(this);
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> 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]";
}
}
}

94
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NewLineNode.cs

@ -1,94 +0,0 @@ @@ -1,94 +0,0 @@
using System;
using ICSharpCode.Decompiler.CSharp.OutputVisitor;
using ICSharpCode.Decompiler.Util;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
/// <summary>
/// A New line node represents a line break in the text.
/// </summary>
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<T>(IAstVisitor<T> visitor)
{
return visitor.VisitNewLine (this);
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{
return visitor.VisitNewLine (this, data);
}
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match)
{
return other is NewLineNode;
}
}
}

94
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TextNode.cs

@ -1,94 +0,0 @@ @@ -1,94 +0,0 @@
//
// TextNode.cs
//
// Author:
// Mike Krüger <mkrueger@xamarin.com>
//
// 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
{
/// <summary>
/// A text node contains text without syntactic or semantic information.
/// (non parseable part of a text)
/// </summary>
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<T>(IAstVisitor<T> visitor)
{
return visitor.VisitText (this);
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> 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;
}
}
}

91
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/WhitespaceNode.cs

@ -1,91 +0,0 @@ @@ -1,91 +0,0 @@
//
// WhitespaceNode.cs
//
// Author:
// Mike Krüger <mkrueger@xamarin.com>
//
// 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
{
/// <summary>
/// A Whitespace node contains only whitespaces.
/// </summary>
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<T>(IAstVisitor<T> visitor)
{
return visitor.VisitWhitespace (this);
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> 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;
}
}
}

9
ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs

@ -143,9 +143,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -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 @@ -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 @@ -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);

4
ICSharpCode.Decompiler/CSharp/Syntax/Roles.cs

@ -68,11 +68,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -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> Comment = new Role<Comment> ("Comment");
public static readonly Role<NewLineNode> NewLine = new Role<NewLineNode> ("NewLine");
public static readonly Role<WhitespaceNode> Whitespace = new Role<WhitespaceNode> ("Whitespace");
public static readonly Role<TextNode> Text = new Role<TextNode> ("Text");
public static readonly Role<PreProcessorDirective> PreProcessorDirective = new Role<PreProcessorDirective> ("PreProcessorDirective");
public static readonly Role<ErrorNode> Error = new Role<ErrorNode> ("Error");
public readonly static Role<AstType> BaseType = new Role<AstType> ("BaseType", AstType.Null);

4
ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj

@ -89,7 +89,6 @@ @@ -89,7 +89,6 @@
<Compile Include="CSharp\Syntax\CSharpUtil.cs" />
<Compile Include="CSharp\Syntax\DepthFirstAstVisitor.cs" />
<Compile Include="CSharp\Syntax\DocumentationReference.cs" />
<Compile Include="CSharp\Syntax\ErrorNode.cs" />
<Compile Include="CSharp\Syntax\Expressions\AnonymousMethodExpression.cs" />
<Compile Include="CSharp\Syntax\Expressions\AnonymousTypeCreateExpression.cs" />
<Compile Include="CSharp\Syntax\Expressions\ArrayCreateExpression.cs" />
@ -138,14 +137,11 @@ @@ -138,14 +137,11 @@
<Compile Include="CSharp\Syntax\GeneralScope\DelegateDeclaration.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\ExternAliasDeclaration.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\NamespaceDeclaration.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\NewLineNode.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\PreProcessorDirective.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\TextNode.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\TypeDeclaration.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\TypeParameterDeclaration.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\UsingAliasDeclaration.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\UsingDeclaration.cs" />
<Compile Include="CSharp\Syntax\GeneralScope\WhitespaceNode.cs" />
<Compile Include="CSharp\Syntax\IAstVisitor.cs" />
<Compile Include="CSharp\Syntax\Identifier.cs" />
<Compile Include="CSharp\Syntax\IdentifierExpressionBackreference.cs" />

Loading…
Cancel
Save