// 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); } }