Browse Source

Add DecompilerAstNode attributes

ast-source-generator
Siegfried Pammer 2 months ago
parent
commit
56edf27334
  1. 3
      ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs
  2. 3
      ICSharpCode.Decompiler/CSharp/Syntax/AstType.cs
  3. 3
      ICSharpCode.Decompiler/CSharp/Syntax/CSharpModifierToken.cs
  4. 3
      ICSharpCode.Decompiler/CSharp/Syntax/CSharpTokenNode.cs
  5. 6
      ICSharpCode.Decompiler/CSharp/Syntax/ComposedType.cs
  6. 3
      ICSharpCode.Decompiler/CSharp/Syntax/DocumentationReference.cs
  7. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs
  8. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs
  9. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs
  10. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs
  11. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs
  12. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs
  13. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs
  14. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs
  15. 5
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CastExpression.cs
  16. 4
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CheckedExpression.cs
  17. 5
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ConditionalExpression.cs
  18. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DeclarationExpression.cs
  19. 30
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DecompilerAstNodeAttribute.cs
  20. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DefaultValueExpression.cs
  21. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DirectionExpression.cs
  22. 5
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ErrorExpression.cs
  23. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/Expression.cs
  24. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IdentifierExpression.cs
  25. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IndexerExpression.cs
  26. 12
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InterpolatedStringExpression.cs
  27. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InvocationExpression.cs
  28. 5
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IsExpression.cs
  29. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/LambdaExpression.cs
  30. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/MemberReferenceExpression.cs
  31. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedArgumentExpression.cs
  32. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedExpression.cs
  33. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NullReferenceExpression.cs
  34. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ObjectCreateExpression.cs
  35. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/OutVarDeclarationExpression.cs
  36. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ParenthesizedExpression.cs
  37. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PointerReferenceExpression.cs
  38. 5
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs
  39. 30
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/QueryExpression.cs
  40. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/RecursivePatternExpression.cs
  41. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SizeOfExpression.cs
  42. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/StackAllocExpression.cs
  43. 6
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SwitchExpression.cs
  44. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThisReferenceExpression.cs
  45. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThrowExpression.cs
  46. 5
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TupleExpression.cs
  47. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeOfExpression.cs
  48. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeReferenceExpression.cs
  49. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UnaryOperatorExpression.cs
  50. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UncheckedExpression.cs
  51. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UndocumentedExpression.cs
  52. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Expressions/WithInitializerExpression.cs
  53. 3
      ICSharpCode.Decompiler/CSharp/Syntax/FunctionPointerAstType.cs
  54. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Attribute.cs
  55. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/AttributeSection.cs
  56. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Comment.cs
  57. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Constraint.cs
  58. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/DelegateDeclaration.cs
  59. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/ExternAliasDeclaration.cs
  60. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NamespaceDeclaration.cs
  61. 9
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/PreProcessorDirective.cs
  62. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeDeclaration.cs
  63. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeParameterDeclaration.cs
  64. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingAliasDeclaration.cs
  65. 3
      ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingDeclaration.cs
  66. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Identifier.cs
  67. 5
      ICSharpCode.Decompiler/CSharp/Syntax/InvocationAstType.cs
  68. 3
      ICSharpCode.Decompiler/CSharp/Syntax/MemberType.cs
  69. 3
      ICSharpCode.Decompiler/CSharp/Syntax/PrimitiveType.cs
  70. 3
      ICSharpCode.Decompiler/CSharp/Syntax/SimpleType.cs
  71. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/BlockStatement.cs
  72. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/BreakStatement.cs
  73. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/CheckedStatement.cs
  74. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/ContinueStatement.cs
  75. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/DoWhileStatement.cs
  76. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/EmptyStatement.cs
  77. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/ExpressionStatement.cs
  78. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/FixedStatement.cs
  79. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForStatement.cs
  80. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForeachStatement.cs
  81. 9
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/GotoStatement.cs
  82. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/IfElseStatement.cs
  83. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/LabelStatement.cs
  84. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/LocalFunctionDeclarationStatement.cs
  85. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/LockStatement.cs
  86. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/ReturnStatement.cs
  87. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/Statement.cs
  88. 9
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/SwitchStatement.cs
  89. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/ThrowStatement.cs
  90. 6
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/TryCatchStatement.cs
  91. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/UncheckedStatement.cs
  92. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/UnsafeStatement.cs
  93. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/UsingStatement.cs
  94. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/VariableDeclarationStatement.cs
  95. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/WhileStatement.cs
  96. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldBreakStatement.cs
  97. 3
      ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldReturnStatement.cs
  98. 4
      ICSharpCode.Decompiler/CSharp/Syntax/SyntaxTree.cs
  99. 7
      ICSharpCode.Decompiler/CSharp/Syntax/TupleAstType.cs
  100. 3
      ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs
  101. Some files were not shown because too many files have changed in this diff Show More

3
ICSharpCode.Decompiler/CSharp/Syntax/AstNode.cs

