1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
5
using ICSharpCode.NRefactory.VB.Ast;
6
using Attribute = ICSharpCode.NRefactory.VB.Ast.Attribute;
8
namespace ICSharpCode.NRefactory.VB {
9
public interface IAstVisitor<in T, out S>
11
S VisitBlockStatement(BlockStatement blockStatement, T data);
12
S VisitComment(Comment comment, T data);
13
S VisitCompilationUnit(CompilationUnit compilationUnit, T data);
14
S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern, T data);
15
S VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration, T data);
16
S VisitParameterDeclaration(ParameterDeclaration parameterDeclaration, T data);
17
S VisitVBTokenNode(VBTokenNode vBTokenNode, T data);
18
S VisitEventMemberSpecifier(EventMemberSpecifier eventMemberSpecifier, T data);
19
S VisitInterfaceMemberSpecifier(InterfaceMemberSpecifier interfaceMemberSpecifier, T data);
22
S VisitAliasImportsClause(AliasImportsClause aliasImportsClause, T data);
23
S VisitAttribute(Attribute attribute, T data);
24
S VisitAttributeBlock(AttributeBlock attributeBlock, T data);
25
S VisitImportsStatement(ImportsStatement importsStatement, T data);
26
S VisitMemberImportsClause(MemberImportsClause memberImportsClause, T data);
27
S VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, T data);
28
S VisitOptionStatement(OptionStatement optionStatement, T data);
29
S VisitTypeDeclaration(TypeDeclaration typeDeclaration, T data);
30
S VisitXmlNamespaceImportsClause(XmlNamespaceImportsClause xmlNamespaceImportsClause, T data);
31
S VisitEnumDeclaration(EnumDeclaration enumDeclaration, T data);
32
S VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration, T data);
33
S VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, T data);
36
S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, T data);
37
S VisitMethodDeclaration(MethodDeclaration methodDeclaration, T data);
38
S VisitExternalMethodDeclaration(ExternalMethodDeclaration externalMethodDeclaration, T data);
39
S VisitFieldDeclaration(FieldDeclaration fieldDeclaration, T data);
40
S VisitVariableDeclaratorWithTypeAndInitializer(VariableDeclaratorWithTypeAndInitializer variableDeclaratorWithTypeAndInitializer, T data);
41
S VisitVariableDeclaratorWithObjectCreation(VariableDeclaratorWithObjectCreation variableDeclaratorWithObjectCreation, T data);
42
S VisitVariableIdentifier(VariableIdentifier variableIdentifier, T data);
43
S VisitAccessor(Accessor accessor, T data);
44
S VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, T data);
45
S VisitEventDeclaration(EventDeclaration eventDeclaration, T data);
46
S VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, T data);
49
S VisitIdentifier(Identifier identifier, T data);
50
S VisitXmlIdentifier(XmlIdentifier xmlIdentifier, T data);
51
S VisitXmlLiteralString(XmlLiteralString xmlLiteralString, T data);
52
S VisitSimpleNameExpression(SimpleNameExpression identifierExpression, T data);
53
S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, T data);
54
S VisitInstanceExpression(InstanceExpression instanceExpression, T data);
55
S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, T data);
56
S VisitGetTypeExpression(GetTypeExpression getTypeExpression, T data);
57
S VisitTypeOfIsExpression(TypeOfIsExpression typeOfIsExpression, T data);
58
S VisitGetXmlNamespaceExpression(GetXmlNamespaceExpression getXmlNamespaceExpression, T data);
59
S VisitMemberAccessExpression(MemberAccessExpression memberAccessExpression, T data);
60
S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data);
61
S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, T data);
62
S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, T data);
63
S VisitAssignmentExpression(AssignmentExpression assignmentExpression, T data);
64
S VisitIdentifierExpression(IdentifierExpression identifierExpression, T data);
65
S VisitInvocationExpression(InvocationExpression invocationExpression, T data);
66
S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data);
67
S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, T data);
68
S VisitObjectCreationExpression(ObjectCreationExpression objectCreationExpression, T data);
69
S VisitCastExpression(CastExpression castExpression, T data);
70
S VisitFieldInitializerExpression(FieldInitializerExpression fieldInitializerExpression, T data);
71
S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, T data);
72
S VisitConditionalExpression(ConditionalExpression conditionalExpression, T data);
75
S VisitLabelDeclarationStatement(LabelDeclarationStatement labelDeclarationStatement, T data);
76
S VisitLocalDeclarationStatement(LocalDeclarationStatement localDeclarationStatement, T data);
77
S VisitExpressionStatement(ExpressionStatement expressionStatement, T data);
78
S VisitWithStatement(WithStatement withStatement, T data);
79
S VisitSyncLockStatement(SyncLockStatement syncLockStatement, T data);
80
S VisitIfElseStatement(IfElseStatement ifElseStatement, T data);
81
S VisitTryStatement(TryStatement tryStatement, T data);
82
S VisitThrowStatement(ThrowStatement throwStatement, T data);
83
S VisitCatchBlock(CatchBlock catchBlock, T data);
84
S VisitReturnStatement(ReturnStatement returnStatement, T data);
85
S VisitWhileStatement(WhileStatement whileStatement, T data);
86
S VisitForStatement(ForStatement forStatement, T data);
87
S VisitForEachStatement(ForEachStatement forEachStatement, T data);
88
S VisitExitStatement(ExitStatement exitStatement, T data);
89
S VisitContinueStatement(ContinueStatement continueStatement, T data);
90
S VisitSelectStatement(SelectStatement selectStatement, T data);
91
S VisitYieldStatement(YieldStatement yieldStatement, T data);
92
S VisitVariableInitializer(VariableInitializer variableInitializer, T data);
93
S VisitRangeCaseClause(RangeCaseClause rangeCaseClause, T data);
94
S VisitComparisonCaseClause(ComparisonCaseClause comparisonCaseClause, T data);
95
S VisitSimpleCaseClause(SimpleCaseClause simpleCaseClause, T data);
96
S VisitCaseStatement(CaseStatement caseStatement, T data);
97
S VisitDoLoopStatement(DoLoopStatement doLoopStatement, T data);
98
S VisitUsingStatement(UsingStatement usingStatement, T data);
101
S VisitPrimitiveType(PrimitiveType primitiveType, T data);
102
S VisitQualifiedType(QualifiedType qualifiedType, T data);
103
S VisitComposedType(ComposedType composedType, T data);
104
S VisitArraySpecifier(ArraySpecifier arraySpecifier, T data);
105
S VisitSimpleType(SimpleType simpleType, T data);
107
S VisitGoToStatement(GoToStatement goToStatement, T data);
109
S VisitSingleLineSubLambdaExpression(SingleLineSubLambdaExpression singleLineSubLambdaExpression, T data);
110
S VisitMultiLineLambdaExpression(MultiLineLambdaExpression multiLineLambdaExpression, T data);
111
S VisitSingleLineFunctionLambdaExpression(SingleLineFunctionLambdaExpression singleLineFunctionLambdaExpression, T data);
113
S VisitQueryExpression(QueryExpression queryExpression, T data);
115
S VisitEmptyExpression(EmptyExpression emptyExpression, T data);
117
S VisitAnonymousObjectCreationExpression(AnonymousObjectCreationExpression anonymousObjectCreationExpression, T data);
119
S VisitCollectionRangeVariableDeclaration(CollectionRangeVariableDeclaration collectionRangeVariableDeclaration, T data);
121
S VisitFromQueryOperator(FromQueryOperator fromQueryOperator, T data);
122
S VisitAggregateQueryOperator(AggregateQueryOperator aggregateQueryOperator, T data);
123
S VisitSelectQueryOperator(SelectQueryOperator selectQueryOperator, T data);
124
S VisitDistinctQueryOperator(DistinctQueryOperator distinctQueryOperator, T data);
125
S VisitWhereQueryOperator(WhereQueryOperator whereQueryOperator, T data);
126
S VisitOrderExpression(OrderExpression orderExpression, T data);
127
S VisitOrderByQueryOperator(OrderByQueryOperator orderByQueryOperator, T data);
128
S VisitPartitionQueryOperator(PartitionQueryOperator partitionQueryOperator, T data);
129
S VisitLetQueryOperator(LetQueryOperator letQueryOperator, T data);
130
S VisitGroupByQueryOperator(GroupByQueryOperator groupByQueryOperator, T data);
131
S VisitJoinQueryOperator(JoinQueryOperator joinQueryOperator, T data);
132
S VisitJoinCondition(JoinCondition joinCondition, T data);
133
S VisitGroupJoinQueryOperator(GroupJoinQueryOperator groupJoinQueryOperator, T data);