mirror of https://github.com/icsharpcode/ILSpy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2061 lines
57 KiB
2061 lines
57 KiB
// |
|
// IAstVisitor.cs |
|
// |
|
// Author: |
|
// Mike Krüger <mkrueger@novell.com> |
|
// |
|
// Copyright (c) 2010 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. |
|
|
|
|
|
namespace ICSharpCode.Decompiler.CSharp.Syntax |
|
{ |
|
/// <summary> |
|
/// AST visitor with a default implementation that visits all node depth-first. |
|
/// </summary> |
|
public abstract class DepthFirstAstVisitor : IAstVisitor |
|
{ |
|
protected virtual void VisitChildren(AstNode node) |
|
{ |
|
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); |
|
} |
|
} |
|
|
|
public virtual void VisitNullNode(AstNode nullNode) |
|
{ |
|
// Should we call VisitChildren here? |
|
// We usually want to ignore null nodes. |
|
// Older NR versions (before VisitNullNode was introduced) didn't call VisitChildren() with null nodes; |
|
// so changing this might break VisitChildren() overrides that expect the node to be part of the AST. |
|
} |
|
|
|
public virtual void VisitSyntaxTree(SyntaxTree syntaxTree) |
|
{ |
|
VisitChildren(syntaxTree); |
|
} |
|
|
|
public virtual void VisitComment(Comment comment) |
|
{ |
|
VisitChildren(comment); |
|
} |
|
|
|
public virtual void VisitDocumentationReference(DocumentationReference documentationReference) |
|
{ |
|
VisitChildren(documentationReference); |
|
} |
|
|
|
public virtual void VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective) |
|
{ |
|
VisitChildren(preProcessorDirective); |
|
} |
|
|
|
public virtual void VisitIdentifier(Identifier identifier) |
|
{ |
|
VisitChildren(identifier); |
|
} |
|
|
|
public virtual void VisitCSharpTokenNode(CSharpTokenNode token) |
|
{ |
|
VisitChildren(token); |
|
} |
|
|
|
public virtual void VisitPrimitiveType(PrimitiveType primitiveType) |
|
{ |
|
VisitChildren(primitiveType); |
|
} |
|
|
|
public virtual void VisitComposedType(ComposedType composedType) |
|
{ |
|
VisitChildren(composedType); |
|
} |
|
|
|
public virtual void VisitSimpleType(SimpleType simpleType) |
|
{ |
|
VisitChildren(simpleType); |
|
} |
|
|
|
public virtual void VisitMemberType(MemberType memberType) |
|
{ |
|
VisitChildren(memberType); |
|
} |
|
|
|
public virtual void VisitTupleType(TupleAstType tupleType) |
|
{ |
|
VisitChildren(tupleType); |
|
} |
|
|
|
public virtual void VisitTupleTypeElement(TupleTypeElement tupleTypeElement) |
|
{ |
|
VisitChildren(tupleTypeElement); |
|
} |
|
|
|
public virtual void VisitFunctionPointerType(FunctionPointerAstType functionPointerType) |
|
{ |
|
VisitChildren(functionPointerType); |
|
} |
|
|
|
public virtual void VisitInvocationType(InvocationAstType invocationType) |
|
{ |
|
VisitChildren(invocationType); |
|
} |
|
|
|
public virtual void VisitAttribute(Attribute attribute) |
|
{ |
|
VisitChildren(attribute); |
|
} |
|
|
|
public virtual void VisitAttributeSection(AttributeSection attributeSection) |
|
{ |
|
VisitChildren(attributeSection); |
|
} |
|
|
|
public virtual void VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration) |
|
{ |
|
VisitChildren(delegateDeclaration); |
|
} |
|
|
|
public virtual void VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration) |
|
{ |
|
VisitChildren(namespaceDeclaration); |
|
} |
|
|
|
public virtual void VisitTypeDeclaration(TypeDeclaration typeDeclaration) |
|
{ |
|
VisitChildren(typeDeclaration); |
|
} |
|
|
|
public virtual void VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration) |
|
{ |
|
VisitChildren(typeParameterDeclaration); |
|
} |
|
|
|
public virtual void VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration) |
|
{ |
|
VisitChildren(enumMemberDeclaration); |
|
} |
|
|
|
public virtual void VisitUsingDeclaration(UsingDeclaration usingDeclaration) |
|
{ |
|
VisitChildren(usingDeclaration); |
|
} |
|
|
|
public virtual void VisitUsingAliasDeclaration(UsingAliasDeclaration usingDeclaration) |
|
{ |
|
VisitChildren(usingDeclaration); |
|
} |
|
|
|
public virtual void VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration) |
|
{ |
|
VisitChildren(externAliasDeclaration); |
|
} |
|
|
|
public virtual void VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration) |
|
{ |
|
VisitChildren(constructorDeclaration); |
|
} |
|
|
|
public virtual void VisitConstructorInitializer(ConstructorInitializer constructorInitializer) |
|
{ |
|
VisitChildren(constructorInitializer); |
|
} |
|
|
|
public virtual void VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration) |
|
{ |
|
VisitChildren(destructorDeclaration); |
|
} |
|
|
|
public virtual void VisitEventDeclaration(EventDeclaration eventDeclaration) |
|
{ |
|
VisitChildren(eventDeclaration); |
|
} |
|
|
|
public virtual void VisitCustomEventDeclaration(CustomEventDeclaration eventDeclaration) |
|
{ |
|
VisitChildren(eventDeclaration); |
|
} |
|
|
|
public virtual void VisitFieldDeclaration(FieldDeclaration fieldDeclaration) |
|
{ |
|
VisitChildren(fieldDeclaration); |
|
} |
|
|
|
public virtual void VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration) |
|
{ |
|
VisitChildren(fixedFieldDeclaration); |
|
} |
|
|
|
public virtual void VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer) |
|
{ |
|
VisitChildren(fixedVariableInitializer); |
|
} |
|
|
|
public virtual void VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration) |
|
{ |
|
VisitChildren(indexerDeclaration); |
|
} |
|
|
|
public virtual void VisitMethodDeclaration(MethodDeclaration methodDeclaration) |
|
{ |
|
VisitChildren(methodDeclaration); |
|
} |
|
|
|
public virtual void VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration) |
|
{ |
|
VisitChildren(operatorDeclaration); |
|
} |
|
|
|
public virtual void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration) |
|
{ |
|
VisitChildren(propertyDeclaration); |
|
} |
|
|
|
public virtual void VisitAccessor(Accessor accessor) |
|
{ |
|
VisitChildren(accessor); |
|
} |
|
|
|
public virtual void VisitVariableInitializer(VariableInitializer variableInitializer) |
|
{ |
|
VisitChildren(variableInitializer); |
|
} |
|
|
|
public virtual void VisitParameterDeclaration(ParameterDeclaration parameterDeclaration) |
|
{ |
|
VisitChildren(parameterDeclaration); |
|
} |
|
|
|
public virtual void VisitConstraint(Constraint constraint) |
|
{ |
|
VisitChildren(constraint); |
|
} |
|
|
|
public virtual void VisitBlockStatement(BlockStatement blockStatement) |
|
{ |
|
VisitChildren(blockStatement); |
|
} |
|
|
|
public virtual void VisitExpressionStatement(ExpressionStatement expressionStatement) |
|
{ |
|
VisitChildren(expressionStatement); |
|
} |
|
|
|
public virtual void VisitBreakStatement(BreakStatement breakStatement) |
|
{ |
|
VisitChildren(breakStatement); |
|
} |
|
|
|
public virtual void VisitCheckedStatement(CheckedStatement checkedStatement) |
|
{ |
|
VisitChildren(checkedStatement); |
|
} |
|
|
|
public virtual void VisitContinueStatement(ContinueStatement continueStatement) |
|
{ |
|
VisitChildren(continueStatement); |
|
} |
|
|
|
public virtual void VisitDoWhileStatement(DoWhileStatement doWhileStatement) |
|
{ |
|
VisitChildren(doWhileStatement); |
|
} |
|
|
|
public virtual void VisitEmptyStatement(EmptyStatement emptyStatement) |
|
{ |
|
VisitChildren(emptyStatement); |
|
} |
|
|
|
public virtual void VisitFixedStatement(FixedStatement fixedStatement) |
|
{ |
|
VisitChildren(fixedStatement); |
|
} |
|
|
|
public virtual void VisitForeachStatement(ForeachStatement foreachStatement) |
|
{ |
|
VisitChildren(foreachStatement); |
|
} |
|
|
|
public virtual void VisitForStatement(ForStatement forStatement) |
|
{ |
|
VisitChildren(forStatement); |
|
} |
|
|
|
public virtual void VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement) |
|
{ |
|
VisitChildren(gotoCaseStatement); |
|
} |
|
|
|
public virtual void VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement) |
|
{ |
|
VisitChildren(gotoDefaultStatement); |
|
} |
|
|
|
public virtual void VisitGotoStatement(GotoStatement gotoStatement) |
|
{ |
|
VisitChildren(gotoStatement); |
|
} |
|
|
|
public virtual void VisitIfElseStatement(IfElseStatement ifElseStatement) |
|
{ |
|
VisitChildren(ifElseStatement); |
|
} |
|
|
|
public virtual void VisitLabelStatement(LabelStatement labelStatement) |
|
{ |
|
VisitChildren(labelStatement); |
|
} |
|
|
|
public virtual void VisitLockStatement(LockStatement lockStatement) |
|
{ |
|
VisitChildren(lockStatement); |
|
} |
|
|
|
public virtual void VisitReturnStatement(ReturnStatement returnStatement) |
|
{ |
|
VisitChildren(returnStatement); |
|
} |
|
|
|
public virtual void VisitSwitchStatement(SwitchStatement switchStatement) |
|
{ |
|
VisitChildren(switchStatement); |
|
} |
|
|
|
public virtual void VisitSwitchSection(SwitchSection switchSection) |
|
{ |
|
VisitChildren(switchSection); |
|
} |
|
|
|
public virtual void VisitCaseLabel(CaseLabel caseLabel) |
|
{ |
|
VisitChildren(caseLabel); |
|
} |
|
|
|
public virtual void VisitSwitchExpression(SwitchExpression switchExpression) |
|
{ |
|
VisitChildren(switchExpression); |
|
} |
|
|
|
public virtual void VisitSwitchExpressionSection(SwitchExpressionSection switchExpressionSection) |
|
{ |
|
VisitChildren(switchExpressionSection); |
|
} |
|
|
|
public virtual void VisitThrowStatement(ThrowStatement throwStatement) |
|
{ |
|
VisitChildren(throwStatement); |
|
} |
|
|
|
public virtual void VisitTryCatchStatement(TryCatchStatement tryCatchStatement) |
|
{ |
|
VisitChildren(tryCatchStatement); |
|
} |
|
|
|
public virtual void VisitCatchClause(CatchClause catchClause) |
|
{ |
|
VisitChildren(catchClause); |
|
} |
|
|
|
public virtual void VisitUncheckedStatement(UncheckedStatement uncheckedStatement) |
|
{ |
|
VisitChildren(uncheckedStatement); |
|
} |
|
|
|
public virtual void VisitUnsafeStatement(UnsafeStatement unsafeStatement) |
|
{ |
|
VisitChildren(unsafeStatement); |
|
} |
|
|
|
public virtual void VisitUsingStatement(UsingStatement usingStatement) |
|
{ |
|
VisitChildren(usingStatement); |
|
} |
|
|
|
public virtual void VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement) |
|
{ |
|
VisitChildren(variableDeclarationStatement); |
|
} |
|
|
|
public virtual void VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatement localFunctionDeclarationStatement) |
|
{ |
|
VisitChildren(localFunctionDeclarationStatement); |
|
} |
|
|
|
public virtual void VisitWhileStatement(WhileStatement whileStatement) |
|
{ |
|
VisitChildren(whileStatement); |
|
} |
|
|
|
public virtual void VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement) |
|
{ |
|
VisitChildren(yieldBreakStatement); |
|
} |
|
|
|
public virtual void VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement) |
|
{ |
|
VisitChildren(yieldReturnStatement); |
|
} |
|
|
|
public virtual void VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression) |
|
{ |
|
VisitChildren(anonymousMethodExpression); |
|
} |
|
|
|
public virtual void VisitLambdaExpression(LambdaExpression lambdaExpression) |
|
{ |
|
VisitChildren(lambdaExpression); |
|
} |
|
|
|
public virtual void VisitAssignmentExpression(AssignmentExpression assignmentExpression) |
|
{ |
|
VisitChildren(assignmentExpression); |
|
} |
|
|
|
public virtual void VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression) |
|
{ |
|
VisitChildren(baseReferenceExpression); |
|
} |
|
|
|
public virtual void VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression) |
|
{ |
|
VisitChildren(binaryOperatorExpression); |
|
} |
|
|
|
public virtual void VisitCastExpression(CastExpression castExpression) |
|
{ |
|
VisitChildren(castExpression); |
|
} |
|
|
|
public virtual void VisitCheckedExpression(CheckedExpression checkedExpression) |
|
{ |
|
VisitChildren(checkedExpression); |
|
} |
|
|
|
public virtual void VisitConditionalExpression(ConditionalExpression conditionalExpression) |
|
{ |
|
VisitChildren(conditionalExpression); |
|
} |
|
|
|
public virtual void VisitIdentifierExpression(IdentifierExpression identifierExpression) |
|
{ |
|
VisitChildren(identifierExpression); |
|
} |
|
|
|
public virtual void VisitIndexerExpression(IndexerExpression indexerExpression) |
|
{ |
|
VisitChildren(indexerExpression); |
|
} |
|
|
|
public virtual void VisitInterpolatedStringExpression(InterpolatedStringExpression interpolatedStringExpression) |
|
{ |
|
VisitChildren(interpolatedStringExpression); |
|
} |
|
|
|
public virtual void VisitInterpolation(Interpolation interpolation) |
|
{ |
|
VisitChildren(interpolation); |
|
} |
|
|
|
public virtual void VisitInterpolatedStringText(InterpolatedStringText interpolatedStringText) |
|
{ |
|
VisitChildren(interpolatedStringText); |
|
} |
|
|
|
public virtual void VisitInvocationExpression(InvocationExpression invocationExpression) |
|
{ |
|
VisitChildren(invocationExpression); |
|
} |
|
|
|
public virtual void VisitDirectionExpression(DirectionExpression directionExpression) |
|
{ |
|
VisitChildren(directionExpression); |
|
} |
|
|
|
public virtual void VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression) |
|
{ |
|
VisitChildren(memberReferenceExpression); |
|
} |
|
|
|
public virtual void VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression) |
|
{ |
|
VisitChildren(nullReferenceExpression); |
|
} |
|
|
|
public virtual void VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression) |
|
{ |
|
VisitChildren(objectCreateExpression); |
|
} |
|
|
|
public virtual void VisitDeclarationExpression(DeclarationExpression declarationExpression) |
|
{ |
|
VisitChildren(declarationExpression); |
|
} |
|
|
|
public virtual void VisitOutVarDeclarationExpression(OutVarDeclarationExpression outVarDeclarationExpression) |
|
{ |
|
VisitChildren(outVarDeclarationExpression); |
|
} |
|
|
|
public virtual void VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression) |
|
{ |
|
VisitChildren(anonymousTypeCreateExpression); |
|
} |
|
|
|
public virtual void VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression) |
|
{ |
|
VisitChildren(arrayCreateExpression); |
|
} |
|
|
|
public virtual void VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression) |
|
{ |
|
VisitChildren(parenthesizedExpression); |
|
} |
|
|
|
public virtual void VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression) |
|
{ |
|
VisitChildren(pointerReferenceExpression); |
|
} |
|
|
|
public virtual void VisitPrimitiveExpression(PrimitiveExpression primitiveExpression) |
|
{ |
|
VisitChildren(primitiveExpression); |
|
} |
|
|
|
public virtual void VisitSizeOfExpression(SizeOfExpression sizeOfExpression) |
|
{ |
|
VisitChildren(sizeOfExpression); |
|
} |
|
|
|
public virtual void VisitStackAllocExpression(StackAllocExpression stackAllocExpression) |
|
{ |
|
VisitChildren(stackAllocExpression); |
|
} |
|
|
|
public virtual void VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression) |
|
{ |
|
VisitChildren(thisReferenceExpression); |
|
} |
|
|
|
public virtual void VisitThrowExpression(ThrowExpression throwExpression) |
|
{ |
|
VisitChildren(throwExpression); |
|
} |
|
|
|
public virtual void VisitTupleExpression(TupleExpression tupleExpression) |
|
{ |
|
VisitChildren(tupleExpression); |
|
} |
|
|
|
public virtual void VisitTypeOfExpression(TypeOfExpression typeOfExpression) |
|
{ |
|
VisitChildren(typeOfExpression); |
|
} |
|
|
|
public virtual void VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression) |
|
{ |
|
VisitChildren(typeReferenceExpression); |
|
} |
|
|
|
public virtual void VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression) |
|
{ |
|
VisitChildren(unaryOperatorExpression); |
|
} |
|
|
|
public virtual void VisitUncheckedExpression(UncheckedExpression uncheckedExpression) |
|
{ |
|
VisitChildren(uncheckedExpression); |
|
} |
|
|
|
public virtual void VisitQueryExpression(QueryExpression queryExpression) |
|
{ |
|
VisitChildren(queryExpression); |
|
} |
|
|
|
public virtual void VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause) |
|
{ |
|
VisitChildren(queryContinuationClause); |
|
} |
|
|
|
public virtual void VisitQueryFromClause(QueryFromClause queryFromClause) |
|
{ |
|
VisitChildren(queryFromClause); |
|
} |
|
|
|
public virtual void VisitQueryLetClause(QueryLetClause queryLetClause) |
|
{ |
|
VisitChildren(queryLetClause); |
|
} |
|
|
|
public virtual void VisitQueryWhereClause(QueryWhereClause queryWhereClause) |
|
{ |
|
VisitChildren(queryWhereClause); |
|
} |
|
|
|
public virtual void VisitQueryJoinClause(QueryJoinClause queryJoinClause) |
|
{ |
|
VisitChildren(queryJoinClause); |
|
} |
|
|
|
public virtual void VisitQueryOrderClause(QueryOrderClause queryOrderClause) |
|
{ |
|
VisitChildren(queryOrderClause); |
|
} |
|
|
|
public virtual void VisitQueryOrdering(QueryOrdering queryOrdering) |
|
{ |
|
VisitChildren(queryOrdering); |
|
} |
|
|
|
public virtual void VisitQuerySelectClause(QuerySelectClause querySelectClause) |
|
{ |
|
VisitChildren(querySelectClause); |
|
} |
|
|
|
public virtual void VisitQueryGroupClause(QueryGroupClause queryGroupClause) |
|
{ |
|
VisitChildren(queryGroupClause); |
|
} |
|
|
|
public virtual void VisitAsExpression(AsExpression asExpression) |
|
{ |
|
VisitChildren(asExpression); |
|
} |
|
|
|
public virtual void VisitIsExpression(IsExpression isExpression) |
|
{ |
|
VisitChildren(isExpression); |
|
} |
|
|
|
public virtual void VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression) |
|
{ |
|
VisitChildren(defaultValueExpression); |
|
} |
|
|
|
public virtual void VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression) |
|
{ |
|
VisitChildren(undocumentedExpression); |
|
} |
|
|
|
public virtual void VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression) |
|
{ |
|
VisitChildren(arrayInitializerExpression); |
|
} |
|
|
|
public virtual void VisitArraySpecifier(ArraySpecifier arraySpecifier) |
|
{ |
|
VisitChildren(arraySpecifier); |
|
} |
|
|
|
public virtual void VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression) |
|
{ |
|
VisitChildren(namedArgumentExpression); |
|
} |
|
|
|
public virtual void VisitNamedExpression(NamedExpression namedExpression) |
|
{ |
|
VisitChildren(namedExpression); |
|
} |
|
|
|
public virtual void VisitSingleVariableDesignation(SingleVariableDesignation singleVariableDesignation) |
|
{ |
|
VisitChildren(singleVariableDesignation); |
|
} |
|
|
|
public virtual void VisitParenthesizedVariableDesignation(ParenthesizedVariableDesignation parenthesizedVariableDesignation) |
|
{ |
|
VisitChildren(parenthesizedVariableDesignation); |
|
} |
|
|
|
public virtual void VisitErrorNode(AstNode errorNode) |
|
{ |
|
VisitChildren(errorNode); |
|
} |
|
|
|
public virtual void VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern) |
|
{ |
|
VisitChildren(placeholder); |
|
} |
|
|
|
public virtual void VisitWithInitializerExpression(WithInitializerExpression withInitializerExpression) |
|
{ |
|
VisitChildren(withInitializerExpression); |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// AST visitor with a default implementation that visits all node depth-first. |
|
/// </summary> |
|
public abstract class DepthFirstAstVisitor<T> : IAstVisitor<T> |
|
{ |
|
protected virtual T VisitChildren(AstNode node) |
|
{ |
|
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); |
|
} |
|
return default(T); |
|
} |
|
|
|
public virtual T VisitNullNode(AstNode nullNode) |
|
{ |
|
// Should we call VisitChildren here? |
|
// We usually want to ignore null nodes. |
|
// Older NR versions (before VisitNullNode was introduced) didn't call VisitChildren() with null nodes; |
|
// so changing this might break VisitChildren() overrides that expect the node to be part of the AST. |
|
return default(T); |
|
} |
|
|
|
public virtual T VisitSyntaxTree(SyntaxTree unit) |
|
{ |
|
return VisitChildren(unit); |
|
} |
|
|
|
public virtual T VisitComment(Comment comment) |
|
{ |
|
return VisitChildren(comment); |
|
} |
|
|
|
public virtual T VisitDocumentationReference(DocumentationReference documentationReference) |
|
{ |
|
return VisitChildren(documentationReference); |
|
} |
|
|
|
public virtual T VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective) |
|
{ |
|
return VisitChildren(preProcessorDirective); |
|
} |
|
|
|
public virtual T VisitIdentifier(Identifier identifier) |
|
{ |
|
return VisitChildren(identifier); |
|
} |
|
|
|
public virtual T VisitCSharpTokenNode(CSharpTokenNode token) |
|
{ |
|
return VisitChildren(token); |
|
} |
|
|
|
public virtual T VisitPrimitiveType(PrimitiveType primitiveType) |
|
{ |
|
return VisitChildren(primitiveType); |
|
} |
|
|
|
public virtual T VisitComposedType(ComposedType composedType) |
|
{ |
|
return VisitChildren(composedType); |
|
} |
|
|
|
public virtual T VisitSimpleType(SimpleType simpleType) |
|
{ |
|
return VisitChildren(simpleType); |
|
} |
|
|
|
public virtual T VisitMemberType(MemberType memberType) |
|
{ |
|
return VisitChildren(memberType); |
|
} |
|
|
|
public virtual T VisitTupleType(TupleAstType tupleType) |
|
{ |
|
return VisitChildren(tupleType); |
|
} |
|
|
|
public virtual T VisitTupleTypeElement(TupleTypeElement tupleTypeElement) |
|
{ |
|
return VisitChildren(tupleTypeElement); |
|
} |
|
|
|
public virtual T VisitFunctionPointerType(FunctionPointerAstType functionPointerType) |
|
{ |
|
return VisitChildren(functionPointerType); |
|
} |
|
|
|
public virtual T VisitInvocationType(InvocationAstType invocationType) |
|
{ |
|
return VisitChildren(invocationType); |
|
} |
|
|
|
public virtual T VisitAttribute(Attribute attribute) |
|
{ |
|
return VisitChildren(attribute); |
|
} |
|
|
|
public virtual T VisitAttributeSection(AttributeSection attributeSection) |
|
{ |
|
return VisitChildren(attributeSection); |
|
} |
|
|
|
public virtual T VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration) |
|
{ |
|
return VisitChildren(delegateDeclaration); |
|
} |
|
|
|
public virtual T VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration) |
|
{ |
|
return VisitChildren(namespaceDeclaration); |
|
} |
|
|
|
public virtual T VisitTypeDeclaration(TypeDeclaration typeDeclaration) |
|
{ |
|
return VisitChildren(typeDeclaration); |
|
} |
|
|
|
public virtual T VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration) |
|
{ |
|
return VisitChildren(typeParameterDeclaration); |
|
} |
|
|
|
public virtual T VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration) |
|
{ |
|
return VisitChildren(enumMemberDeclaration); |
|
} |
|
|
|
public virtual T VisitUsingDeclaration(UsingDeclaration usingDeclaration) |
|
{ |
|
return VisitChildren(usingDeclaration); |
|
} |
|
|
|
public virtual T VisitUsingAliasDeclaration(UsingAliasDeclaration usingDeclaration) |
|
{ |
|
return VisitChildren(usingDeclaration); |
|
} |
|
|
|
public virtual T VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration) |
|
{ |
|
return VisitChildren(externAliasDeclaration); |
|
} |
|
|
|
public virtual T VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration) |
|
{ |
|
return VisitChildren(constructorDeclaration); |
|
} |
|
|
|
public virtual T VisitConstructorInitializer(ConstructorInitializer constructorInitializer) |
|
{ |
|
return VisitChildren(constructorInitializer); |
|
} |
|
|
|
public virtual T VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration) |
|
{ |
|
return VisitChildren(destructorDeclaration); |
|
} |
|
|
|
public virtual T VisitEventDeclaration(EventDeclaration eventDeclaration) |
|
{ |
|
return VisitChildren(eventDeclaration); |
|
} |
|
|
|
public virtual T VisitCustomEventDeclaration(CustomEventDeclaration eventDeclaration) |
|
{ |
|
return VisitChildren(eventDeclaration); |
|
} |
|
|
|
public virtual T VisitFieldDeclaration(FieldDeclaration fieldDeclaration) |
|
{ |
|
return VisitChildren(fieldDeclaration); |
|
} |
|
|
|
public virtual T VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration) |
|
{ |
|
return VisitChildren(fixedFieldDeclaration); |
|
} |
|
|
|
public virtual T VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer) |
|
{ |
|
return VisitChildren(fixedVariableInitializer); |
|
} |
|
|
|
public virtual T VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration) |
|
{ |
|
return VisitChildren(indexerDeclaration); |
|
} |
|
|
|
public virtual T VisitMethodDeclaration(MethodDeclaration methodDeclaration) |
|
{ |
|
return VisitChildren(methodDeclaration); |
|
} |
|
|
|
public virtual T VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration) |
|
{ |
|
return VisitChildren(operatorDeclaration); |
|
} |
|
|
|
public virtual T VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration) |
|
{ |
|
return VisitChildren(propertyDeclaration); |
|
} |
|
|
|
public virtual T VisitAccessor(Accessor accessor) |
|
{ |
|
return VisitChildren(accessor); |
|
} |
|
|
|
public virtual T VisitVariableInitializer(VariableInitializer variableInitializer) |
|
{ |
|
return VisitChildren(variableInitializer); |
|
} |
|
|
|
public virtual T VisitParameterDeclaration(ParameterDeclaration parameterDeclaration) |
|
{ |
|
return VisitChildren(parameterDeclaration); |
|
} |
|
|
|
public virtual T VisitConstraint(Constraint constraint) |
|
{ |
|
return VisitChildren(constraint); |
|
} |
|
|
|
public virtual T VisitBlockStatement(BlockStatement blockStatement) |
|
{ |
|
return VisitChildren(blockStatement); |
|
} |
|
|
|
public virtual T VisitExpressionStatement(ExpressionStatement expressionStatement) |
|
{ |
|
return VisitChildren(expressionStatement); |
|
} |
|
|
|
public virtual T VisitBreakStatement(BreakStatement breakStatement) |
|
{ |
|
return VisitChildren(breakStatement); |
|
} |
|
|
|
public virtual T VisitCheckedStatement(CheckedStatement checkedStatement) |
|
{ |
|
return VisitChildren(checkedStatement); |
|
} |
|
|
|
public virtual T VisitContinueStatement(ContinueStatement continueStatement) |
|
{ |
|
return VisitChildren(continueStatement); |
|
} |
|
|
|
public virtual T VisitDoWhileStatement(DoWhileStatement doWhileStatement) |
|
{ |
|
return VisitChildren(doWhileStatement); |
|
} |
|
|
|
public virtual T VisitEmptyStatement(EmptyStatement emptyStatement) |
|
{ |
|
return VisitChildren(emptyStatement); |
|
} |
|
|
|
public virtual T VisitFixedStatement(FixedStatement fixedStatement) |
|
{ |
|
return VisitChildren(fixedStatement); |
|
} |
|
|
|
public virtual T VisitForeachStatement(ForeachStatement foreachStatement) |
|
{ |
|
return VisitChildren(foreachStatement); |
|
} |
|
|
|
public virtual T VisitForStatement(ForStatement forStatement) |
|
{ |
|
return VisitChildren(forStatement); |
|
} |
|
|
|
public virtual T VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement) |
|
{ |
|
return VisitChildren(gotoCaseStatement); |
|
} |
|
|
|
public virtual T VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement) |
|
{ |
|
return VisitChildren(gotoDefaultStatement); |
|
} |
|
|
|
public virtual T VisitGotoStatement(GotoStatement gotoStatement) |
|
{ |
|
return VisitChildren(gotoStatement); |
|
} |
|
|
|
public virtual T VisitIfElseStatement(IfElseStatement ifElseStatement) |
|
{ |
|
return VisitChildren(ifElseStatement); |
|
} |
|
|
|
public virtual T VisitLabelStatement(LabelStatement labelStatement) |
|
{ |
|
return VisitChildren(labelStatement); |
|
} |
|
|
|
public virtual T VisitLockStatement(LockStatement lockStatement) |
|
{ |
|
return VisitChildren(lockStatement); |
|
} |
|
|
|
public virtual T VisitReturnStatement(ReturnStatement returnStatement) |
|
{ |
|
return VisitChildren(returnStatement); |
|
} |
|
|
|
public virtual T VisitSwitchStatement(SwitchStatement switchStatement) |
|
{ |
|
return VisitChildren(switchStatement); |
|
} |
|
|
|
public virtual T VisitSwitchSection(SwitchSection switchSection) |
|
{ |
|
return VisitChildren(switchSection); |
|
} |
|
|
|
public virtual T VisitCaseLabel(CaseLabel caseLabel) |
|
{ |
|
return VisitChildren(caseLabel); |
|
} |
|
|
|
public virtual T VisitSwitchExpression(SwitchExpression switchExpression) |
|
{ |
|
return VisitChildren(switchExpression); |
|
} |
|
|
|
public virtual T VisitSwitchExpressionSection(SwitchExpressionSection switchExpressionSection) |
|
{ |
|
return VisitChildren(switchExpressionSection); |
|
} |
|
|
|
public virtual T VisitThrowStatement(ThrowStatement throwStatement) |
|
{ |
|
return VisitChildren(throwStatement); |
|
} |
|
|
|
public virtual T VisitTryCatchStatement(TryCatchStatement tryCatchStatement) |
|
{ |
|
return VisitChildren(tryCatchStatement); |
|
} |
|
|
|
public virtual T VisitCatchClause(CatchClause catchClause) |
|
{ |
|
return VisitChildren(catchClause); |
|
} |
|
|
|
public virtual T VisitUncheckedStatement(UncheckedStatement uncheckedStatement) |
|
{ |
|
return VisitChildren(uncheckedStatement); |
|
} |
|
|
|
public virtual T VisitUnsafeStatement(UnsafeStatement unsafeStatement) |
|
{ |
|
return VisitChildren(unsafeStatement); |
|
} |
|
|
|
public virtual T VisitUsingStatement(UsingStatement usingStatement) |
|
{ |
|
return VisitChildren(usingStatement); |
|
} |
|
|
|
public virtual T VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement) |
|
{ |
|
return VisitChildren(variableDeclarationStatement); |
|
} |
|
|
|
public virtual T VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatement localFunctionDeclarationStatement) |
|
{ |
|
return VisitChildren(localFunctionDeclarationStatement); |
|
} |
|
|
|
public virtual T VisitWhileStatement(WhileStatement whileStatement) |
|
{ |
|
return VisitChildren(whileStatement); |
|
} |
|
|
|
public virtual T VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement) |
|
{ |
|
return VisitChildren(yieldBreakStatement); |
|
} |
|
|
|
public virtual T VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement) |
|
{ |
|
return VisitChildren(yieldReturnStatement); |
|
} |
|
|
|
public virtual T VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression) |
|
{ |
|
return VisitChildren(anonymousMethodExpression); |
|
} |
|
|
|
public virtual T VisitLambdaExpression(LambdaExpression lambdaExpression) |
|
{ |
|
return VisitChildren(lambdaExpression); |
|
} |
|
|
|
public virtual T VisitAssignmentExpression(AssignmentExpression assignmentExpression) |
|
{ |
|
return VisitChildren(assignmentExpression); |
|
} |
|
|
|
public virtual T VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression) |
|
{ |
|
return VisitChildren(baseReferenceExpression); |
|
} |
|
|
|
public virtual T VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression) |
|
{ |
|
return VisitChildren(binaryOperatorExpression); |
|
} |
|
|
|
public virtual T VisitCastExpression(CastExpression castExpression) |
|
{ |
|
return VisitChildren(castExpression); |
|
} |
|
|
|
public virtual T VisitCheckedExpression(CheckedExpression checkedExpression) |
|
{ |
|
return VisitChildren(checkedExpression); |
|
} |
|
|
|
public virtual T VisitConditionalExpression(ConditionalExpression conditionalExpression) |
|
{ |
|
return VisitChildren(conditionalExpression); |
|
} |
|
|
|
public virtual T VisitIdentifierExpression(IdentifierExpression identifierExpression) |
|
{ |
|
return VisitChildren(identifierExpression); |
|
} |
|
|
|
public virtual T VisitIndexerExpression(IndexerExpression indexerExpression) |
|
{ |
|
return VisitChildren(indexerExpression); |
|
} |
|
|
|
public virtual T VisitInterpolatedStringExpression(InterpolatedStringExpression interpolatedStringExpression) |
|
{ |
|
return VisitChildren(interpolatedStringExpression); |
|
} |
|
|
|
public virtual T VisitInterpolation(Interpolation interpolation) |
|
{ |
|
return VisitChildren(interpolation); |
|
} |
|
|
|
public virtual T VisitInterpolatedStringText(InterpolatedStringText interpolatedStringText) |
|
{ |
|
return VisitChildren(interpolatedStringText); |
|
} |
|
|
|
public virtual T VisitInvocationExpression(InvocationExpression invocationExpression) |
|
{ |
|
return VisitChildren(invocationExpression); |
|
} |
|
|
|
public virtual T VisitDirectionExpression(DirectionExpression directionExpression) |
|
{ |
|
return VisitChildren(directionExpression); |
|
} |
|
|
|
public virtual T VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression) |
|
{ |
|
return VisitChildren(memberReferenceExpression); |
|
} |
|
|
|
public virtual T VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression) |
|
{ |
|
return VisitChildren(nullReferenceExpression); |
|
} |
|
|
|
public virtual T VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression) |
|
{ |
|
return VisitChildren(objectCreateExpression); |
|
} |
|
|
|
public virtual T VisitDeclarationExpression(DeclarationExpression declarationExpression) |
|
{ |
|
return VisitChildren(declarationExpression); |
|
} |
|
|
|
public virtual T VisitOutVarDeclarationExpression(OutVarDeclarationExpression outVarDeclarationExpression) |
|
{ |
|
return VisitChildren(outVarDeclarationExpression); |
|
} |
|
|
|
public virtual T VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression) |
|
{ |
|
return VisitChildren(anonymousTypeCreateExpression); |
|
} |
|
|
|
public virtual T VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression) |
|
{ |
|
return VisitChildren(arrayCreateExpression); |
|
} |
|
|
|
public virtual T VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression) |
|
{ |
|
return VisitChildren(parenthesizedExpression); |
|
} |
|
|
|
public virtual T VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression) |
|
{ |
|
return VisitChildren(pointerReferenceExpression); |
|
} |
|
|
|
public virtual T VisitPrimitiveExpression(PrimitiveExpression primitiveExpression) |
|
{ |
|
return VisitChildren(primitiveExpression); |
|
} |
|
|
|
public virtual T VisitSizeOfExpression(SizeOfExpression sizeOfExpression) |
|
{ |
|
return VisitChildren(sizeOfExpression); |
|
} |
|
|
|
public virtual T VisitStackAllocExpression(StackAllocExpression stackAllocExpression) |
|
{ |
|
return VisitChildren(stackAllocExpression); |
|
} |
|
|
|
public virtual T VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression) |
|
{ |
|
return VisitChildren(thisReferenceExpression); |
|
} |
|
|
|
public virtual T VisitThrowExpression(ThrowExpression throwExpression) |
|
{ |
|
return VisitChildren(throwExpression); |
|
} |
|
|
|
public virtual T VisitTupleExpression(TupleExpression tupleExpression) |
|
{ |
|
return VisitChildren(tupleExpression); |
|
} |
|
|
|
public virtual T VisitTypeOfExpression(TypeOfExpression typeOfExpression) |
|
{ |
|
return VisitChildren(typeOfExpression); |
|
} |
|
|
|
public virtual T VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression) |
|
{ |
|
return VisitChildren(typeReferenceExpression); |
|
} |
|
|
|
public virtual T VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression) |
|
{ |
|
return VisitChildren(unaryOperatorExpression); |
|
} |
|
|
|
public virtual T VisitUncheckedExpression(UncheckedExpression uncheckedExpression) |
|
{ |
|
return VisitChildren(uncheckedExpression); |
|
} |
|
|
|
public virtual T VisitQueryExpression(QueryExpression queryExpression) |
|
{ |
|
return VisitChildren(queryExpression); |
|
} |
|
|
|
public virtual T VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause) |
|
{ |
|
return VisitChildren(queryContinuationClause); |
|
} |
|
|
|
public virtual T VisitQueryFromClause(QueryFromClause queryFromClause) |
|
{ |
|
return VisitChildren(queryFromClause); |
|
} |
|
|
|
public virtual T VisitQueryLetClause(QueryLetClause queryLetClause) |
|
{ |
|
return VisitChildren(queryLetClause); |
|
} |
|
|
|
public virtual T VisitQueryWhereClause(QueryWhereClause queryWhereClause) |
|
{ |
|
return VisitChildren(queryWhereClause); |
|
} |
|
|
|
public virtual T VisitQueryJoinClause(QueryJoinClause queryJoinClause) |
|
{ |
|
return VisitChildren(queryJoinClause); |
|
} |
|
|
|
public virtual T VisitQueryOrderClause(QueryOrderClause queryOrderClause) |
|
{ |
|
return VisitChildren(queryOrderClause); |
|
} |
|
|
|
public virtual T VisitQueryOrdering(QueryOrdering queryOrdering) |
|
{ |
|
return VisitChildren(queryOrdering); |
|
} |
|
|
|
public virtual T VisitQuerySelectClause(QuerySelectClause querySelectClause) |
|
{ |
|
return VisitChildren(querySelectClause); |
|
} |
|
|
|
public virtual T VisitQueryGroupClause(QueryGroupClause queryGroupClause) |
|
{ |
|
return VisitChildren(queryGroupClause); |
|
} |
|
|
|
public virtual T VisitAsExpression(AsExpression asExpression) |
|
{ |
|
return VisitChildren(asExpression); |
|
} |
|
|
|
public virtual T VisitIsExpression(IsExpression isExpression) |
|
{ |
|
return VisitChildren(isExpression); |
|
} |
|
|
|
public virtual T VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression) |
|
{ |
|
return VisitChildren(defaultValueExpression); |
|
} |
|
|
|
public virtual T VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression) |
|
{ |
|
return VisitChildren(undocumentedExpression); |
|
} |
|
|
|
public virtual T VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression) |
|
{ |
|
return VisitChildren(arrayInitializerExpression); |
|
} |
|
|
|
public virtual T VisitArraySpecifier(ArraySpecifier arraySpecifier) |
|
{ |
|
return VisitChildren(arraySpecifier); |
|
} |
|
|
|
public virtual T VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression) |
|
{ |
|
return VisitChildren(namedArgumentExpression); |
|
} |
|
|
|
public virtual T VisitNamedExpression(NamedExpression namedExpression) |
|
{ |
|
return VisitChildren(namedExpression); |
|
} |
|
|
|
public virtual T VisitSingleVariableDesignation(SingleVariableDesignation singleVariableDesignation) |
|
{ |
|
return VisitChildren(singleVariableDesignation); |
|
} |
|
|
|
public virtual T VisitParenthesizedVariableDesignation(ParenthesizedVariableDesignation parenthesizedVariableDesignation) |
|
{ |
|
return VisitChildren(parenthesizedVariableDesignation); |
|
} |
|
|
|
public virtual T VisitErrorNode(AstNode errorNode) |
|
{ |
|
return VisitChildren(errorNode); |
|
} |
|
|
|
public virtual T VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern) |
|
{ |
|
return VisitChildren(placeholder); |
|
} |
|
|
|
public virtual T VisitWithInitializerExpression(WithInitializerExpression withInitializerExpression) |
|
{ |
|
return VisitChildren(withInitializerExpression); |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// AST visitor with a default implementation that visits all node depth-first. |
|
/// </summary> |
|
public abstract class DepthFirstAstVisitor<T, S> : IAstVisitor<T, S> |
|
{ |
|
protected virtual 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 virtual S VisitNullNode(AstNode nullNode, T data) |
|
{ |
|
// Should we call VisitChildren here? |
|
// We usually want to ignore null nodes. |
|
// Older NR versions (before VisitNullNode was introduced) didn't call VisitChildren() with null nodes; |
|
// so changing this might break VisitChildren() overrides that expect the node to be part of the AST. |
|
return default(S); |
|
} |
|
|
|
public virtual S VisitSyntaxTree(SyntaxTree unit, T data) |
|
{ |
|
return VisitChildren(unit, data); |
|
} |
|
|
|
public virtual S VisitComment(Comment comment, T data) |
|
{ |
|
return VisitChildren(comment, data); |
|
} |
|
|
|
public virtual S VisitDocumentationReference(DocumentationReference documentationReference, T data) |
|
{ |
|
return VisitChildren(documentationReference, data); |
|
} |
|
|
|
public virtual S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective, T data) |
|
{ |
|
return VisitChildren(preProcessorDirective, data); |
|
} |
|
|
|
public virtual S VisitIdentifier(Identifier identifier, T data) |
|
{ |
|
return VisitChildren(identifier, data); |
|
} |
|
|
|
public virtual S VisitCSharpTokenNode(CSharpTokenNode token, T data) |
|
{ |
|
return VisitChildren(token, data); |
|
} |
|
|
|
public virtual S VisitPrimitiveType(PrimitiveType primitiveType, T data) |
|
{ |
|
return VisitChildren(primitiveType, data); |
|
} |
|
|
|
public virtual S VisitComposedType(ComposedType composedType, T data) |
|
{ |
|
return VisitChildren(composedType, data); |
|
} |
|
|
|
public virtual S VisitSimpleType(SimpleType simpleType, T data) |
|
{ |
|
return VisitChildren(simpleType, data); |
|
} |
|
|
|
public virtual S VisitMemberType(MemberType memberType, T data) |
|
{ |
|
return VisitChildren(memberType, data); |
|
} |
|
|
|
public virtual S VisitTupleType(TupleAstType tupleType, T data) |
|
{ |
|
return VisitChildren(tupleType, data); |
|
} |
|
|
|
public virtual S VisitTupleTypeElement(TupleTypeElement tupleTypeElement, T data) |
|
{ |
|
return VisitChildren(tupleTypeElement, data); |
|
} |
|
|
|
public virtual S VisitFunctionPointerType(FunctionPointerAstType functionPointerType, T data) |
|
{ |
|
return VisitChildren(functionPointerType, data); |
|
} |
|
|
|
public virtual S VisitInvocationType(InvocationAstType invocationType, T data) |
|
{ |
|
return VisitChildren(invocationType, data); |
|
} |
|
|
|
public virtual S VisitAttribute(Attribute attribute, T data) |
|
{ |
|
return VisitChildren(attribute, data); |
|
} |
|
|
|
public virtual S VisitAttributeSection(AttributeSection attributeSection, T data) |
|
{ |
|
return VisitChildren(attributeSection, data); |
|
} |
|
|
|
public virtual S VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, T data) |
|
{ |
|
return VisitChildren(delegateDeclaration, data); |
|
} |
|
|
|
public virtual S VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, T data) |
|
{ |
|
return VisitChildren(namespaceDeclaration, data); |
|
} |
|
|
|
public virtual S VisitTypeDeclaration(TypeDeclaration typeDeclaration, T data) |
|
{ |
|
return VisitChildren(typeDeclaration, data); |
|
} |
|
|
|
public virtual S VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration, T data) |
|
{ |
|
return VisitChildren(typeParameterDeclaration, data); |
|
} |
|
|
|
public virtual S VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration, T data) |
|
{ |
|
return VisitChildren(enumMemberDeclaration, data); |
|
} |
|
|
|
public virtual S VisitUsingDeclaration(UsingDeclaration usingDeclaration, T data) |
|
{ |
|
return VisitChildren(usingDeclaration, data); |
|
} |
|
|
|
public virtual S VisitUsingAliasDeclaration(UsingAliasDeclaration usingDeclaration, T data) |
|
{ |
|
return VisitChildren(usingDeclaration, data); |
|
} |
|
|
|
public virtual S VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration, T data) |
|
{ |
|
return VisitChildren(externAliasDeclaration, data); |
|
} |
|
|
|
public virtual S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, T data) |
|
{ |
|
return VisitChildren(constructorDeclaration, data); |
|
} |
|
|
|
public virtual S VisitConstructorInitializer(ConstructorInitializer constructorInitializer, T data) |
|
{ |
|
return VisitChildren(constructorInitializer, data); |
|
} |
|
|
|
public virtual S VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration, T data) |
|
{ |
|
return VisitChildren(destructorDeclaration, data); |
|
} |
|
|
|
public virtual S VisitEventDeclaration(EventDeclaration eventDeclaration, T data) |
|
{ |
|
return VisitChildren(eventDeclaration, data); |
|
} |
|
|
|
public virtual S VisitCustomEventDeclaration(CustomEventDeclaration eventDeclaration, T data) |
|
{ |
|
return VisitChildren(eventDeclaration, data); |
|
} |
|
|
|
public virtual S VisitFieldDeclaration(FieldDeclaration fieldDeclaration, T data) |
|
{ |
|
return VisitChildren(fieldDeclaration, data); |
|
} |
|
|
|
public virtual S VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration, T data) |
|
{ |
|
return VisitChildren(fixedFieldDeclaration, data); |
|
} |
|
|
|
public virtual S VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer, T data) |
|
{ |
|
return VisitChildren(fixedVariableInitializer, data); |
|
} |
|
|
|
public virtual S VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration, T data) |
|
{ |
|
return VisitChildren(indexerDeclaration, data); |
|
} |
|
|
|
public virtual S VisitMethodDeclaration(MethodDeclaration methodDeclaration, T data) |
|
{ |
|
return VisitChildren(methodDeclaration, data); |
|
} |
|
|
|
public virtual S VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, T data) |
|
{ |
|
return VisitChildren(operatorDeclaration, data); |
|
} |
|
|
|
public virtual S VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, T data) |
|
{ |
|
return VisitChildren(propertyDeclaration, data); |
|
} |
|
|
|
public virtual S VisitAccessor(Accessor accessor, T data) |
|
{ |
|
return VisitChildren(accessor, data); |
|
} |
|
|
|
public virtual S VisitVariableInitializer(VariableInitializer variableInitializer, T data) |
|
{ |
|
return VisitChildren(variableInitializer, data); |
|
} |
|
|
|
public virtual S VisitParameterDeclaration(ParameterDeclaration parameterDeclaration, T data) |
|
{ |
|
return VisitChildren(parameterDeclaration, data); |
|
} |
|
|
|
public virtual S VisitConstraint(Constraint constraint, T data) |
|
{ |
|
return VisitChildren(constraint, data); |
|
} |
|
|
|
public virtual S VisitBlockStatement(BlockStatement blockStatement, T data) |
|
{ |
|
return VisitChildren(blockStatement, data); |
|
} |
|
|
|
public virtual S VisitExpressionStatement(ExpressionStatement expressionStatement, T data) |
|
{ |
|
return VisitChildren(expressionStatement, data); |
|
} |
|
|
|
public virtual S VisitBreakStatement(BreakStatement breakStatement, T data) |
|
{ |
|
return VisitChildren(breakStatement, data); |
|
} |
|
|
|
public virtual S VisitCheckedStatement(CheckedStatement checkedStatement, T data) |
|
{ |
|
return VisitChildren(checkedStatement, data); |
|
} |
|
|
|
public virtual S VisitContinueStatement(ContinueStatement continueStatement, T data) |
|
{ |
|
return VisitChildren(continueStatement, data); |
|
} |
|
|
|
public virtual S VisitDoWhileStatement(DoWhileStatement doWhileStatement, T data) |
|
{ |
|
return VisitChildren(doWhileStatement, data); |
|
} |
|
|
|
public virtual S VisitEmptyStatement(EmptyStatement emptyStatement, T data) |
|
{ |
|
return VisitChildren(emptyStatement, data); |
|
} |
|
|
|
public virtual S VisitFixedStatement(FixedStatement fixedStatement, T data) |
|
{ |
|
return VisitChildren(fixedStatement, data); |
|
} |
|
|
|
public virtual S VisitForeachStatement(ForeachStatement foreachStatement, T data) |
|
{ |
|
return VisitChildren(foreachStatement, data); |
|
} |
|
|
|
public virtual S VisitForStatement(ForStatement forStatement, T data) |
|
{ |
|
return VisitChildren(forStatement, data); |
|
} |
|
|
|
public virtual S VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement, T data) |
|
{ |
|
return VisitChildren(gotoCaseStatement, data); |
|
} |
|
|
|
public virtual S VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement, T data) |
|
{ |
|
return VisitChildren(gotoDefaultStatement, data); |
|
} |
|
|
|
public virtual S VisitGotoStatement(GotoStatement gotoStatement, T data) |
|
{ |
|
return VisitChildren(gotoStatement, data); |
|
} |
|
|
|
public virtual S VisitIfElseStatement(IfElseStatement ifElseStatement, T data) |
|
{ |
|
return VisitChildren(ifElseStatement, data); |
|
} |
|
|
|
public virtual S VisitLabelStatement(LabelStatement labelStatement, T data) |
|
{ |
|
return VisitChildren(labelStatement, data); |
|
} |
|
|
|
public virtual S VisitLockStatement(LockStatement lockStatement, T data) |
|
{ |
|
return VisitChildren(lockStatement, data); |
|
} |
|
|
|
public virtual S VisitReturnStatement(ReturnStatement returnStatement, T data) |
|
{ |
|
return VisitChildren(returnStatement, data); |
|
} |
|
|
|
public virtual S VisitSwitchStatement(SwitchStatement switchStatement, T data) |
|
{ |
|
return VisitChildren(switchStatement, data); |
|
} |
|
|
|
public virtual S VisitSwitchSection(SwitchSection switchSection, T data) |
|
{ |
|
return VisitChildren(switchSection, data); |
|
} |
|
|
|
public virtual S VisitCaseLabel(CaseLabel caseLabel, T data) |
|
{ |
|
return VisitChildren(caseLabel, data); |
|
} |
|
|
|
public virtual S VisitSwitchExpression(SwitchExpression switchExpression, T data) |
|
{ |
|
return VisitChildren(switchExpression, data); |
|
} |
|
|
|
public virtual S VisitSwitchExpressionSection(SwitchExpressionSection switchExpressionSection, T data) |
|
{ |
|
return VisitChildren(switchExpressionSection, data); |
|
} |
|
|
|
public virtual S VisitThrowStatement(ThrowStatement throwStatement, T data) |
|
{ |
|
return VisitChildren(throwStatement, data); |
|
} |
|
|
|
public virtual S VisitTryCatchStatement(TryCatchStatement tryCatchStatement, T data) |
|
{ |
|
return VisitChildren(tryCatchStatement, data); |
|
} |
|
|
|
public virtual S VisitCatchClause(CatchClause catchClause, T data) |
|
{ |
|
return VisitChildren(catchClause, data); |
|
} |
|
|
|
public virtual S VisitUncheckedStatement(UncheckedStatement uncheckedStatement, T data) |
|
{ |
|
return VisitChildren(uncheckedStatement, data); |
|
} |
|
|
|
public virtual S VisitUnsafeStatement(UnsafeStatement unsafeStatement, T data) |
|
{ |
|
return VisitChildren(unsafeStatement, data); |
|
} |
|
|
|
public virtual S VisitUsingStatement(UsingStatement usingStatement, T data) |
|
{ |
|
return VisitChildren(usingStatement, data); |
|
} |
|
|
|
public virtual S VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement, T data) |
|
{ |
|
return VisitChildren(variableDeclarationStatement, data); |
|
} |
|
|
|
public virtual S VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatement localFunctionDeclarationStatement, T data) |
|
{ |
|
return VisitChildren(localFunctionDeclarationStatement, data); |
|
} |
|
|
|
public virtual S VisitWhileStatement(WhileStatement whileStatement, T data) |
|
{ |
|
return VisitChildren(whileStatement, data); |
|
} |
|
|
|
public virtual S VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement, T data) |
|
{ |
|
return VisitChildren(yieldBreakStatement, data); |
|
} |
|
|
|
public virtual S VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement, T data) |
|
{ |
|
return VisitChildren(yieldReturnStatement, data); |
|
} |
|
|
|
public virtual S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression, T data) |
|
{ |
|
return VisitChildren(anonymousMethodExpression, data); |
|
} |
|
|
|
public virtual S VisitLambdaExpression(LambdaExpression lambdaExpression, T data) |
|
{ |
|
return VisitChildren(lambdaExpression, data); |
|
} |
|
|
|
public virtual S VisitAssignmentExpression(AssignmentExpression assignmentExpression, T data) |
|
{ |
|
return VisitChildren(assignmentExpression, data); |
|
} |
|
|
|
public virtual S VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, T data) |
|
{ |
|
return VisitChildren(baseReferenceExpression, data); |
|
} |
|
|
|
public virtual S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, T data) |
|
{ |
|
return VisitChildren(binaryOperatorExpression, data); |
|
} |
|
|
|
public virtual S VisitCastExpression(CastExpression castExpression, T data) |
|
{ |
|
return VisitChildren(castExpression, data); |
|
} |
|
|
|
public virtual S VisitCheckedExpression(CheckedExpression checkedExpression, T data) |
|
{ |
|
return VisitChildren(checkedExpression, data); |
|
} |
|
|
|
public virtual S VisitConditionalExpression(ConditionalExpression conditionalExpression, T data) |
|
{ |
|
return VisitChildren(conditionalExpression, data); |
|
} |
|
|
|
public virtual S VisitIdentifierExpression(IdentifierExpression identifierExpression, T data) |
|
{ |
|
return VisitChildren(identifierExpression, data); |
|
} |
|
|
|
public virtual S VisitIndexerExpression(IndexerExpression indexerExpression, T data) |
|
{ |
|
return VisitChildren(indexerExpression, data); |
|
} |
|
|
|
public virtual S VisitInterpolatedStringExpression(InterpolatedStringExpression interpolatedStringExpression, T data) |
|
{ |
|
return VisitChildren(interpolatedStringExpression, data); |
|
} |
|
|
|
public virtual S VisitInterpolation(Interpolation interpolation, T data) |
|
{ |
|
return VisitChildren(interpolation, data); |
|
} |
|
|
|
public virtual S VisitInterpolatedStringText(InterpolatedStringText interpolatedStringText, T data) |
|
{ |
|
return VisitChildren(interpolatedStringText, data); |
|
} |
|
|
|
public virtual S VisitInvocationExpression(InvocationExpression invocationExpression, T data) |
|
{ |
|
return VisitChildren(invocationExpression, data); |
|
} |
|
|
|
public virtual S VisitDirectionExpression(DirectionExpression directionExpression, T data) |
|
{ |
|
return VisitChildren(directionExpression, data); |
|
} |
|
|
|
public virtual S VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, T data) |
|
{ |
|
return VisitChildren(memberReferenceExpression, data); |
|
} |
|
|
|
public virtual S VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression, T data) |
|
{ |
|
return VisitChildren(nullReferenceExpression, data); |
|
} |
|
|
|
public virtual S VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression, T data) |
|
{ |
|
return VisitChildren(objectCreateExpression, data); |
|
} |
|
|
|
public virtual S VisitDeclarationExpression(DeclarationExpression declarationExpression, T data) |
|
{ |
|
return VisitChildren(declarationExpression, data); |
|
} |
|
|
|
public virtual S VisitOutVarDeclarationExpression(OutVarDeclarationExpression outVarDeclarationExpression, T data) |
|
{ |
|
return VisitChildren(outVarDeclarationExpression, data); |
|
} |
|
|
|
public virtual S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression, T data) |
|
{ |
|
return VisitChildren(anonymousTypeCreateExpression, data); |
|
} |
|
|
|
public virtual S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, T data) |
|
{ |
|
return VisitChildren(arrayCreateExpression, data); |
|
} |
|
|
|
public virtual S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, T data) |
|
{ |
|
return VisitChildren(parenthesizedExpression, data); |
|
} |
|
|
|
public virtual S VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression, T data) |
|
{ |
|
return VisitChildren(pointerReferenceExpression, data); |
|
} |
|
|
|
public virtual S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, T data) |
|
{ |
|
return VisitChildren(primitiveExpression, data); |
|
} |
|
|
|
public virtual S VisitSizeOfExpression(SizeOfExpression sizeOfExpression, T data) |
|
{ |
|
return VisitChildren(sizeOfExpression, data); |
|
} |
|
|
|
public virtual S VisitStackAllocExpression(StackAllocExpression stackAllocExpression, T data) |
|
{ |
|
return VisitChildren(stackAllocExpression, data); |
|
} |
|
|
|
public virtual S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, T data) |
|
{ |
|
return VisitChildren(thisReferenceExpression, data); |
|
} |
|
|
|
public virtual S VisitThrowExpression(ThrowExpression throwExpression, T data) |
|
{ |
|
return VisitChildren(throwExpression, data); |
|
} |
|
|
|
public virtual S VisitTupleExpression(TupleExpression tupleExpression, T data) |
|
{ |
|
return VisitChildren(tupleExpression, data); |
|
} |
|
|
|
public virtual S VisitTypeOfExpression(TypeOfExpression typeOfExpression, T data) |
|
{ |
|
return VisitChildren(typeOfExpression, data); |
|
} |
|
|
|
public virtual S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data) |
|
{ |
|
return VisitChildren(typeReferenceExpression, data); |
|
} |
|
|
|
public virtual S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, T data) |
|
{ |
|
return VisitChildren(unaryOperatorExpression, data); |
|
} |
|
|
|
public virtual S VisitUncheckedExpression(UncheckedExpression uncheckedExpression, T data) |
|
{ |
|
return VisitChildren(uncheckedExpression, data); |
|
} |
|
|
|
public virtual S VisitQueryExpression(QueryExpression queryExpression, T data) |
|
{ |
|
return VisitChildren(queryExpression, data); |
|
} |
|
|
|
public virtual S VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause, T data) |
|
{ |
|
return VisitChildren(queryContinuationClause, data); |
|
} |
|
|
|
public virtual S VisitQueryFromClause(QueryFromClause queryFromClause, T data) |
|
{ |
|
return VisitChildren(queryFromClause, data); |
|
} |
|
|
|
public virtual S VisitQueryLetClause(QueryLetClause queryLetClause, T data) |
|
{ |
|
return VisitChildren(queryLetClause, data); |
|
} |
|
|
|
public virtual S VisitQueryWhereClause(QueryWhereClause queryWhereClause, T data) |
|
{ |
|
return VisitChildren(queryWhereClause, data); |
|
} |
|
|
|
public virtual S VisitQueryJoinClause(QueryJoinClause queryJoinClause, T data) |
|
{ |
|
return VisitChildren(queryJoinClause, data); |
|
} |
|
|
|
public virtual S VisitQueryOrderClause(QueryOrderClause queryOrderClause, T data) |
|
{ |
|
return VisitChildren(queryOrderClause, data); |
|
} |
|
|
|
public virtual S VisitQueryOrdering(QueryOrdering queryOrdering, T data) |
|
{ |
|
return VisitChildren(queryOrdering, data); |
|
} |
|
|
|
public virtual S VisitQuerySelectClause(QuerySelectClause querySelectClause, T data) |
|
{ |
|
return VisitChildren(querySelectClause, data); |
|
} |
|
|
|
public virtual S VisitQueryGroupClause(QueryGroupClause queryGroupClause, T data) |
|
{ |
|
return VisitChildren(queryGroupClause, data); |
|
} |
|
|
|
public virtual S VisitAsExpression(AsExpression asExpression, T data) |
|
{ |
|
return VisitChildren(asExpression, data); |
|
} |
|
|
|
public virtual S VisitIsExpression(IsExpression isExpression, T data) |
|
{ |
|
return VisitChildren(isExpression, data); |
|
} |
|
|
|
public virtual S VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, T data) |
|
{ |
|
return VisitChildren(defaultValueExpression, data); |
|
} |
|
|
|
public virtual S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression, T data) |
|
{ |
|
return VisitChildren(undocumentedExpression, data); |
|
} |
|
|
|
public virtual S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data) |
|
{ |
|
return VisitChildren(arrayInitializerExpression, data); |
|
} |
|
|
|
public virtual S VisitArraySpecifier(ArraySpecifier arraySpecifier, T data) |
|
{ |
|
return VisitChildren(arraySpecifier, data); |
|
} |
|
|
|
public virtual S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, T data) |
|
{ |
|
return VisitChildren(namedArgumentExpression, data); |
|
} |
|
|
|
public virtual S VisitNamedExpression(NamedExpression namedExpression, T data) |
|
{ |
|
return VisitChildren(namedExpression, data); |
|
} |
|
|
|
public virtual S VisitSingleVariableDesignation(SingleVariableDesignation singleVariableDesignation, T data) |
|
{ |
|
return VisitChildren(singleVariableDesignation, data); |
|
} |
|
|
|
public virtual S VisitParenthesizedVariableDesignation(ParenthesizedVariableDesignation parenthesizedVariableDesignation, T data) |
|
{ |
|
return VisitChildren(parenthesizedVariableDesignation, data); |
|
} |
|
|
|
public virtual S VisitErrorNode(AstNode errorNode, T data) |
|
{ |
|
return VisitChildren(errorNode, data); |
|
} |
|
|
|
public virtual S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern, T data) |
|
{ |
|
return VisitChildren(placeholder, data); |
|
} |
|
|
|
public virtual S VisitWithInitializerExpression(WithInitializerExpression withInitializerExpression, T data) |
|
{ |
|
return VisitChildren(withInitializerExpression, data); |
|
} |
|
} |
|
}
|
|
|