// // ObservableAstVisitor.cs // // Author: // Mike Krüger // // Copyright (c) 2011 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. using System; namespace ICSharpCode.NRefactory.CSharp { [Obsolete("Use the non-generic version of the ObservableAstVisitor instead (the 'data' parameter and return value cannot be used meaningfully when using events)")] public class ObservableAstVisitor: IAstVisitor { S VisitChildren (AstNode node, T data) { AstNode next; for (var child = node.FirstChild; child != null; child = next) { // Store next to allow the loop to continue // if the visitor removes/replaces child. next = child.NextSibling; child.AcceptVisitor (this, data); } return default (S); } public event Action CompilationUnitVisited; S IAstVisitor.VisitSyntaxTree (SyntaxTree unit, T data) { var handler = CompilationUnitVisited; if (handler != null) handler (unit, data); return VisitChildren (unit, data); } public event Action CommentVisited; S IAstVisitor.VisitComment (Comment comment, T data) { var handler = CommentVisited; if (handler != null) handler (comment, data); return VisitChildren (comment, data); } public event Action NewLineVisited; S IAstVisitor.VisitNewLine(NewLineNode newLineNode, T data) { var handler = NewLineVisited; if (handler != null) handler(newLineNode, data); return VisitChildren(newLineNode, data); } public event Action WhitespaceVisited; S IAstVisitor.VisitWhitespace(WhitespaceNode whitespace, T data) { var handler = WhitespaceVisited; if (handler != null) handler(whitespace, data); return VisitChildren(whitespace, data); } public event Action TextVisited; S IAstVisitor.VisitText(TextNode textNode, T data) { var handler = TextVisited; if (handler != null) handler(textNode, data); return VisitChildren(textNode, data); } public event Action PreProcessorDirectiveVisited; S IAstVisitor.VisitPreProcessorDirective (PreProcessorDirective preProcessorDirective, T data) { var handler = PreProcessorDirectiveVisited; if (handler != null) handler (preProcessorDirective, data); return VisitChildren (preProcessorDirective, data); } public event Action DocumentationReferenceVisited; S IAstVisitor.VisitDocumentationReference (DocumentationReference documentationReference, T data) { var handler = DocumentationReferenceVisited; if (handler != null) handler (documentationReference, data); return VisitChildren (documentationReference, data); } public event Action IdentifierVisited; S IAstVisitor.VisitIdentifier (Identifier identifier, T data) { var handler = IdentifierVisited; if (handler != null) handler (identifier, data); return VisitChildren (identifier, data); } public event Action CSharpTokenNodeVisited; S IAstVisitor.VisitCSharpTokenNode (CSharpTokenNode token, T data) { var handler = CSharpTokenNodeVisited; if (handler != null) handler (token, data); return VisitChildren (token, data); } public event Action PrimitiveTypeVisited; S IAstVisitor.VisitPrimitiveType (PrimitiveType primitiveType, T data) { var handler = PrimitiveTypeVisited; if (handler != null) handler (primitiveType, data); return VisitChildren (primitiveType, data); } public event Action ComposedTypeVisited; S IAstVisitor.VisitComposedType (ComposedType composedType, T data) { var handler = ComposedTypeVisited; if (handler != null) handler (composedType, data); return VisitChildren (composedType, data); } public event Action SimpleTypeVisited; S IAstVisitor.VisitSimpleType (SimpleType simpleType, T data) { var handler = SimpleTypeVisited; if (handler != null) handler (simpleType, data); return VisitChildren (simpleType, data); } public event Action MemberTypeVisited; S IAstVisitor.VisitMemberType (MemberType memberType, T data) { var handler = MemberTypeVisited; if (handler != null) handler (memberType, data); return VisitChildren (memberType, data); } public event Action AttributeVisited; S IAstVisitor.VisitAttribute (Attribute attribute, T data) { var handler = AttributeVisited; if (handler != null) handler (attribute, data); return VisitChildren (attribute, data); } public event Action AttributeSectionVisited; S IAstVisitor.VisitAttributeSection (AttributeSection attributeSection, T data) { var handler = AttributeSectionVisited; if (handler != null) handler (attributeSection, data); return VisitChildren (attributeSection, data); } public event Action DelegateDeclarationVisited; S IAstVisitor.VisitDelegateDeclaration (DelegateDeclaration delegateDeclaration, T data) { var handler = DelegateDeclarationVisited; if (handler != null) handler (delegateDeclaration, data); return VisitChildren (delegateDeclaration, data); } public event Action NamespaceDeclarationVisited; S IAstVisitor.VisitNamespaceDeclaration (NamespaceDeclaration namespaceDeclaration, T data) { var handler = NamespaceDeclarationVisited; if (handler != null) handler (namespaceDeclaration, data); return VisitChildren (namespaceDeclaration, data); } public event Action TypeDeclarationVisited; S IAstVisitor.VisitTypeDeclaration (TypeDeclaration typeDeclaration, T data) { var handler = TypeDeclarationVisited; if (handler != null) handler (typeDeclaration, data); return VisitChildren (typeDeclaration, data); } public event Action TypeParameterDeclarationVisited; S IAstVisitor.VisitTypeParameterDeclaration (TypeParameterDeclaration typeParameterDeclaration, T data) { var handler = TypeParameterDeclarationVisited; if (handler != null) handler (typeParameterDeclaration, data); return VisitChildren (typeParameterDeclaration, data); } public event Action EnumMemberDeclarationVisited; S IAstVisitor.VisitEnumMemberDeclaration (EnumMemberDeclaration enumMemberDeclaration, T data) { var handler = EnumMemberDeclarationVisited; if (handler != null) handler (enumMemberDeclaration, data); return VisitChildren (enumMemberDeclaration, data); } public event Action UsingDeclarationVisited; S IAstVisitor.VisitUsingDeclaration (UsingDeclaration usingDeclaration, T data) { var handler = UsingDeclarationVisited; if (handler != null) handler (usingDeclaration, data); return VisitChildren (usingDeclaration, data); } public event Action UsingAliasDeclarationVisited; S IAstVisitor.VisitUsingAliasDeclaration (UsingAliasDeclaration usingDeclaration, T data) { var handler = UsingAliasDeclarationVisited; if (handler != null) handler (usingDeclaration, data); return VisitChildren (usingDeclaration, data); } public event Action ExternAliasDeclarationVisited; S IAstVisitor.VisitExternAliasDeclaration (ExternAliasDeclaration externAliasDeclaration, T data) { var handler = ExternAliasDeclarationVisited; if (handler != null) handler (externAliasDeclaration, data); return VisitChildren (externAliasDeclaration, data); } public event Action ConstructorDeclarationVisited; S IAstVisitor.VisitConstructorDeclaration (ConstructorDeclaration constructorDeclaration, T data) { var handler = ConstructorDeclarationVisited; if (handler != null) handler (constructorDeclaration, data); return VisitChildren (constructorDeclaration, data); } public event Action ConstructorInitializerVisited; S IAstVisitor.VisitConstructorInitializer (ConstructorInitializer constructorInitializer, T data) { var handler = ConstructorInitializerVisited; if (handler != null) handler (constructorInitializer, data); return VisitChildren (constructorInitializer, data); } public event Action DestructorDeclarationVisited; S IAstVisitor.VisitDestructorDeclaration (DestructorDeclaration destructorDeclaration, T data) { var handler = DestructorDeclarationVisited; if (handler != null) handler (destructorDeclaration, data); return VisitChildren (destructorDeclaration, data); } public event Action EventDeclarationVisited; S IAstVisitor.VisitEventDeclaration (EventDeclaration eventDeclaration, T data) { var handler = EventDeclarationVisited; if (handler != null) handler (eventDeclaration, data); return VisitChildren (eventDeclaration, data); } public event Action CustomEventDeclarationVisited; S IAstVisitor.VisitCustomEventDeclaration (CustomEventDeclaration eventDeclaration, T data) { var handler = CustomEventDeclarationVisited; if (handler != null) handler (eventDeclaration, data); return VisitChildren (eventDeclaration, data); } public event Action FieldDeclarationVisited; S IAstVisitor.VisitFieldDeclaration (FieldDeclaration fieldDeclaration, T data) { var handler = FieldDeclarationVisited; if (handler != null) handler (fieldDeclaration, data); return VisitChildren (fieldDeclaration, data); } public event Action FixedFieldDeclarationVisited; S IAstVisitor.VisitFixedFieldDeclaration (FixedFieldDeclaration fixedFieldDeclaration, T data) { var handler = FixedFieldDeclarationVisited; if (handler != null) handler (fixedFieldDeclaration, data); return VisitChildren (fixedFieldDeclaration, data); } public event Action FixedVariableInitializerVisited; S IAstVisitor.VisitFixedVariableInitializer (FixedVariableInitializer fixedVariableInitializer, T data) { var handler = FixedVariableInitializerVisited; if (handler != null) handler (fixedVariableInitializer, data); return VisitChildren (fixedVariableInitializer, data); } public event Action IndexerDeclarationVisited; S IAstVisitor.VisitIndexerDeclaration (IndexerDeclaration indexerDeclaration, T data) { var handler = IndexerDeclarationVisited; if (handler != null) handler (indexerDeclaration, data); return VisitChildren (indexerDeclaration, data); } public event Action MethodDeclarationVisited; S IAstVisitor.VisitMethodDeclaration (MethodDeclaration methodDeclaration, T data) { var handler = MethodDeclarationVisited; if (handler != null) handler (methodDeclaration, data); return VisitChildren (methodDeclaration, data); } public event Action OperatorDeclarationVisited; S IAstVisitor.VisitOperatorDeclaration (OperatorDeclaration operatorDeclaration, T data) { var handler = OperatorDeclarationVisited; if (handler != null) handler (operatorDeclaration, data); return VisitChildren (operatorDeclaration, data); } public event Action PropertyDeclarationVisited; S IAstVisitor.VisitPropertyDeclaration (PropertyDeclaration propertyDeclaration, T data) { var handler = PropertyDeclarationVisited; if (handler != null) handler (propertyDeclaration, data); return VisitChildren (propertyDeclaration, data); } public event Action AccessorVisited; S IAstVisitor.VisitAccessor (Accessor accessor, T data) { var handler = AccessorVisited; if (handler != null) handler (accessor, data); return VisitChildren (accessor, data); } public event Action VariableInitializerVisited; S IAstVisitor.VisitVariableInitializer (VariableInitializer variableInitializer, T data) { var handler = VariableInitializerVisited; if (handler != null) handler (variableInitializer, data); return VisitChildren (variableInitializer, data); } public event Action ParameterDeclarationVisited; S IAstVisitor.VisitParameterDeclaration (ParameterDeclaration parameterDeclaration, T data) { var handler = ParameterDeclarationVisited; if (handler != null) handler (parameterDeclaration, data); return VisitChildren (parameterDeclaration, data); } public event Action ConstraintVisited; S IAstVisitor.VisitConstraint (Constraint constraint, T data) { var handler = ConstraintVisited; if (handler != null) handler (constraint, data); return VisitChildren (constraint, data); } public event Action BlockStatementVisited; S IAstVisitor.VisitBlockStatement (BlockStatement blockStatement, T data) { var handler = BlockStatementVisited; if (handler != null) handler (blockStatement, data); return VisitChildren (blockStatement, data); } public event Action ExpressionStatementVisited; S IAstVisitor.VisitExpressionStatement (ExpressionStatement expressionStatement, T data) { var handler = ExpressionStatementVisited; if (handler != null) handler (expressionStatement, data); return VisitChildren (expressionStatement, data); } public event Action BreakStatementVisited; S IAstVisitor.VisitBreakStatement (BreakStatement breakStatement, T data) { var handler = BreakStatementVisited; if (handler != null) handler (breakStatement, data); return VisitChildren (breakStatement, data); } public event Action CheckedStatementVisited; S IAstVisitor.VisitCheckedStatement (CheckedStatement checkedStatement, T data) { var handler = CheckedStatementVisited; if (handler != null) handler (checkedStatement, data); return VisitChildren (checkedStatement, data); } public event Action ContinueStatementVisited; S IAstVisitor.VisitContinueStatement (ContinueStatement continueStatement, T data) { var handler = ContinueStatementVisited; if (handler != null) handler (continueStatement, data); return VisitChildren (continueStatement, data); } public event Action DoWhileStatementVisited; S IAstVisitor.VisitDoWhileStatement (DoWhileStatement doWhileStatement, T data) { var handler = DoWhileStatementVisited; if (handler != null) handler (doWhileStatement, data); return VisitChildren (doWhileStatement, data); } public event Action EmptyStatementVisited; S IAstVisitor.VisitEmptyStatement (EmptyStatement emptyStatement, T data) { var handler = EmptyStatementVisited; if (handler != null) handler (emptyStatement, data); return VisitChildren (emptyStatement, data); } public event Action FixedStatementVisited; S IAstVisitor.VisitFixedStatement (FixedStatement fixedStatement, T data) { var handler = FixedStatementVisited; if (handler != null) handler (fixedStatement, data); return VisitChildren (fixedStatement, data); } public event Action ForeachStatementVisited; S IAstVisitor.VisitForeachStatement (ForeachStatement foreachStatement, T data) { var handler = ForeachStatementVisited; if (handler != null) handler (foreachStatement, data); return VisitChildren (foreachStatement, data); } public event Action ForStatementVisited; S IAstVisitor.VisitForStatement (ForStatement forStatement, T data) { var handler = ForStatementVisited; if (handler != null) handler (forStatement, data); return VisitChildren (forStatement, data); } public event Action GotoCaseStatementVisited; S IAstVisitor.VisitGotoCaseStatement (GotoCaseStatement gotoCaseStatement, T data) { var handler = GotoCaseStatementVisited; if (handler != null) handler (gotoCaseStatement, data); return VisitChildren (gotoCaseStatement, data); } public event Action GotoDefaultStatementVisited; S IAstVisitor.VisitGotoDefaultStatement (GotoDefaultStatement gotoDefaultStatement, T data) { var handler = GotoDefaultStatementVisited; if (handler != null) handler (gotoDefaultStatement, data); return VisitChildren (gotoDefaultStatement, data); } public event Action GotoStatementVisited; S IAstVisitor.VisitGotoStatement (GotoStatement gotoStatement, T data) { var handler = GotoStatementVisited; if (handler != null) handler (gotoStatement, data); return VisitChildren (gotoStatement, data); } public event Action IfElseStatementVisited; S IAstVisitor.VisitIfElseStatement (IfElseStatement ifElseStatement, T data) { var handler = IfElseStatementVisited; if (handler != null) handler (ifElseStatement, data); return VisitChildren (ifElseStatement, data); } public event Action LabelStatementVisited; S IAstVisitor.VisitLabelStatement (LabelStatement labelStatement, T data) { var handler = LabelStatementVisited; if (handler != null) handler (labelStatement, data); return VisitChildren (labelStatement, data); } public event Action LockStatementVisited; S IAstVisitor.VisitLockStatement (LockStatement lockStatement, T data) { var handler = LockStatementVisited; if (handler != null) handler (lockStatement, data); return VisitChildren (lockStatement, data); } public event Action ReturnStatementVisited; S IAstVisitor.VisitReturnStatement (ReturnStatement returnStatement, T data) { var handler = ReturnStatementVisited; if (handler != null) handler (returnStatement, data); return VisitChildren (returnStatement, data); } public event Action SwitchStatementVisited; S IAstVisitor.VisitSwitchStatement (SwitchStatement switchStatement, T data) { var handler = SwitchStatementVisited; if (handler != null) handler (switchStatement, data); return VisitChildren (switchStatement, data); } public event Action SwitchSectionVisited; S IAstVisitor.VisitSwitchSection (SwitchSection switchSection, T data) { var handler = SwitchSectionVisited; if (handler != null) handler (switchSection, data); return VisitChildren (switchSection, data); } public event Action CaseLabelVisited; S IAstVisitor.VisitCaseLabel (CaseLabel caseLabel, T data) { var handler = CaseLabelVisited; if (handler != null) handler (caseLabel, data); return VisitChildren (caseLabel, data); } public event Action ThrowStatementVisited; S IAstVisitor.VisitThrowStatement (ThrowStatement throwStatement, T data) { var handler = ThrowStatementVisited; if (handler != null) handler (throwStatement, data); return VisitChildren (throwStatement, data); } public event Action TryCatchStatementVisited; S IAstVisitor.VisitTryCatchStatement (TryCatchStatement tryCatchStatement, T data) { var handler = TryCatchStatementVisited; if (handler != null) handler (tryCatchStatement, data); return VisitChildren (tryCatchStatement, data); } public event Action CatchClauseVisited; S IAstVisitor.VisitCatchClause (CatchClause catchClause, T data) { var handler = CatchClauseVisited; if (handler != null) handler (catchClause, data); return VisitChildren (catchClause, data); } public event Action UncheckedStatementVisited; S IAstVisitor.VisitUncheckedStatement (UncheckedStatement uncheckedStatement, T data) { var handler = UncheckedStatementVisited; if (handler != null) handler (uncheckedStatement, data); return VisitChildren (uncheckedStatement, data); } public event Action UnsafeStatementVisited; S IAstVisitor.VisitUnsafeStatement (UnsafeStatement unsafeStatement, T data) { var handler = UnsafeStatementVisited; if (handler != null) handler (unsafeStatement, data); return VisitChildren (unsafeStatement, data); } public event Action UsingStatementVisited; S IAstVisitor.VisitUsingStatement (UsingStatement usingStatement, T data) { var handler = UsingStatementVisited; if (handler != null) handler (usingStatement, data); return VisitChildren (usingStatement, data); } public event Action VariableDeclarationStatementVisited; S IAstVisitor.VisitVariableDeclarationStatement (VariableDeclarationStatement variableDeclarationStatement, T data) { var handler = VariableDeclarationStatementVisited; if (handler != null) handler (variableDeclarationStatement, data); return VisitChildren (variableDeclarationStatement, data); } public event Action WhileStatementVisited; S IAstVisitor.VisitWhileStatement (WhileStatement whileStatement, T data) { var handler = WhileStatementVisited; if (handler != null) handler (whileStatement, data); return VisitChildren (whileStatement, data); } public event Action YieldBreakStatementVisited; S IAstVisitor.VisitYieldBreakStatement (YieldBreakStatement yieldBreakStatement, T data) { var handler = YieldBreakStatementVisited; if (handler != null) handler (yieldBreakStatement, data); return VisitChildren (yieldBreakStatement, data); } public event Action YieldReturnStatementVisited; S IAstVisitor.VisitYieldReturnStatement (YieldReturnStatement yieldStatement, T data) { var handler = YieldReturnStatementVisited; if (handler != null) handler (yieldStatement, data); return VisitChildren (yieldStatement, data); } public event Action AnonymousMethodExpressionVisited; S IAstVisitor.VisitAnonymousMethodExpression (AnonymousMethodExpression anonymousMethodExpression, T data) { var handler = AnonymousMethodExpressionVisited; if (handler != null) handler (anonymousMethodExpression, data); return VisitChildren (anonymousMethodExpression, data); } public event Action LambdaExpressionVisited; S IAstVisitor.VisitLambdaExpression (LambdaExpression lambdaExpression, T data) { var handler = LambdaExpressionVisited; if (handler != null) handler (lambdaExpression, data); return VisitChildren (lambdaExpression, data); } public event Action AssignmentExpressionVisited; S IAstVisitor.VisitAssignmentExpression (AssignmentExpression assignmentExpression, T data) { var handler = AssignmentExpressionVisited; if (handler != null) handler (assignmentExpression, data); return VisitChildren (assignmentExpression, data); } public event Action BaseReferenceExpressionVisited; S IAstVisitor.VisitBaseReferenceExpression (BaseReferenceExpression baseReferenceExpression, T data) { var handler = BaseReferenceExpressionVisited; if (handler != null) handler (baseReferenceExpression, data); return VisitChildren (baseReferenceExpression, data); } public event Action BinaryOperatorExpressionVisited; S IAstVisitor.VisitBinaryOperatorExpression (BinaryOperatorExpression binaryOperatorExpression, T data) { var handler = BinaryOperatorExpressionVisited; if (handler != null) handler (binaryOperatorExpression, data); return VisitChildren (binaryOperatorExpression, data); } public event Action CastExpressionVisited; S IAstVisitor.VisitCastExpression (CastExpression castExpression, T data) { var handler = CastExpressionVisited; if (handler != null) handler (castExpression, data); return VisitChildren (castExpression, data); } public event Action CheckedExpressionVisited; S IAstVisitor.VisitCheckedExpression (CheckedExpression checkedExpression, T data) { var handler = CheckedExpressionVisited; if (handler != null) handler (checkedExpression, data); return VisitChildren (checkedExpression, data); } public event Action ConditionalExpressionVisited; S IAstVisitor.VisitConditionalExpression (ConditionalExpression conditionalExpression, T data) { var handler = ConditionalExpressionVisited; if (handler != null) handler (conditionalExpression, data); return VisitChildren (conditionalExpression, data); } public event Action IdentifierExpressionVisited; S IAstVisitor.VisitIdentifierExpression (IdentifierExpression identifierExpression, T data) { var handler = IdentifierExpressionVisited; if (handler != null) handler (identifierExpression, data); return VisitChildren (identifierExpression, data); } public event Action IndexerExpressionVisited; S IAstVisitor.VisitIndexerExpression (IndexerExpression indexerExpression, T data) { var handler = IndexerExpressionVisited; if (handler != null) handler (indexerExpression, data); return VisitChildren (indexerExpression, data); } public event Action InvocationExpressionVisited; S IAstVisitor.VisitInvocationExpression (InvocationExpression invocationExpression, T data) { var handler = InvocationExpressionVisited; if (handler != null) handler (invocationExpression, data); return VisitChildren (invocationExpression, data); } public event Action DirectionExpressionVisited; S IAstVisitor.VisitDirectionExpression (DirectionExpression directionExpression, T data) { var handler = DirectionExpressionVisited; if (handler != null) handler (directionExpression, data); return VisitChildren (directionExpression, data); } public event Action MemberReferenceExpressionVisited; S IAstVisitor.VisitMemberReferenceExpression (MemberReferenceExpression memberReferenceExpression, T data) { var handler = MemberReferenceExpressionVisited; if (handler != null) handler (memberReferenceExpression, data); return VisitChildren (memberReferenceExpression, data); } public event Action NullReferenceExpressionVisited; S IAstVisitor.VisitNullReferenceExpression (NullReferenceExpression nullReferenceExpression, T data) { var handler = NullReferenceExpressionVisited; if (handler != null) handler (nullReferenceExpression, data); return VisitChildren (nullReferenceExpression, data); } public event Action ObjectCreateExpressionVisited; S IAstVisitor.VisitObjectCreateExpression (ObjectCreateExpression objectCreateExpression, T data) { var handler = ObjectCreateExpressionVisited; if (handler != null) handler (objectCreateExpression, data); return VisitChildren (objectCreateExpression, data); } public event Action AnonymousTypeCreateExpressionVisited; S IAstVisitor.VisitAnonymousTypeCreateExpression (AnonymousTypeCreateExpression anonymousTypeCreateExpression, T data) { var handler = AnonymousTypeCreateExpressionVisited; if (handler != null) handler (anonymousTypeCreateExpression, data); return VisitChildren (anonymousTypeCreateExpression, data); } public event Action ArrayCreateExpressionVisited; S IAstVisitor.VisitArrayCreateExpression (ArrayCreateExpression arraySCreateExpression, T data) { var handler = ArrayCreateExpressionVisited; if (handler != null) handler (arraySCreateExpression, data); return VisitChildren (arraySCreateExpression, data); } public event Action ParenthesizedExpressionVisited; S IAstVisitor.VisitParenthesizedExpression (ParenthesizedExpression parenthesizedExpression, T data) { var handler = ParenthesizedExpressionVisited; if (handler != null) handler (parenthesizedExpression, data); return VisitChildren (parenthesizedExpression, data); } public event Action PointerReferenceExpressionVisited; S IAstVisitor.VisitPointerReferenceExpression (PointerReferenceExpression pointerReferenceExpression, T data) { var handler = PointerReferenceExpressionVisited; if (handler != null) handler (pointerReferenceExpression, data); return VisitChildren (pointerReferenceExpression, data); } public event Action PrimitiveExpressionVisited; S IAstVisitor.VisitPrimitiveExpression (PrimitiveExpression primitiveExpression, T data) { var handler = PrimitiveExpressionVisited; if (handler != null) handler (primitiveExpression, data); return VisitChildren (primitiveExpression, data); } public event Action SizeOfExpressionVisited; S IAstVisitor.VisitSizeOfExpression (SizeOfExpression sizeOfExpression, T data) { var handler = SizeOfExpressionVisited; if (handler != null) handler (sizeOfExpression, data); return VisitChildren (sizeOfExpression, data); } public event Action StackAllocExpressionVisited; S IAstVisitor.VisitStackAllocExpression (StackAllocExpression stackAllocExpression, T data) { var handler = StackAllocExpressionVisited; if (handler != null) handler (stackAllocExpression, data); return VisitChildren (stackAllocExpression, data); } public event Action ThisReferenceExpressionVisited; S IAstVisitor.VisitThisReferenceExpression (ThisReferenceExpression thisReferenceExpression, T data) { var handler = ThisReferenceExpressionVisited; if (handler != null) handler (thisReferenceExpression, data); return VisitChildren (thisReferenceExpression, data); } public event Action TypeOfExpressionVisited; S IAstVisitor.VisitTypeOfExpression (TypeOfExpression typeOfExpression, T data) { var handler = TypeOfExpressionVisited; if (handler != null) handler (typeOfExpression, data); return VisitChildren (typeOfExpression, data); } public event Action TypeReferenceExpressionVisited; S IAstVisitor.VisitTypeReferenceExpression (TypeReferenceExpression typeReferenceExpression, T data) { var handler = TypeReferenceExpressionVisited; if (handler != null) handler (typeReferenceExpression, data); return VisitChildren (typeReferenceExpression, data); } public event Action UnaryOperatorExpressionVisited; S IAstVisitor.VisitUnaryOperatorExpression (UnaryOperatorExpression unaryOperatorExpression, T data) { var handler = UnaryOperatorExpressionVisited; if (handler != null) handler (unaryOperatorExpression, data); return VisitChildren (unaryOperatorExpression, data); } public event Action UncheckedExpressionVisited; S IAstVisitor.VisitUncheckedExpression (UncheckedExpression uncheckedExpression, T data) { var handler = UncheckedExpressionVisited; if (handler != null) handler (uncheckedExpression, data); return VisitChildren (uncheckedExpression, data); } public event Action QueryExpressionVisited; S IAstVisitor.VisitQueryExpression (QueryExpression queryExpression, T data) { var handler = QueryExpressionVisited; if (handler != null) handler (queryExpression, data); return VisitChildren (queryExpression, data); } public event Action QueryContinuationClauseVisited; S IAstVisitor.VisitQueryContinuationClause (QueryContinuationClause queryContinuationClause, T data) { var handler = QueryContinuationClauseVisited; if (handler != null) handler (queryContinuationClause, data); return VisitChildren (queryContinuationClause, data); } public event Action QueryFromClauseVisited; S IAstVisitor.VisitQueryFromClause (QueryFromClause queryFromClause, T data) { var handler = QueryFromClauseVisited; if (handler != null) handler (queryFromClause, data); return VisitChildren (queryFromClause, data); } public event Action QueryLetClauseVisited; S IAstVisitor.VisitQueryLetClause (QueryLetClause queryLetClause, T data) { var handler = QueryLetClauseVisited; if (handler != null) handler (queryLetClause, data); return VisitChildren (queryLetClause, data); } public event Action QueryWhereClauseVisited; S IAstVisitor.VisitQueryWhereClause (QueryWhereClause queryWhereClause, T data) { var handler = QueryWhereClauseVisited; if (handler != null) handler (queryWhereClause, data); return VisitChildren (queryWhereClause, data); } public event Action QueryJoinClauseVisited; S IAstVisitor.VisitQueryJoinClause (QueryJoinClause queryJoinClause, T data) { var handler = QueryJoinClauseVisited; if (handler != null) handler (queryJoinClause, data); return VisitChildren (queryJoinClause, data); } public event Action QueryOrderClauseVisited; S IAstVisitor.VisitQueryOrderClause (QueryOrderClause queryOrderClause, T data) { var handler = QueryOrderClauseVisited; if (handler != null) handler (queryOrderClause, data); return VisitChildren (queryOrderClause, data); } public event Action QueryOrderingVisited; S IAstVisitor.VisitQueryOrdering (QueryOrdering queryOrdering, T data) { var handler = QueryOrderingVisited; if (handler != null) handler (queryOrdering, data); return VisitChildren (queryOrdering, data); } public event Action QuerySelectClauseVisited; S IAstVisitor.VisitQuerySelectClause (QuerySelectClause querySelectClause, T data) { var handler = QuerySelectClauseVisited; if (handler != null) handler (querySelectClause, data); return VisitChildren (querySelectClause, data); } public event Action QueryGroupClauseVisited; S IAstVisitor.VisitQueryGroupClause (QueryGroupClause queryGroupClause, T data) { var handler = QueryGroupClauseVisited; if (handler != null) handler (queryGroupClause, data); return VisitChildren (queryGroupClause, data); } public event Action AsExpressionVisited; S IAstVisitor.VisitAsExpression (AsExpression asExpression, T data) { var handler = AsExpressionVisited; if (handler != null) handler (asExpression, data); return VisitChildren (asExpression, data); } public event Action IsExpressionVisited; S IAstVisitor.VisitIsExpression (IsExpression isExpression, T data) { var handler = IsExpressionVisited; if (handler != null) handler (isExpression, data); return VisitChildren (isExpression, data); } public event Action DefaultValueExpressionVisited; S IAstVisitor.VisitDefaultValueExpression (DefaultValueExpression defaultValueExpression, T data) { var handler = DefaultValueExpressionVisited; if (handler != null) handler (defaultValueExpression, data); return VisitChildren (defaultValueExpression, data); } public event Action UndocumentedExpressionVisited; S IAstVisitor.VisitUndocumentedExpression (UndocumentedExpression undocumentedExpression, T data) { var handler = UndocumentedExpressionVisited; if (handler != null) handler (undocumentedExpression, data); return VisitChildren (undocumentedExpression, data); } public event Action ArrayInitializerExpressionVisited; S IAstVisitor.VisitArrayInitializerExpression (ArrayInitializerExpression arrayInitializerExpression, T data) { var handler = ArrayInitializerExpressionVisited; if (handler != null) handler (arrayInitializerExpression, data); return VisitChildren (arrayInitializerExpression, data); } public event Action ArraySpecifierVisited; S IAstVisitor.VisitArraySpecifier (ArraySpecifier arraySpecifier, T data) { var handler = ArraySpecifierVisited; if (handler != null) handler (arraySpecifier, data); return VisitChildren (arraySpecifier, data); } public event Action NamedArgumentExpressionVisited; S IAstVisitor.VisitNamedArgumentExpression (NamedArgumentExpression namedArgumentExpression, T data) { var handler = NamedArgumentExpressionVisited; if (handler != null) handler (namedArgumentExpression, data); return VisitChildren (namedArgumentExpression, data); } public event Action NamedExpressionVisited; S IAstVisitor.VisitNamedExpression (NamedExpression namedExpression, T data) { var handler = NamedExpressionVisited; if (handler != null) handler (namedExpression, data); return VisitChildren (namedExpression, data); } public event Action EmptyExpressionVisited; S IAstVisitor.VisitEmptyExpression (EmptyExpression emptyExpression, T data) { var handler = EmptyExpressionVisited; if (handler != null) handler (emptyExpression, data); return VisitChildren (emptyExpression, data); } S IAstVisitor.VisitPatternPlaceholder (AstNode placeholder, PatternMatching.Pattern pattern, T data) { return VisitChildren (placeholder, data); } } }