@ -37,7 +37,8 @@ using ICSharpCode.Decompiler.TypeSystem; @@ -37,7 +37,8 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public abstract class AstNode : AbstractAnnotatable, IFreezable, INode, ICloneable
[DecompilerAstNode(true)]
public abstract partial class AstNode : AbstractAnnotatable, IFreezable, INode, ICloneable
{
// the Root role must be available when creating the null nodes, so we can't put it in the Roles class
internal static readonly Role<AstNode?> RootRole = new Role<AstNode?>("Root", null);

3
ICSharpCode.Decompiler/CSharp/Syntax/AstType.cs

@ -28,7 +28,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -28,7 +28,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// A type reference in the C# AST.
/// </summary>
public abstract class AstType : AstNode
[DecompilerAstNode(true)]
public abstract partial class AstType : AstNode
{
#region Null
public new static readonly AstType Null = new NullAstType();

3
ICSharpCode.Decompiler/CSharp/Syntax/CSharpModifierToken.cs

@ -31,7 +31,8 @@ using ICSharpCode.Decompiler.CSharp.OutputVisitor; @@ -31,7 +31,8 @@ using ICSharpCode.Decompiler.CSharp.OutputVisitor;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class CSharpModifierToken : CSharpTokenNode
[DecompilerAstNode(false)]
public partial class CSharpModifierToken : CSharpTokenNode
{
Modifiers modifier;

3
ICSharpCode.Decompiler/CSharp/Syntax/CSharpTokenNode.cs

@ -34,7 +34,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -34,7 +34,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <remarks>
/// In all non null c# token nodes the Role of a CSharpToken must be a TokenRole.
/// </remarks>
public class CSharpTokenNode : AstNode
[DecompilerAstNode(true)]
public partial class CSharpTokenNode : AstNode
{
public static new readonly CSharpTokenNode Null = new NullCSharpTokenNode();
class NullCSharpTokenNode : CSharpTokenNode

6
ICSharpCode.Decompiler/CSharp/Syntax/ComposedType.cs

@ -34,7 +34,8 @@ using ICSharpCode.Decompiler.TypeSystem; @@ -34,7 +34,8 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class ComposedType : AstType
[DecompilerAstNode(false)]
public partial class ComposedType : AstType
{
public static readonly Role<AttributeSection> AttributeRole = EntityDeclaration.AttributeRole;
public static readonly TokenRole RefRole = new TokenRole("ref");
@ -230,7 +231,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -230,7 +231,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// [,,,]
/// </summary>
public class ArraySpecifier : AstNode
[DecompilerAstNode(false)]
public partial class ArraySpecifier : AstNode
{
public override NodeType NodeType {
get {

3
ICSharpCode.Decompiler/CSharp/Syntax/DocumentationReference.cs

@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Represents a 'cref' reference in XML documentation.
/// </summary>
public class DocumentationReference : AstNode
[DecompilerAstNode(false)]
public partial class DocumentationReference : AstNode
{
public static readonly Role<AstType> DeclaringTypeRole = new Role<AstType>("DeclaringType", AstType.Null);
public static readonly Role<AstType> ConversionOperatorReturnTypeRole = new Role<AstType>("ConversionOperatorReturnType", AstType.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// [async] delegate(Parameters) {Body}
/// </summary>
public class AnonymousMethodExpression : Expression
[DecompilerAstNode(false)]
public partial class AnonymousMethodExpression : Expression
{
public readonly static TokenRole DelegateKeywordRole = new TokenRole("delegate");
public readonly static TokenRole AsyncModifierRole = LambdaExpression.AsyncModifierRole;

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// new { [ExpressionList] }
/// </summary>
public class AnonymousTypeCreateExpression : Expression
[DecompilerAstNode(false)]
public partial class AnonymousTypeCreateExpression : Expression
{
public readonly static TokenRole NewKeywordRole = new TokenRole("new");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs

@ -22,7 +22,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -22,7 +22,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// new Type[Dimensions]
/// </summary>
public class ArrayCreateExpression : Expression
[DecompilerAstNode(false)]
public partial class ArrayCreateExpression : Expression
{
public readonly static TokenRole NewKeywordRole = new TokenRole("new");
public readonly static Role<ArraySpecifier> AdditionalArraySpecifierRole = new Role<ArraySpecifier>("AdditionalArraySpecifier", null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// { Elements }
/// </summary>
public class ArrayInitializerExpression : Expression
[DecompilerAstNode(true)]
public partial class ArrayInitializerExpression : Expression
{
/// <summary>
/// For ease of use purposes in the resolver the ast representation

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Expression as TypeReference
/// </summary>
public class AsExpression : Expression
[DecompilerAstNode(false)]
public partial class AsExpression : Expression
{
public readonly static TokenRole AsKeywordRole = new TokenRole("as");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs

@ -33,7 +33,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -33,7 +33,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Left Operator= Right
/// </summary>
public class AssignmentExpression : Expression
[DecompilerAstNode(false)]
public partial class AssignmentExpression : Expression
{
// reuse roles from BinaryOperatorExpression
public readonly static Role<Expression> LeftRole = BinaryOperatorExpression.LeftRole;

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// base
/// </summary>
public class BaseReferenceExpression : Expression
[DecompilerAstNode(false)]
public partial class BaseReferenceExpression : Expression
{
public TextLocation Location {
get;

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Left Operator Right
/// </summary>
public class BinaryOperatorExpression : Expression
[DecompilerAstNode(false)]
public partial class BinaryOperatorExpression : Expression
{
public readonly static TokenRole BitwiseAndRole = new TokenRole("&");
public readonly static TokenRole BitwiseOrRole = new TokenRole("|");

5
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CastExpression.cs

@ -23,14 +23,13 @@ @@ -23,14 +23,13 @@
// 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 System.Collections.Generic;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
/// <summary>
/// (CastTo)Expression
/// </summary>
public class CastExpression : Expression
[DecompilerAstNode(false)]
public partial class CastExpression : Expression
{
public CSharpTokenNode LParToken {
get { return GetChildByRole(Roles.LPar); }

4
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/CheckedExpression.cs

@ -24,13 +24,13 @@ @@ -24,13 +24,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
/// <summary>
/// checked(Expression)
/// </summary>
public class CheckedExpression : Expression
[DecompilerAstNode(false)]
public partial class CheckedExpression : Expression
{
public readonly static TokenRole CheckedKeywordRole = new TokenRole("checked");

5
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ConditionalExpression.cs

@ -23,14 +23,13 @@ @@ -23,14 +23,13 @@
// 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 System.Collections.Generic;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
/// <summary>
/// Condition ? TrueExpression : FalseExpression
/// </summary>
public class ConditionalExpression : Expression
[DecompilerAstNode(false)]
public partial class ConditionalExpression : Expression
{
public readonly static Role<Expression> ConditionRole = Roles.Condition;
public readonly static TokenRole QuestionMarkRole = new TokenRole("?");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DeclarationExpression.cs

@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// TypeName VariableDesignation
/// </summary>
public class DeclarationExpression : Expression
[DecompilerAstNode(false)]
public partial class DeclarationExpression : Expression
{
public AstType Type {
get { return GetChildByRole(Roles.Type); }

30
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DecompilerAstNodeAttribute.cs

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
// Copyright (c) 2017 Siegfried Pammer
//
// 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
{
class DecompilerAstNodeAttribute : System.Attribute
{
}
}

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DefaultValueExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// default(Type)
/// </summary>
public class DefaultValueExpression : Expression
[DecompilerAstNode(false)]
public partial class DefaultValueExpression : Expression
{
public readonly static TokenRole DefaultKeywordRole = new TokenRole("default");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/DirectionExpression.cs

@ -38,7 +38,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -38,7 +38,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// ref Expression
/// </summary>
public class DirectionExpression : Expression
[DecompilerAstNode(false)]
public partial class DirectionExpression : Expression
{
public readonly static TokenRole RefKeywordRole = new TokenRole("ref");
public readonly static TokenRole OutKeywordRole = new TokenRole("out");

5
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ErrorExpression.cs

@ -23,11 +23,10 @@ @@ -23,11 +23,10 @@
// 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 System;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class ErrorExpression : Expression
[DecompilerAstNode(false)]
public partial class ErrorExpression : Expression
{
public TextLocation Location { get; set; }

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/Expression.cs

@ -28,7 +28,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -28,7 +28,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// This class is useful even though it doesn't provide any additional functionality:
/// It can be used to communicate more information in APIs, e.g. "this subnode will always be an expression"
/// </remarks>
public abstract class Expression : AstNode
[DecompilerAstNode(true)]
public abstract partial class Expression : AstNode
{
#region Null
public new static readonly Expression Null = new NullExpression();

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IdentifierExpression.cs

@ -26,7 +26,8 @@ @@ -26,7 +26,8 @@
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class IdentifierExpression : Expression
[DecompilerAstNode(false)]
public partial class IdentifierExpression : Expression
{
public IdentifierExpression()
{

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IndexerExpression.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Target[Arguments]
/// </summary>
public class IndexerExpression : Expression
[DecompilerAstNode(false)]
public partial class IndexerExpression : Expression
{
public Expression Target {
get { return GetChildByRole(Roles.TargetExpression); }

12
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InterpolatedStringExpression.cs

@ -6,7 +6,8 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching; @@ -6,7 +6,8 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class InterpolatedStringExpression : Expression
[DecompilerAstNode(false)]
public partial class InterpolatedStringExpression : Expression
{
public static readonly TokenRole OpenQuote = new TokenRole("$\"");
public static readonly TokenRole CloseQuote = new TokenRole("\"");
@ -47,7 +48,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -47,7 +48,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public abstract class InterpolatedStringContent : AstNode
[DecompilerAstNode(true)]
public abstract partial class InterpolatedStringContent : AstNode
{
#region Null
public new static readonly InterpolatedStringContent Null = new NullInterpolatedStringContent();
@ -90,7 +92,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -90,7 +92,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// { Expression , Alignment : Suffix }
/// </summary>
public class Interpolation : InterpolatedStringContent
[DecompilerAstNode(false)]
public partial class Interpolation : InterpolatedStringContent
{
public static readonly TokenRole LBrace = new TokenRole("{");
public static readonly TokenRole RBrace = new TokenRole("}");
@ -146,7 +149,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -146,7 +149,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class InterpolatedStringText : InterpolatedStringContent
[DecompilerAstNode(false)]
public partial class InterpolatedStringText : InterpolatedStringContent
{
public string Text { get; set; }

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/InvocationExpression.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Target(Arguments)
/// </summary>
public class InvocationExpression : Expression
[DecompilerAstNode(false)]
public partial class InvocationExpression : Expression
{
public Expression Target {
get { return GetChildByRole(Roles.TargetExpression); }

5
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/IsExpression.cs

@ -23,14 +23,13 @@ @@ -23,14 +23,13 @@
// 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 System.Collections.Generic;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
/// <summary>
/// Expression is Type
/// </summary>
public class IsExpression : Expression
[DecompilerAstNode(false)]
public partial class IsExpression : Expression
{
public readonly static TokenRole IsKeywordRole = new TokenRole("is");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/LambdaExpression.cs

@ -29,7 +29,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -29,7 +29,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// [async] Parameters => Body
/// </summary>
public class LambdaExpression : Expression
[DecompilerAstNode(false)]
public partial class LambdaExpression : Expression
{
public static readonly Role<AttributeSection> AttributeRole = new Role<AttributeSection>("Attribute", null);
public readonly static TokenRole AsyncModifierRole = new TokenRole("async");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/MemberReferenceExpression.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Target.MemberName
/// </summary>
public class MemberReferenceExpression : Expression
[DecompilerAstNode(false)]
public partial class MemberReferenceExpression : Expression
{
public Expression Target {
get {

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedArgumentExpression.cs

@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// Represents a named argument passed to a method or attribute.
/// name: expression
/// </summary>
public class NamedArgumentExpression : Expression
[DecompilerAstNode(false)]
public partial class NamedArgumentExpression : Expression
{
public NamedArgumentExpression()
{

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NamedExpression.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// This isn't the same as 'assign' even though it has the same syntax.
/// This expression is used in object initializers and for named attribute arguments [Attr(FieldName = value)].
/// </summary>
public class NamedExpression : Expression
[DecompilerAstNode(false)]
public partial class NamedExpression : Expression
{
public NamedExpression()
{

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/NullReferenceExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// null
/// </summary>
public class NullReferenceExpression : Expression
[DecompilerAstNode(false)]
public partial class NullReferenceExpression : Expression
{
TextLocation location;
public override TextLocation StartLocation {

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ObjectCreateExpression.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// new Type(Arguments) { Initializer }
/// </summary>
public class ObjectCreateExpression : Expression
[DecompilerAstNode(false)]
public partial class ObjectCreateExpression : Expression
{
public readonly static TokenRole NewKeywordRole = new TokenRole("new");
public readonly static Role<ArrayInitializerExpression> InitializerRole = ArrayCreateExpression.InitializerRole;

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/OutVarDeclarationExpression.cs

@ -21,7 +21,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -21,7 +21,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// out type expression
/// </summary>
public class OutVarDeclarationExpression : Expression
[DecompilerAstNode(false)]
public partial class OutVarDeclarationExpression : Expression
{
public readonly static TokenRole OutKeywordRole = DirectionExpression.OutKeywordRole;

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ParenthesizedExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// ( Expression )
/// </summary>
public class ParenthesizedExpression : Expression
[DecompilerAstNode(false)]
public partial class ParenthesizedExpression : Expression
{
public CSharpTokenNode LParToken {
get { return GetChildByRole(Roles.LPar); }

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PointerReferenceExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Target->MemberName
/// </summary>
public class PointerReferenceExpression : Expression
[DecompilerAstNode(false)]
public partial class PointerReferenceExpression : Expression
{
public readonly static TokenRole ArrowRole = new TokenRole("->");

5
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/PrimitiveExpression.cs

@ -24,8 +24,6 @@ @@ -24,8 +24,6 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
using ICSharpCode.Decompiler.Util;
namespace ICSharpCode.Decompiler.CSharp.Syntax
@ -48,7 +46,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -48,7 +46,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Represents a literal value.
/// </summary>
public class PrimitiveExpression : Expression
[DecompilerAstNode(false)]
public partial class PrimitiveExpression : Expression
{
public static readonly object AnyValue = new object();

30
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/QueryExpression.cs

@ -18,7 +18,8 @@ @@ -18,7 +18,8 @@
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class QueryExpression : Expression
[DecompilerAstNode(true)]
public partial class QueryExpression : Expression
{
public static readonly Role<QueryClause> ClauseRole = new Role<QueryClause>("Clause", null);
@ -106,7 +107,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -106,7 +107,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// new QuerySelectClause(e)
/// }
/// </summary>
public class QueryContinuationClause : QueryClause
[DecompilerAstNode(false)]
public partial class QueryContinuationClause : QueryClause
{
public static readonly Role<QueryExpression> PrecedingQueryRole = new Role<QueryExpression>("PrecedingQuery", QueryExpression.Null);
public static readonly TokenRole IntoKeywordRole = new TokenRole("into");
@ -155,7 +157,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -155,7 +157,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class QueryFromClause : QueryClause
[DecompilerAstNode(false)]
public partial class QueryFromClause : QueryClause
{
public static readonly TokenRole FromKeywordRole = new TokenRole("from");
public static readonly TokenRole InKeywordRole = new TokenRole("in");
@ -214,7 +217,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -214,7 +217,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class QueryLetClause : QueryClause
[DecompilerAstNode(false)]
public partial class QueryLetClause : QueryClause
{
public readonly static TokenRole LetKeywordRole = new TokenRole("let");
@ -267,7 +271,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -267,7 +271,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
public class QueryWhereClause : QueryClause
[DecompilerAstNode(false)]
public partial class QueryWhereClause : QueryClause
{
public readonly static TokenRole WhereKeywordRole = new TokenRole("where");
@ -305,7 +310,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -305,7 +310,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Represents a join or group join clause.
/// </summary>
public class QueryJoinClause : QueryClause
[DecompilerAstNode(false)]
public partial class QueryJoinClause : QueryClause
{
public static readonly TokenRole JoinKeywordRole = new TokenRole("join");
public static readonly Role<AstType> TypeRole = Roles.Type;
@ -415,7 +421,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -415,7 +421,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class QueryOrderClause : QueryClause
[DecompilerAstNode(false)]
public partial class QueryOrderClause : QueryClause
{
public static readonly TokenRole OrderbyKeywordRole = new TokenRole("orderby");
public static readonly Role<QueryOrdering> OrderingRole = new Role<QueryOrdering>("Ordering", null);
@ -450,7 +457,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -450,7 +457,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class QueryOrdering : AstNode
[DecompilerAstNode(false)]
public partial class QueryOrdering : AstNode
{
public readonly static TokenRole AscendingKeywordRole = new TokenRole("ascending");
public readonly static TokenRole DescendingKeywordRole = new TokenRole("descending");
@ -502,7 +510,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -502,7 +510,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
Descending
}
public class QuerySelectClause : QueryClause
[DecompilerAstNode(false)]
public partial class QuerySelectClause : QueryClause
{
public readonly static TokenRole SelectKeywordRole = new TokenRole("select");
@ -537,7 +546,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -537,7 +546,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class QueryGroupClause : QueryClause
[DecompilerAstNode(false)]
public partial class QueryGroupClause : QueryClause
{
public static readonly TokenRole GroupKeywordRole = new TokenRole("group");
public static readonly Role<Expression> ProjectionRole = new Role<Expression>("Projection", Expression.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/RecursivePatternExpression.cs

@ -20,7 +20,8 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching; @@ -20,7 +20,8 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class RecursivePatternExpression : Expression
[DecompilerAstNode(false)]
public partial class RecursivePatternExpression : Expression
{
public static readonly Role<Expression> SubPatternRole = new Role<Expression>("SubPattern", Syntax.Expression.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SizeOfExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// sizeof(Type)
/// </summary>
public class SizeOfExpression : Expression
[DecompilerAstNode(false)]
public partial class SizeOfExpression : Expression
{
public readonly static TokenRole SizeofKeywordRole = new TokenRole("sizeof");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/StackAllocExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// stackalloc Type[Count]
/// </summary>
public class StackAllocExpression : Expression
[DecompilerAstNode(false)]
public partial class StackAllocExpression : Expression
{
public readonly static TokenRole StackallocKeywordRole = new TokenRole("stackalloc");
public readonly static Role<ArrayInitializerExpression> InitializerRole = new Role<ArrayInitializerExpression>("Initializer", ArrayInitializerExpression.Null);

6
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/SwitchExpression.cs

@ -22,7 +22,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -22,7 +22,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Expression switch { SwitchSections }
/// </summary>
public class SwitchExpression : Expression
[DecompilerAstNode(false)]
public partial class SwitchExpression : Expression
{
public static readonly TokenRole SwitchKeywordRole = new TokenRole("switch");
public static readonly Role<SwitchExpressionSection> SwitchSectionRole = new Role<SwitchExpressionSection>("SwitchSection", null);
@ -73,7 +74,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -73,7 +74,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Pattern => Expression
/// </summary>
public class SwitchExpressionSection : AstNode
[DecompilerAstNode(false)]
public partial class SwitchExpressionSection : AstNode
{
public static readonly Role<Expression> PatternRole = new Role<Expression>("Pattern", Expression.Null);
public static readonly Role<Expression> BodyRole = new Role<Expression>("Body", Expression.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThisReferenceExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// this
/// </summary>
public class ThisReferenceExpression : Expression
[DecompilerAstNode(false)]
public partial class ThisReferenceExpression : Expression
{
public TextLocation Location {
get;

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ThrowExpression.cs

@ -21,7 +21,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -21,7 +21,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// throw Expression
/// </summary>
public class ThrowExpression : Expression
[DecompilerAstNode(false)]
public partial class ThrowExpression : Expression
{
public static readonly TokenRole ThrowKeywordRole = ThrowStatement.ThrowKeywordRole;

5
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TupleExpression.cs

@ -16,13 +16,12 @@ @@ -16,13 +16,12 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class TupleExpression : Expression
[DecompilerAstNode(false)]
public partial class TupleExpression : Expression
{
public AstNodeCollection<Expression> Elements {
get { return GetChildrenByRole(Roles.Expression); }

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeOfExpression.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// typeof(Type)
/// </summary>
public class TypeOfExpression : Expression
[DecompilerAstNode(false)]
public partial class TypeOfExpression : Expression
{
public readonly static TokenRole TypeofKeywordRole = new TokenRole("typeof");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/TypeReferenceExpression.cs

@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// Represents an AstType as an expression.
/// This is used when calling a method on a primitive type: "int.Parse()"
/// </summary>
public class TypeReferenceExpression : Expression
[DecompilerAstNode(false)]
public partial class TypeReferenceExpression : Expression
{
public AstType Type {
get { return GetChildByRole(Roles.Type); }

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UnaryOperatorExpression.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Operator Expression
/// </summary>
public class UnaryOperatorExpression : Expression
[DecompilerAstNode(false)]
public partial class UnaryOperatorExpression : Expression
{
public readonly static TokenRole NotRole = new TokenRole("!");
public readonly static TokenRole BitNotRole = new TokenRole("~");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UncheckedExpression.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// unchecked(Expression)
/// </summary>
public class UncheckedExpression : Expression
[DecompilerAstNode(false)]
public partial class UncheckedExpression : Expression
{
public readonly static TokenRole UncheckedKeywordRole = new TokenRole("unchecked");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/UndocumentedExpression.cs

@ -39,7 +39,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -39,7 +39,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Represents undocumented expressions.
/// </summary>
public class UndocumentedExpression : Expression
[DecompilerAstNode(false)]
public partial class UndocumentedExpression : Expression
{
public readonly static TokenRole ArglistKeywordRole = new TokenRole("__arglist");
public readonly static TokenRole RefvalueKeywordRole = new TokenRole("__refvalue");

3
ICSharpCode.Decompiler/CSharp/Syntax/Expressions/WithInitializerExpression.cs

@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -23,7 +23,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Expression with Initializer
/// </summary>
public class WithInitializerExpression : Expression
[DecompilerAstNode(false)]
public partial class WithInitializerExpression : Expression
{
public readonly static TokenRole WithKeywordRole = new TokenRole("with");
public readonly static Role<ArrayInitializerExpression> InitializerRole = ArrayCreateExpression.InitializerRole;

3
ICSharpCode.Decompiler/CSharp/Syntax/FunctionPointerAstType.cs

@ -31,7 +31,8 @@ using ICSharpCode.Decompiler.TypeSystem; @@ -31,7 +31,8 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class FunctionPointerAstType : AstType
[DecompilerAstNode(false)]
public partial class FunctionPointerAstType : AstType
{
public static readonly TokenRole PointerRole = new TokenRole("*");
public static readonly Role<AstType> CallingConventionRole = new Role<AstType>("CallConv", AstType.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Attribute.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Attribute(Arguments)
/// </summary>
public class Attribute : AstNode
[DecompilerAstNode(false)]
public partial class Attribute : AstNode
{
public override NodeType NodeType {
get {

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/AttributeSection.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// [AttributeTarget: Attributes]
/// </summary>
public class AttributeSection : AstNode
[DecompilerAstNode(false)]
public partial class AttributeSection : AstNode
{
#region PatternPlaceholder
public static implicit operator AttributeSection(PatternMatching.Pattern pattern)

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Comment.cs

@ -51,7 +51,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -51,7 +51,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
MultiLineDocumentation
}
public class Comment : AstNode
[DecompilerAstNode(false)]
public partial class Comment : AstNode
{
public override NodeType NodeType {
get {

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/Constraint.cs

@ -33,7 +33,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -33,7 +33,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <remarks>
/// new(), struct and class constraints are represented using a PrimitiveType "new", "struct" or "class"
/// </remarks>
public class Constraint : AstNode
[DecompilerAstNode(true)]
public partial class Constraint : AstNode
{
public override NodeType NodeType {
get { return NodeType.Unknown; }

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/DelegateDeclaration.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// delegate ReturnType Name&lt;TypeParameters&gt;(Parameters) where Constraints;
/// </summary>
public class DelegateDeclaration : EntityDeclaration
[DecompilerAstNode(false)]
public partial class DelegateDeclaration : EntityDeclaration
{
public override NodeType NodeType {
get { return NodeType.TypeDeclaration; }

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/ExternAliasDeclaration.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// extern alias IDENTIFIER;
/// </summary>
public class ExternAliasDeclaration : AstNode
[DecompilerAstNode(false)]
public partial class ExternAliasDeclaration : AstNode
{
public override NodeType NodeType {
get {

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/NamespaceDeclaration.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// namespace Name { Members }
/// </summary>
public class NamespaceDeclaration : AstNode
[DecompilerAstNode(false)]
public partial class NamespaceDeclaration : AstNode
{
public static readonly Role<AstNode> MemberRole = SyntaxTree.MemberRole;
public static readonly Role<AstType> NamespaceNameRole = new Role<AstType>("NamespaceName", AstType.Null);

9
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/PreProcessorDirective.cs

@ -46,7 +46,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -46,7 +46,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
Line = 12
}
public class LinePreprocessorDirective : PreProcessorDirective
[DecompilerAstNode(false)]
public partial class LinePreprocessorDirective : PreProcessorDirective
{
public int LineNumber {
get;
@ -67,7 +68,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -67,7 +68,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class PragmaWarningPreprocessorDirective : PreProcessorDirective
[DecompilerAstNode(false)]
public partial class PragmaWarningPreprocessorDirective : PreProcessorDirective
{
public static readonly Role<PrimitiveExpression> WarningRole = new Role<PrimitiveExpression>("Warning", null);
@ -125,7 +127,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -125,7 +127,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class PreProcessorDirective : AstNode
[DecompilerAstNode(false)]
public partial class PreProcessorDirective : AstNode
{
public override NodeType NodeType {
get {

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeDeclaration.cs

@ -47,7 +47,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -47,7 +47,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// class Name&lt;TypeParameters&gt; : BaseTypes where Constraints;
/// </summary>
public class TypeDeclaration : EntityDeclaration
[DecompilerAstNode(false)]
public partial class TypeDeclaration : EntityDeclaration
{
public override NodeType NodeType {
get { return NodeType.TypeDeclaration; }

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/TypeParameterDeclaration.cs

@ -27,7 +27,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -27,7 +27,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// Note: mirroring the C# syntax, constraints are not part of the type parameter declaration, but belong
/// to the parent type or method.
/// </summary>
public class TypeParameterDeclaration : AstNode
[DecompilerAstNode(false)]
public partial class TypeParameterDeclaration : AstNode
{
public static readonly Role<AttributeSection> AttributeRole = EntityDeclaration.AttributeRole;
public static readonly TokenRole OutVarianceKeywordRole = new TokenRole("out");

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingAliasDeclaration.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// using Alias = Import;
/// </summary>
public class UsingAliasDeclaration : AstNode
[DecompilerAstNode(false)]
public partial class UsingAliasDeclaration : AstNode
{
public static readonly TokenRole UsingKeywordRole = new TokenRole("using");
public static readonly Role<Identifier> AliasRole = new Role<Identifier>("Alias", Identifier.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/GeneralScope/UsingDeclaration.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -32,7 +32,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// using Import;
/// </summary>
public class UsingDeclaration : AstNode
[DecompilerAstNode(false)]
public partial class UsingDeclaration : AstNode
{
public static readonly TokenRole UsingKeywordRole = new TokenRole("using");
public static readonly Role<AstType> ImportRole = new Role<AstType>("Import", AstType.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Identifier.cs

@ -28,7 +28,8 @@ using System; @@ -28,7 +28,8 @@ using System;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class Identifier : AstNode
[DecompilerAstNode(true)]
public partial class Identifier : AstNode
{
public new static readonly Identifier Null = new NullIdentifier();
sealed class NullIdentifier : Identifier

5
ICSharpCode.Decompiler/CSharp/Syntax/InvocationAstType.cs

@ -17,8 +17,6 @@ @@ -17,8 +17,6 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.Text;
using ICSharpCode.Decompiler.CSharp.Resolver;
using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
@ -29,7 +27,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -29,7 +27,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// BaseType "(" Argument { "," Argument } ")"
/// </summary>
public class InvocationAstType : AstType
[DecompilerAstNode(false)]
public partial class InvocationAstType : AstType
{
public AstNodeCollection<Expression> Arguments {
get { return GetChildrenByRole(Roles.Expression); }

3
ICSharpCode.Decompiler/CSharp/Syntax/MemberType.cs

@ -32,7 +32,8 @@ using ICSharpCode.Decompiler.TypeSystem; @@ -32,7 +32,8 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class MemberType : AstType
[DecompilerAstNode(false)]
public partial class MemberType : AstType
{
public static readonly Role<AstType> TargetRole = new Role<AstType>("Target", AstType.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/PrimitiveType.cs

@ -33,7 +33,8 @@ using ICSharpCode.Decompiler.TypeSystem.Implementation; @@ -33,7 +33,8 @@ using ICSharpCode.Decompiler.TypeSystem.Implementation;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class PrimitiveType : AstType
[DecompilerAstNode(false)]
public partial class PrimitiveType : AstType
{
TextLocation location;
string keyword = string.Empty;

3
ICSharpCode.Decompiler/CSharp/Syntax/SimpleType.cs

@ -32,7 +32,8 @@ using ICSharpCode.Decompiler.TypeSystem; @@ -32,7 +32,8 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class SimpleType : AstType
[DecompilerAstNode(true)]
public partial class SimpleType : AstType
{
#region Null
public new static readonly SimpleType Null = new NullSimpleType();

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/BlockStatement.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// { Statements }
/// </summary>
public class BlockStatement : Statement, IEnumerable<Statement>
[DecompilerAstNode(true)]
public partial class BlockStatement : Statement, IEnumerable<Statement>
{
public static readonly Role<Statement> StatementRole = new Role<Statement>("Statement", Statement.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/BreakStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// break;
/// </summary>
public class BreakStatement : Statement
[DecompilerAstNode(false)]
public partial class BreakStatement : Statement
{
public static readonly TokenRole BreakKeywordRole = new TokenRole("break");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/CheckedStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// checked BodyBlock
/// </summary>
public class CheckedStatement : Statement
[DecompilerAstNode(false)]
public partial class CheckedStatement : Statement
{
public static readonly TokenRole CheckedKeywordRole = new TokenRole("checked");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/ContinueStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// continue;
/// </summary>
public class ContinueStatement : Statement
[DecompilerAstNode(false)]
public partial class ContinueStatement : Statement
{
public static readonly TokenRole ContinueKeywordRole = new TokenRole("continue");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/DoWhileStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// "do EmbeddedStatement while(Condition);"
/// </summary>
public class DoWhileStatement : Statement
[DecompilerAstNode(false)]
public partial class DoWhileStatement : Statement
{
public static readonly TokenRole DoKeywordRole = new TokenRole("do");
public static readonly TokenRole WhileKeywordRole = new TokenRole("while");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/EmptyStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// ;
/// </summary>
public class EmptyStatement : Statement
[DecompilerAstNode(false)]
public partial class EmptyStatement : Statement
{
public TextLocation Location {
get;

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/ExpressionStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Expression;
/// </summary>
public class ExpressionStatement : Statement
[DecompilerAstNode(false)]
public partial class ExpressionStatement : Statement
{
public Expression Expression {
get { return GetChildByRole(Roles.Expression); }

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/FixedStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// fixed (Type Variables) EmbeddedStatement
/// </summary>
public class FixedStatement : Statement
[DecompilerAstNode(false)]
public partial class FixedStatement : Statement
{
public static readonly TokenRole FixedKeywordRole = new TokenRole("fixed");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// for (Initializers; Condition; Iterators) EmbeddedStatement
/// </summary>
public class ForStatement : Statement
[DecompilerAstNode(false)]
public partial class ForStatement : Statement
{
public static readonly TokenRole ForKeywordRole = new TokenRole("for");
public readonly static Role<Statement> InitializerRole = new Role<Statement>("Initializer", Statement.Null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/ForeachStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// foreach (Type VariableName in InExpression) EmbeddedStatement
/// </summary>
public class ForeachStatement : Statement
[DecompilerAstNode(false)]
public partial class ForeachStatement : Statement
{
public static readonly TokenRole AwaitRole = UnaryOperatorExpression.AwaitRole;
public static readonly TokenRole ForeachKeywordRole = new TokenRole("foreach");

9
ICSharpCode.Decompiler/CSharp/Syntax/Statements/GotoStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// "goto Label;"
/// </summary>
public class GotoStatement : Statement
[DecompilerAstNode(false)]
public partial class GotoStatement : Statement
{
public static readonly TokenRole GotoKeywordRole = new TokenRole("goto");
@ -88,7 +89,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -88,7 +89,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// or "goto case LabelExpression;"
/// </summary>
public class GotoCaseStatement : Statement
[DecompilerAstNode(false)]
public partial class GotoCaseStatement : Statement
{
public static readonly TokenRole GotoKeywordRole = new TokenRole("goto");
public static readonly TokenRole CaseKeywordRole = new TokenRole("case");
@ -138,7 +140,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -138,7 +140,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// or "goto default;"
/// </summary>
public class GotoDefaultStatement : Statement
[DecompilerAstNode(false)]
public partial class GotoDefaultStatement : Statement
{
public static readonly TokenRole GotoKeywordRole = new TokenRole("goto");
public static readonly TokenRole DefaultKeywordRole = new TokenRole("default");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/IfElseStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// if (Condition) TrueStatement else FalseStatement
/// </summary>
public class IfElseStatement : Statement
[DecompilerAstNode(false)]
public partial class IfElseStatement : Statement
{
public readonly static TokenRole IfKeywordRole = new TokenRole("if");
public readonly static Role<Expression> ConditionRole = Roles.Condition;

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/LabelStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// Label:
/// </summary>
public class LabelStatement : Statement
[DecompilerAstNode(false)]
public partial class LabelStatement : Statement
{
public string Label {
get {

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/LocalFunctionDeclarationStatement.cs

@ -20,7 +20,8 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching; @@ -20,7 +20,8 @@ using ICSharpCode.Decompiler.CSharp.Syntax.PatternMatching;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class LocalFunctionDeclarationStatement : Statement
[DecompilerAstNode(false)]
public partial class LocalFunctionDeclarationStatement : Statement
{
public static readonly Role<MethodDeclaration> MethodDeclarationRole = new Role<MethodDeclaration>("Method", null);

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/LockStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// lock (Expression) EmbeddedStatement;
/// </summary>
public class LockStatement : Statement
[DecompilerAstNode(false)]
public partial class LockStatement : Statement
{
public static readonly TokenRole LockKeywordRole = new TokenRole("lock");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/ReturnStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// return Expression;
/// </summary>
public class ReturnStatement : Statement
[DecompilerAstNode(false)]
public partial class ReturnStatement : Statement
{
public static readonly TokenRole ReturnKeywordRole = new TokenRole("return");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/Statement.cs

@ -27,7 +27,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -27,7 +27,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// This class is useful even though it doesn't provide any additional functionality:
/// It can be used to communicate more information in APIs, e.g. "this subnode will always be a statement"
/// </remarks>
public abstract class Statement : AstNode
[DecompilerAstNode(true)]
public abstract partial class Statement : AstNode
{
#region Null
public new static readonly Statement Null = new NullStatement();

9
ICSharpCode.Decompiler/CSharp/Syntax/Statements/SwitchStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// switch (Expression) { SwitchSections }
/// </summary>
public class SwitchStatement : Statement
[DecompilerAstNode(false)]
public partial class SwitchStatement : Statement
{
public static readonly TokenRole SwitchKeywordRole = new TokenRole("switch");
public static readonly Role<SwitchSection> SwitchSectionRole = new Role<SwitchSection>("SwitchSection", null);
@ -86,7 +87,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -86,7 +87,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class SwitchSection : AstNode
[DecompilerAstNode(false)]
public partial class SwitchSection : AstNode
{
#region PatternPlaceholder
public static implicit operator SwitchSection(PatternMatching.Pattern pattern)
@ -172,7 +174,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -172,7 +174,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class CaseLabel : AstNode
[DecompilerAstNode(false)]
public partial class CaseLabel : AstNode
{
public static readonly TokenRole CaseKeywordRole = new TokenRole("case");
public static readonly TokenRole DefaultKeywordRole = new TokenRole("default");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/ThrowStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// throw Expression;
/// </summary>
public class ThrowStatement : Statement
[DecompilerAstNode(false)]
public partial class ThrowStatement : Statement
{
public static readonly TokenRole ThrowKeywordRole = new TokenRole("throw");

6
ICSharpCode.Decompiler/CSharp/Syntax/Statements/TryCatchStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// try TryBlock CatchClauses finally FinallyBlock
/// </summary>
public class TryCatchStatement : Statement
[DecompilerAstNode(false)]
public partial class TryCatchStatement : Statement
{
public static readonly TokenRole TryKeywordRole = new TokenRole("try");
public static readonly Role<BlockStatement> TryBlockRole = new Role<BlockStatement>("TryBlock", BlockStatement.Null);
@ -85,7 +86,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -85,7 +86,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// catch (Type VariableName) { Body }
/// </summary>
public class CatchClause : AstNode
[DecompilerAstNode(true)]
public partial class CatchClause : AstNode
{
public static readonly TokenRole CatchKeywordRole = new TokenRole("catch");
public static readonly TokenRole WhenKeywordRole = new TokenRole("when");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/UncheckedStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// unchecked BodyBlock
/// </summary>
public class UncheckedStatement : Statement
[DecompilerAstNode(false)]
public partial class UncheckedStatement : Statement
{
public static readonly TokenRole UncheckedKeywordRole = new TokenRole("unchecked");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/UnsafeStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// unsafe { Body }
/// </summary>
public class UnsafeStatement : Statement
[DecompilerAstNode(false)]
public partial class UnsafeStatement : Statement
{
public static readonly TokenRole UnsafeKeywordRole = new TokenRole("unsafe");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/UsingStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// [ await ] using (ResourceAcquisition) EmbeddedStatement
/// </summary>
public class UsingStatement : Statement
[DecompilerAstNode(false)]
public partial class UsingStatement : Statement
{
public static readonly TokenRole UsingKeywordRole = new TokenRole("using");
public static readonly TokenRole AwaitRole = UnaryOperatorExpression.AwaitRole;

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/VariableDeclarationStatement.cs

@ -27,7 +27,8 @@ @@ -27,7 +27,8 @@
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class VariableDeclarationStatement : Statement
[DecompilerAstNode(false)]
public partial class VariableDeclarationStatement : Statement
{
public static readonly Role<CSharpModifierToken> ModifierRole = EntityDeclaration.ModifierRole;

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/WhileStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// "while (Condition) EmbeddedStatement"
/// </summary>
public class WhileStatement : Statement
[DecompilerAstNode(false)]
public partial class WhileStatement : Statement
{
public static readonly TokenRole WhileKeywordRole = new TokenRole("while");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldBreakStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// yield break;
/// </summary>
public class YieldBreakStatement : Statement
[DecompilerAstNode(false)]
public partial class YieldBreakStatement : Statement
{
public static readonly TokenRole YieldKeywordRole = new TokenRole("yield");
public static readonly TokenRole BreakKeywordRole = new TokenRole("break");

3
ICSharpCode.Decompiler/CSharp/Syntax/Statements/YieldReturnStatement.cs

@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -30,7 +30,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// yield return Expression;
/// </summary>
public class YieldReturnStatement : Statement
[DecompilerAstNode(false)]
public partial class YieldReturnStatement : Statement
{
public static readonly TokenRole YieldKeywordRole = new TokenRole("yield");
public static readonly TokenRole ReturnKeywordRole = new TokenRole("return");

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

@ -26,12 +26,12 @@ @@ -26,12 +26,12 @@
using System.Collections.Generic;
using ICSharpCode.Decompiler.TypeSystem;
using ICSharpCode.Decompiler.Util;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class SyntaxTree : AstNode
[DecompilerAstNode(false)]
public partial class SyntaxTree : AstNode
{
public static readonly Role<AstNode> MemberRole = new Role<AstNode>("Member", AstNode.Null);

7
ICSharpCode.Decompiler/CSharp/Syntax/TupleAstType.cs

@ -16,7 +16,6 @@ @@ -16,7 +16,6 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Immutable;
using System.Linq;
@ -26,7 +25,8 @@ using ICSharpCode.Decompiler.TypeSystem; @@ -26,7 +25,8 @@ using ICSharpCode.Decompiler.TypeSystem;
namespace ICSharpCode.Decompiler.CSharp.Syntax
{
public class TupleAstType : AstType
[DecompilerAstNode(false)]
public partial class TupleAstType : AstType
{
public static readonly Role<TupleTypeElement> ElementRole = new Role<TupleTypeElement>("Element", TupleTypeElement.Null);
@ -63,7 +63,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -63,7 +63,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
}
}
public class TupleTypeElement : AstNode
[DecompilerAstNode(true)]
public partial class TupleTypeElement : AstNode
{
#region Null
public new static readonly TupleTypeElement Null = new TupleTypeElement();

3
ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs

@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -31,7 +31,8 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
/// <summary>
/// get/set/init/add/remove
/// </summary>
public class Accessor : EntityDeclaration
[DecompilerAstNode(true)]
public partial class Accessor : EntityDeclaration
{
public static readonly new Accessor Null = new NullAccessor();
sealed class NullAccessor : Accessor

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save