From 21b471fb6e1e7ecb36675059d2e0966720431cce Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sun, 4 May 2025 23:06:19 +0200 Subject: [PATCH] Generate Visitor Pattern --- .../Expressions/AnonymousMethodExpression.cs | 15 - .../AnonymousTypeCreateExpression.cs | 15 - .../Expressions/ArrayCreateExpression.cs | 16 - .../Expressions/ArrayInitializerExpression.cs | 15 - .../CSharp/Syntax/Expressions/AsExpression.cs | 15 - .../Expressions/AssignmentExpression.cs | 15 - .../Expressions/BaseReferenceExpression.cs | 15 - .../Expressions/BinaryOperatorExpression.cs | 15 - .../CSharp/Syntax/IAstVisitor.cs | 468 ------------------ .../CSharp/Syntax/TypeMembers/Accessor.cs | 15 - .../TypeMembers/ConstructorDeclaration.cs | 15 - .../ICSharpCode.Decompiler.csproj | 1 - 12 files changed, 620 deletions(-) delete mode 100644 ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs index 96a20ab85..34caf0551 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousMethodExpression.cs @@ -95,21 +95,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax { } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitAnonymousMethodExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitAnonymousMethodExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitAnonymousMethodExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { AnonymousMethodExpression o = other as AnonymousMethodExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs index f154fe88c..908ddb6fe 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AnonymousTypeCreateExpression.cs @@ -67,21 +67,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax { } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitAnonymousTypeCreateExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitAnonymousTypeCreateExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitAnonymousTypeCreateExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { var o = other as AnonymousTypeCreateExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs index dbc2f7910..aece68c6b 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayCreateExpression.cs @@ -54,22 +54,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax get { return GetChildByRole(InitializerRole); } set { SetChildByRole(InitializerRole, value); } } - - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitArrayCreateExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitArrayCreateExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitArrayCreateExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { ArrayCreateExpression o = other as ArrayCreateExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs index c56d3c4f5..9c5458af8 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/ArrayInitializerExpression.cs @@ -72,21 +72,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax get { return GetChildByRole(Roles.RBrace); } } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitArrayInitializerExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitArrayInitializerExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitArrayInitializerExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { ArrayInitializerExpression o = other as ArrayInitializerExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs index 522691d7c..1ec95755b 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AsExpression.cs @@ -59,21 +59,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax AddChild(type, Roles.Type); } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitAsExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitAsExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitAsExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { AsExpression o = other as AsExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs index 5f14cc6e2..839cafae8 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/AssignmentExpression.cs @@ -89,21 +89,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax set { SetChildByRole(RightRole, value); } } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitAssignmentExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitAssignmentExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitAssignmentExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { AssignmentExpression o = other as AssignmentExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs index 6c785e64b..82cf0fc0a 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BaseReferenceExpression.cs @@ -49,21 +49,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax } } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitBaseReferenceExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitBaseReferenceExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitBaseReferenceExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { BaseReferenceExpression o = other as BaseReferenceExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs index 6f08b6e28..2c98080f1 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/Expressions/BinaryOperatorExpression.cs @@ -91,21 +91,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax set { SetChildByRole(RightRole, value); } } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitBinaryOperatorExpression(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitBinaryOperatorExpression(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitBinaryOperatorExpression(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { BinaryOperatorExpression o = other as BinaryOperatorExpression; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs b/ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs deleted file mode 100644 index 37dfd40a3..000000000 --- a/ICSharpCode.Decompiler/CSharp/Syntax/IAstVisitor.cs +++ /dev/null @@ -1,468 +0,0 @@ -// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team -// -// 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 -{ - /// - /// AST visitor. - /// - public interface IAstVisitor - { - void VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression); - void VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression); - void VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression); - void VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression); - void VisitAsExpression(AsExpression asExpression); - void VisitAssignmentExpression(AssignmentExpression assignmentExpression); - void VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression); - void VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression); - void VisitCastExpression(CastExpression castExpression); - void VisitCheckedExpression(CheckedExpression checkedExpression); - void VisitConditionalExpression(ConditionalExpression conditionalExpression); - void VisitDeclarationExpression(DeclarationExpression declarationExpression); - void VisitRecursivePatternExpression(RecursivePatternExpression recursivePatternExpression); - void VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression); - void VisitDirectionExpression(DirectionExpression directionExpression); - void VisitIdentifierExpression(IdentifierExpression identifierExpression); - void VisitIndexerExpression(IndexerExpression indexerExpression); - void VisitInterpolatedStringExpression(InterpolatedStringExpression interpolatedStringExpression); - void VisitInvocationExpression(InvocationExpression invocationExpression); - void VisitIsExpression(IsExpression isExpression); - void VisitLambdaExpression(LambdaExpression lambdaExpression); - void VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression); - void VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression); - void VisitNamedExpression(NamedExpression namedExpression); - void VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression); - void VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression); - void VisitOutVarDeclarationExpression(OutVarDeclarationExpression outVarDeclarationExpression); - void VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression); - void VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression); - void VisitPrimitiveExpression(PrimitiveExpression primitiveExpression); - void VisitSizeOfExpression(SizeOfExpression sizeOfExpression); - void VisitStackAllocExpression(StackAllocExpression stackAllocExpression); - void VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression); - void VisitThrowExpression(ThrowExpression throwExpression); - void VisitTupleExpression(TupleExpression tupleExpression); - void VisitTypeOfExpression(TypeOfExpression typeOfExpression); - void VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression); - void VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression); - void VisitUncheckedExpression(UncheckedExpression uncheckedExpression); - void VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression); - void VisitWithInitializerExpression(WithInitializerExpression withInitializerExpression); - - void VisitQueryExpression(QueryExpression queryExpression); - void VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause); - void VisitQueryFromClause(QueryFromClause queryFromClause); - void VisitQueryLetClause(QueryLetClause queryLetClause); - void VisitQueryWhereClause(QueryWhereClause queryWhereClause); - void VisitQueryJoinClause(QueryJoinClause queryJoinClause); - void VisitQueryOrderClause(QueryOrderClause queryOrderClause); - void VisitQueryOrdering(QueryOrdering queryOrdering); - void VisitQuerySelectClause(QuerySelectClause querySelectClause); - void VisitQueryGroupClause(QueryGroupClause queryGroupClause); - - void VisitAttribute(Attribute attribute); - void VisitAttributeSection(AttributeSection attributeSection); - void VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration); - void VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration); - void VisitTypeDeclaration(TypeDeclaration typeDeclaration); - void VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration); - void VisitUsingDeclaration(UsingDeclaration usingDeclaration); - void VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration); - - void VisitBlockStatement(BlockStatement blockStatement); - void VisitBreakStatement(BreakStatement breakStatement); - void VisitCheckedStatement(CheckedStatement checkedStatement); - void VisitContinueStatement(ContinueStatement continueStatement); - void VisitDoWhileStatement(DoWhileStatement doWhileStatement); - void VisitEmptyStatement(EmptyStatement emptyStatement); - void VisitExpressionStatement(ExpressionStatement expressionStatement); - void VisitFixedStatement(FixedStatement fixedStatement); - void VisitForeachStatement(ForeachStatement foreachStatement); - void VisitForStatement(ForStatement forStatement); - void VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement); - void VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement); - void VisitGotoStatement(GotoStatement gotoStatement); - void VisitIfElseStatement(IfElseStatement ifElseStatement); - void VisitLabelStatement(LabelStatement labelStatement); - void VisitLockStatement(LockStatement lockStatement); - void VisitReturnStatement(ReturnStatement returnStatement); - void VisitSwitchStatement(SwitchStatement switchStatement); - void VisitSwitchSection(SwitchSection switchSection); - void VisitCaseLabel(CaseLabel caseLabel); - void VisitSwitchExpression(SwitchExpression switchExpression); - void VisitSwitchExpressionSection(SwitchExpressionSection switchExpressionSection); - void VisitThrowStatement(ThrowStatement throwStatement); - void VisitTryCatchStatement(TryCatchStatement tryCatchStatement); - void VisitCatchClause(CatchClause catchClause); - void VisitUncheckedStatement(UncheckedStatement uncheckedStatement); - void VisitUnsafeStatement(UnsafeStatement unsafeStatement); - void VisitUsingStatement(UsingStatement usingStatement); - void VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement); - void VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatement localFunctionDeclarationStatement); - void VisitWhileStatement(WhileStatement whileStatement); - void VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement); - void VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement); - - void VisitAccessor(Accessor accessor); - void VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration); - void VisitConstructorInitializer(ConstructorInitializer constructorInitializer); - void VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration); - void VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration); - void VisitEventDeclaration(EventDeclaration eventDeclaration); - void VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration); - void VisitFieldDeclaration(FieldDeclaration fieldDeclaration); - void VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration); - void VisitMethodDeclaration(MethodDeclaration methodDeclaration); - void VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration); - void VisitParameterDeclaration(ParameterDeclaration parameterDeclaration); - void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration); - void VisitVariableInitializer(VariableInitializer variableInitializer); - void VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration); - void VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer); - - void VisitSyntaxTree(SyntaxTree syntaxTree); - void VisitSimpleType(SimpleType simpleType); - void VisitMemberType(MemberType memberType); - void VisitTupleType(TupleAstType tupleType); - void VisitTupleTypeElement(TupleTypeElement tupleTypeElement); - void VisitFunctionPointerType(FunctionPointerAstType functionPointerType); - void VisitInvocationType(InvocationAstType invocationType); - void VisitComposedType(ComposedType composedType); - void VisitArraySpecifier(ArraySpecifier arraySpecifier); - void VisitPrimitiveType(PrimitiveType primitiveType); - - void VisitComment(Comment comment); - void VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective); - void VisitDocumentationReference(DocumentationReference documentationReference); - - void VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration); - void VisitConstraint(Constraint constraint); - void VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode); - void VisitIdentifier(Identifier identifier); - - void VisitInterpolation(Interpolation interpolation); - void VisitInterpolatedStringText(InterpolatedStringText interpolatedStringText); - - void VisitSingleVariableDesignation(SingleVariableDesignation singleVariableDesignation); - void VisitParenthesizedVariableDesignation(ParenthesizedVariableDesignation parenthesizedVariableDesignation); - - void VisitNullNode(AstNode nullNode); - void VisitErrorNode(AstNode errorNode); - void VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern); - } - - /// - /// AST visitor. - /// - public interface IAstVisitor - { - S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression); - S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression); - S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression); - S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression); - S VisitAsExpression(AsExpression asExpression); - S VisitAssignmentExpression(AssignmentExpression assignmentExpression); - S VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression); - S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression); - S VisitCastExpression(CastExpression castExpression); - S VisitCheckedExpression(CheckedExpression checkedExpression); - S VisitConditionalExpression(ConditionalExpression conditionalExpression); - S VisitDeclarationExpression(DeclarationExpression declarationExpression); - S VisitRecursivePatternExpression(RecursivePatternExpression recursivePatternExpression); - S VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression); - S VisitDirectionExpression(DirectionExpression directionExpression); - S VisitIdentifierExpression(IdentifierExpression identifierExpression); - S VisitIndexerExpression(IndexerExpression indexerExpression); - S VisitInterpolatedStringExpression(InterpolatedStringExpression interpolatedStringExpression); - S VisitInvocationExpression(InvocationExpression invocationExpression); - S VisitIsExpression(IsExpression isExpression); - S VisitLambdaExpression(LambdaExpression lambdaExpression); - S VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression); - S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression); - S VisitNamedExpression(NamedExpression namedExpression); - S VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression); - S VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression); - S VisitOutVarDeclarationExpression(OutVarDeclarationExpression outVarDeclarationExpression); - S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression); - S VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression); - S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression); - S VisitSizeOfExpression(SizeOfExpression sizeOfExpression); - S VisitStackAllocExpression(StackAllocExpression stackAllocExpression); - S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression); - S VisitThrowExpression(ThrowExpression throwExpression); - S VisitTupleExpression(TupleExpression tupleExpression); - S VisitTypeOfExpression(TypeOfExpression typeOfExpression); - S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression); - S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression); - S VisitUncheckedExpression(UncheckedExpression uncheckedExpression); - S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression); - S VisitWithInitializerExpression(WithInitializerExpression withInitializerExpression); - - S VisitQueryExpression(QueryExpression queryExpression); - S VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause); - S VisitQueryFromClause(QueryFromClause queryFromClause); - S VisitQueryLetClause(QueryLetClause queryLetClause); - S VisitQueryWhereClause(QueryWhereClause queryWhereClause); - S VisitQueryJoinClause(QueryJoinClause queryJoinClause); - S VisitQueryOrderClause(QueryOrderClause queryOrderClause); - S VisitQueryOrdering(QueryOrdering queryOrdering); - S VisitQuerySelectClause(QuerySelectClause querySelectClause); - S VisitQueryGroupClause(QueryGroupClause queryGroupClause); - - S VisitAttribute(Attribute attribute); - S VisitAttributeSection(AttributeSection attributeSection); - S VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration); - S VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration); - S VisitTypeDeclaration(TypeDeclaration typeDeclaration); - S VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration); - S VisitUsingDeclaration(UsingDeclaration usingDeclaration); - S VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration); - - S VisitBlockStatement(BlockStatement blockStatement); - S VisitBreakStatement(BreakStatement breakStatement); - S VisitCheckedStatement(CheckedStatement checkedStatement); - S VisitContinueStatement(ContinueStatement continueStatement); - S VisitDoWhileStatement(DoWhileStatement doWhileStatement); - S VisitEmptyStatement(EmptyStatement emptyStatement); - S VisitExpressionStatement(ExpressionStatement expressionStatement); - S VisitFixedStatement(FixedStatement fixedStatement); - S VisitForeachStatement(ForeachStatement foreachStatement); - S VisitForStatement(ForStatement forStatement); - S VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement); - S VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement); - S VisitGotoStatement(GotoStatement gotoStatement); - S VisitIfElseStatement(IfElseStatement ifElseStatement); - S VisitLabelStatement(LabelStatement labelStatement); - S VisitLockStatement(LockStatement lockStatement); - S VisitReturnStatement(ReturnStatement returnStatement); - S VisitSwitchStatement(SwitchStatement switchStatement); - S VisitSwitchSection(SwitchSection switchSection); - S VisitCaseLabel(CaseLabel caseLabel); - S VisitSwitchExpression(SwitchExpression switchExpression); - S VisitSwitchExpressionSection(SwitchExpressionSection switchExpressionSection); - S VisitThrowStatement(ThrowStatement throwStatement); - S VisitTryCatchStatement(TryCatchStatement tryCatchStatement); - S VisitCatchClause(CatchClause catchClause); - S VisitUncheckedStatement(UncheckedStatement uncheckedStatement); - S VisitUnsafeStatement(UnsafeStatement unsafeStatement); - S VisitUsingStatement(UsingStatement usingStatement); - S VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement); - S VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatement localFunctionDeclarationStatement); - S VisitWhileStatement(WhileStatement whileStatement); - S VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement); - S VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement); - - S VisitAccessor(Accessor accessor); - S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration); - S VisitConstructorInitializer(ConstructorInitializer constructorInitializer); - S VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration); - S VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration); - S VisitEventDeclaration(EventDeclaration eventDeclaration); - S VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration); - S VisitFieldDeclaration(FieldDeclaration fieldDeclaration); - S VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration); - S VisitMethodDeclaration(MethodDeclaration methodDeclaration); - S VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration); - S VisitParameterDeclaration(ParameterDeclaration parameterDeclaration); - S VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration); - S VisitVariableInitializer(VariableInitializer variableInitializer); - S VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration); - S VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer); - - S VisitSyntaxTree(SyntaxTree syntaxTree); - S VisitSimpleType(SimpleType simpleType); - S VisitMemberType(MemberType memberType); - S VisitTupleType(TupleAstType tupleType); - S VisitTupleTypeElement(TupleTypeElement tupleTypeElement); - S VisitFunctionPointerType(FunctionPointerAstType functionPointerType); - S VisitInvocationType(InvocationAstType invocationType); - S VisitComposedType(ComposedType composedType); - S VisitArraySpecifier(ArraySpecifier arraySpecifier); - S VisitPrimitiveType(PrimitiveType primitiveType); - - S VisitComment(Comment comment); - S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective); - S VisitDocumentationReference(DocumentationReference documentationReference); - - S VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration); - S VisitConstraint(Constraint constraint); - S VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode); - S VisitIdentifier(Identifier identifier); - - S VisitInterpolation(Interpolation interpolation); - S VisitInterpolatedStringText(InterpolatedStringText interpolatedStringText); - - S VisitSingleVariableDesignation(SingleVariableDesignation singleVariableDesignation); - S VisitParenthesizedVariableDesignation(ParenthesizedVariableDesignation parenthesizedVariableDesignation); - - S VisitNullNode(AstNode nullNode); - S VisitErrorNode(AstNode errorNode); - S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern); - } - - /// - /// AST visitor. - /// - public interface IAstVisitor - { - S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression, T data); - S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression, T data); - S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, T data); - S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data); - S VisitAsExpression(AsExpression asExpression, T data); - S VisitAssignmentExpression(AssignmentExpression assignmentExpression, T data); - S VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, T data); - S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, T data); - S VisitCastExpression(CastExpression castExpression, T data); - S VisitCheckedExpression(CheckedExpression checkedExpression, T data); - S VisitConditionalExpression(ConditionalExpression conditionalExpression, T data); - S VisitDeclarationExpression(DeclarationExpression declarationExpression, T data); - S VisitRecursivePatternExpression(RecursivePatternExpression recursivePatternExpression, T data); - S VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, T data); - S VisitDirectionExpression(DirectionExpression directionExpression, T data); - S VisitIdentifierExpression(IdentifierExpression identifierExpression, T data); - S VisitIndexerExpression(IndexerExpression indexerExpression, T data); - S VisitInterpolatedStringExpression(InterpolatedStringExpression interpolatedStringExpression, T data); - S VisitInvocationExpression(InvocationExpression invocationExpression, T data); - S VisitIsExpression(IsExpression isExpression, T data); - S VisitLambdaExpression(LambdaExpression lambdaExpression, T data); - S VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, T data); - S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, T data); - S VisitNamedExpression(NamedExpression namedExpression, T data); - S VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression, T data); - S VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression, T data); - S VisitOutVarDeclarationExpression(OutVarDeclarationExpression outVarDeclarationExpression, T data); - S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, T data); - S VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression, T data); - S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, T data); - S VisitSizeOfExpression(SizeOfExpression sizeOfExpression, T data); - S VisitStackAllocExpression(StackAllocExpression stackAllocExpression, T data); - S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, T data); - S VisitThrowExpression(ThrowExpression throwExpression, T data); - S VisitTupleExpression(TupleExpression tupleExpression, T data); - S VisitTypeOfExpression(TypeOfExpression typeOfExpression, T data); - S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data); - S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, T data); - S VisitUncheckedExpression(UncheckedExpression uncheckedExpression, T data); - S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression, T data); - S VisitWithInitializerExpression(WithInitializerExpression withInitializerExpression, T data); - - S VisitQueryExpression(QueryExpression queryExpression, T data); - S VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause, T data); - S VisitQueryFromClause(QueryFromClause queryFromClause, T data); - S VisitQueryLetClause(QueryLetClause queryLetClause, T data); - S VisitQueryWhereClause(QueryWhereClause queryWhereClause, T data); - S VisitQueryJoinClause(QueryJoinClause queryJoinClause, T data); - S VisitQueryOrderClause(QueryOrderClause queryOrderClause, T data); - S VisitQueryOrdering(QueryOrdering queryOrdering, T data); - S VisitQuerySelectClause(QuerySelectClause querySelectClause, T data); - S VisitQueryGroupClause(QueryGroupClause queryGroupClause, T data); - - S VisitAttribute(Attribute attribute, T data); - S VisitAttributeSection(AttributeSection attributeSection, T data); - S VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, T data); - S VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, T data); - S VisitTypeDeclaration(TypeDeclaration typeDeclaration, T data); - S VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration, T data); - S VisitUsingDeclaration(UsingDeclaration usingDeclaration, T data); - S VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration, T data); - - S VisitBlockStatement(BlockStatement blockStatement, T data); - S VisitBreakStatement(BreakStatement breakStatement, T data); - S VisitCheckedStatement(CheckedStatement checkedStatement, T data); - S VisitContinueStatement(ContinueStatement continueStatement, T data); - S VisitDoWhileStatement(DoWhileStatement doWhileStatement, T data); - S VisitEmptyStatement(EmptyStatement emptyStatement, T data); - S VisitExpressionStatement(ExpressionStatement expressionStatement, T data); - S VisitFixedStatement(FixedStatement fixedStatement, T data); - S VisitForeachStatement(ForeachStatement foreachStatement, T data); - S VisitForStatement(ForStatement forStatement, T data); - S VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement, T data); - S VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement, T data); - S VisitGotoStatement(GotoStatement gotoStatement, T data); - S VisitIfElseStatement(IfElseStatement ifElseStatement, T data); - S VisitLabelStatement(LabelStatement labelStatement, T data); - S VisitLockStatement(LockStatement lockStatement, T data); - S VisitReturnStatement(ReturnStatement returnStatement, T data); - S VisitSwitchStatement(SwitchStatement switchStatement, T data); - S VisitSwitchSection(SwitchSection switchSection, T data); - S VisitCaseLabel(CaseLabel caseLabel, T data); - S VisitSwitchExpression(SwitchExpression switchExpression, T data); - S VisitSwitchExpressionSection(SwitchExpressionSection switchExpressionSection, T data); - S VisitThrowStatement(ThrowStatement throwStatement, T data); - S VisitTryCatchStatement(TryCatchStatement tryCatchStatement, T data); - S VisitCatchClause(CatchClause catchClause, T data); - S VisitUncheckedStatement(UncheckedStatement uncheckedStatement, T data); - S VisitUnsafeStatement(UnsafeStatement unsafeStatement, T data); - S VisitUsingStatement(UsingStatement usingStatement, T data); - S VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement, T data); - S VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatement localFunctionDeclarationStatement, T data); - S VisitWhileStatement(WhileStatement whileStatement, T data); - S VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement, T data); - S VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement, T data); - - S VisitAccessor(Accessor accessor, T data); - S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, T data); - S VisitConstructorInitializer(ConstructorInitializer constructorInitializer, T data); - S VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration, T data); - S VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration, T data); - S VisitEventDeclaration(EventDeclaration eventDeclaration, T data); - S VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration, T data); - S VisitFieldDeclaration(FieldDeclaration fieldDeclaration, T data); - S VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration, T data); - S VisitMethodDeclaration(MethodDeclaration methodDeclaration, T data); - S VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, T data); - S VisitParameterDeclaration(ParameterDeclaration parameterDeclaration, T data); - S VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, T data); - S VisitVariableInitializer(VariableInitializer variableInitializer, T data); - S VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration, T data); - S VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer, T data); - - S VisitSyntaxTree(SyntaxTree syntaxTree, T data); - S VisitSimpleType(SimpleType simpleType, T data); - S VisitMemberType(MemberType memberType, T data); - S VisitTupleType(TupleAstType tupleType, T data); - S VisitTupleTypeElement(TupleTypeElement tupleTypeElement, T data); - S VisitFunctionPointerType(FunctionPointerAstType functionPointerType, T data); - S VisitInvocationType(InvocationAstType invocationType, T data); - S VisitComposedType(ComposedType composedType, T data); - S VisitArraySpecifier(ArraySpecifier arraySpecifier, T data); - S VisitPrimitiveType(PrimitiveType primitiveType, T data); - - S VisitComment(Comment comment, T data); - S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective, T data); - S VisitDocumentationReference(DocumentationReference documentationReference, T data); - - S VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration, T data); - S VisitConstraint(Constraint constraint, T data); - S VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode, T data); - S VisitIdentifier(Identifier identifier, T data); - - S VisitInterpolation(Interpolation interpolation, T data); - S VisitInterpolatedStringText(InterpolatedStringText interpolatedStringText, T data); - - S VisitSingleVariableDesignation(SingleVariableDesignation singleVariableDesignation, T data); - S VisitParenthesizedVariableDesignation(ParenthesizedVariableDesignation parenthesizedVariableDesignation, T data); - - S VisitNullNode(AstNode nullNode, T data); - S VisitErrorNode(AstNode errorNode, T data); - S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern, T data); - } -} diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs index d7197858c..7019beddd 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/Accessor.cs @@ -65,21 +65,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax set { SetChildByRole(Roles.Body, value); } } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitAccessor(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitAccessor(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitAccessor(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { Accessor o = other as Accessor; diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs index 883e6cf68..b1fd821e0 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeMembers/ConstructorDeclaration.cs @@ -63,21 +63,6 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax set { SetChildByRole(Roles.Body, value); } } - public override void AcceptVisitor(IAstVisitor visitor) - { - visitor.VisitConstructorDeclaration(this); - } - - public override T AcceptVisitor(IAstVisitor visitor) - { - return visitor.VisitConstructorDeclaration(this); - } - - public override S AcceptVisitor(IAstVisitor visitor, T data) - { - return visitor.VisitConstructorDeclaration(this, data); - } - protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { ConstructorDeclaration o = other as ConstructorDeclaration; diff --git a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj index 07b13a6d1..c7134c11e 100644 --- a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj +++ b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj @@ -235,7 +235,6 @@ -