Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.CSharp-5.5.0/Ast/IAstVisitor.cs @ 16372

Last change on this file since 16372 was 11700, checked in by jkarder, 10 years ago

#2077: created branch and added first version

File size: 25.2 KB
Line 
1// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy of this
4// software and associated documentation files (the "Software"), to deal in the Software
5// without restriction, including without limitation the rights to use, copy, modify, merge,
6// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7// to whom the Software is furnished to do so, subject to the following conditions:
8//
9// The above copyright notice and this permission notice shall be included in all copies or
10// substantial portions of the Software.
11//
12// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17// DEALINGS IN THE SOFTWARE.
18
19using System;
20
21namespace ICSharpCode.NRefactory.CSharp
22{
23  /// <summary>
24  /// AST visitor.
25  /// </summary>
26  public interface IAstVisitor
27  {
28    void VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression);
29    void VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression);
30    void VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression);
31    void VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression);
32    void VisitAsExpression(AsExpression asExpression);
33    void VisitAssignmentExpression(AssignmentExpression assignmentExpression);
34    void VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression);
35    void VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression);
36    void VisitCastExpression(CastExpression castExpression);
37    void VisitCheckedExpression(CheckedExpression checkedExpression);
38    void VisitConditionalExpression(ConditionalExpression conditionalExpression);
39    void VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression);
40    void VisitDirectionExpression(DirectionExpression directionExpression);
41    void VisitIdentifierExpression(IdentifierExpression identifierExpression);
42    void VisitIndexerExpression(IndexerExpression indexerExpression);
43    void VisitInvocationExpression(InvocationExpression invocationExpression);
44    void VisitIsExpression(IsExpression isExpression);
45    void VisitLambdaExpression(LambdaExpression lambdaExpression);
46    void VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression);
47    void VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression);
48    void VisitNamedExpression(NamedExpression namedExpression);
49    void VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression);
50    void VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression);
51    void VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression);
52    void VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression);
53    void VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression);
54    void VisitPrimitiveExpression(PrimitiveExpression primitiveExpression);
55    void VisitSizeOfExpression(SizeOfExpression sizeOfExpression);
56    void VisitStackAllocExpression(StackAllocExpression stackAllocExpression);
57    void VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression);
58    void VisitTypeOfExpression(TypeOfExpression typeOfExpression);
59    void VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression);
60    void VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression);
61    void VisitUncheckedExpression(UncheckedExpression uncheckedExpression);
62
63    void VisitQueryExpression(QueryExpression queryExpression);
64    void VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause);
65    void VisitQueryFromClause(QueryFromClause queryFromClause);
66    void VisitQueryLetClause(QueryLetClause queryLetClause);
67    void VisitQueryWhereClause(QueryWhereClause queryWhereClause);
68    void VisitQueryJoinClause(QueryJoinClause queryJoinClause);
69    void VisitQueryOrderClause(QueryOrderClause queryOrderClause);
70    void VisitQueryOrdering(QueryOrdering queryOrdering);
71    void VisitQuerySelectClause(QuerySelectClause querySelectClause);
72    void VisitQueryGroupClause(QueryGroupClause queryGroupClause);
73   
74    void VisitAttribute(Attribute attribute);
75    void VisitAttributeSection(AttributeSection attributeSection);
76    void VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration);
77    void VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration);
78    void VisitTypeDeclaration(TypeDeclaration typeDeclaration);
79    void VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration);
80    void VisitUsingDeclaration(UsingDeclaration usingDeclaration);
81    void VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration);
82   
83    void VisitBlockStatement(BlockStatement blockStatement);
84    void VisitBreakStatement(BreakStatement breakStatement);
85    void VisitCheckedStatement(CheckedStatement checkedStatement);
86    void VisitContinueStatement(ContinueStatement continueStatement);
87    void VisitDoWhileStatement(DoWhileStatement doWhileStatement);
88    void VisitEmptyStatement(EmptyStatement emptyStatement);
89    void VisitExpressionStatement(ExpressionStatement expressionStatement);
90    void VisitFixedStatement(FixedStatement fixedStatement);
91    void VisitForeachStatement(ForeachStatement foreachStatement);
92    void VisitForStatement(ForStatement forStatement);
93    void VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement);
94    void VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement);
95    void VisitGotoStatement(GotoStatement gotoStatement);
96    void VisitIfElseStatement(IfElseStatement ifElseStatement);
97    void VisitLabelStatement(LabelStatement labelStatement);
98    void VisitLockStatement(LockStatement lockStatement);
99    void VisitReturnStatement(ReturnStatement returnStatement);
100    void VisitSwitchStatement(SwitchStatement switchStatement);
101    void VisitSwitchSection(SwitchSection switchSection);
102    void VisitCaseLabel(CaseLabel caseLabel);
103    void VisitThrowStatement(ThrowStatement throwStatement);
104    void VisitTryCatchStatement(TryCatchStatement tryCatchStatement);
105    void VisitCatchClause(CatchClause catchClause);
106    void VisitUncheckedStatement(UncheckedStatement uncheckedStatement);
107    void VisitUnsafeStatement(UnsafeStatement unsafeStatement);
108    void VisitUsingStatement(UsingStatement usingStatement);
109    void VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement);
110    void VisitWhileStatement(WhileStatement whileStatement);
111    void VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement);
112    void VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement);
113   
114    void VisitAccessor(Accessor accessor);
115    void VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration);
116    void VisitConstructorInitializer(ConstructorInitializer constructorInitializer);
117    void VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration);
118    void VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration);
119    void VisitEventDeclaration(EventDeclaration eventDeclaration);
120    void VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration);
121    void VisitFieldDeclaration(FieldDeclaration fieldDeclaration);
122    void VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration);
123    void VisitMethodDeclaration(MethodDeclaration methodDeclaration);
124    void VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration);
125    void VisitParameterDeclaration(ParameterDeclaration parameterDeclaration);
126    void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration);
127    void VisitVariableInitializer(VariableInitializer variableInitializer);
128    void VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration);
129    void VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer);
130   
131    void VisitSyntaxTree(SyntaxTree syntaxTree);
132    void VisitSimpleType(SimpleType simpleType);
133    void VisitMemberType(MemberType memberType);
134    void VisitComposedType(ComposedType composedType);
135    void VisitArraySpecifier(ArraySpecifier arraySpecifier);
136    void VisitPrimitiveType(PrimitiveType primitiveType);
137   
138    void VisitComment(Comment comment);
139    void VisitNewLine(NewLineNode newLineNode);
140    void VisitWhitespace(WhitespaceNode whitespaceNode);
141    void VisitText(TextNode textNode);
142    void VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective);
143    void VisitDocumentationReference(DocumentationReference documentationReference);
144   
145    void VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration);
146    void VisitConstraint(Constraint constraint);
147    void VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode);
148    void VisitIdentifier(Identifier identifier);
149   
150    void VisitNullNode(AstNode nullNode);
151    void VisitErrorNode(AstNode errorNode);
152    void VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern);
153  }
154 
155  /// <summary>
156  /// AST visitor.
157  /// </summary>
158  public interface IAstVisitor<out S>
159  {
160    S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression);
161    S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression);
162    S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression);
163    S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression);
164    S VisitAsExpression(AsExpression asExpression);
165    S VisitAssignmentExpression(AssignmentExpression assignmentExpression);
166    S VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression);
167    S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression);
168    S VisitCastExpression(CastExpression castExpression);
169    S VisitCheckedExpression(CheckedExpression checkedExpression);
170    S VisitConditionalExpression(ConditionalExpression conditionalExpression);
171    S VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression);
172    S VisitDirectionExpression(DirectionExpression directionExpression);
173    S VisitIdentifierExpression(IdentifierExpression identifierExpression);
174    S VisitIndexerExpression(IndexerExpression indexerExpression);
175    S VisitInvocationExpression(InvocationExpression invocationExpression);
176    S VisitIsExpression(IsExpression isExpression);
177    S VisitLambdaExpression(LambdaExpression lambdaExpression);
178    S VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression);
179    S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression);
180    S VisitNamedExpression(NamedExpression namedExpression);
181    S VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression);
182    S VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression);
183    S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression);
184    S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression);
185    S VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression);
186    S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression);
187    S VisitSizeOfExpression(SizeOfExpression sizeOfExpression);
188    S VisitStackAllocExpression(StackAllocExpression stackAllocExpression);
189    S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression);
190    S VisitTypeOfExpression(TypeOfExpression typeOfExpression);
191    S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression);
192    S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression);
193    S VisitUncheckedExpression(UncheckedExpression uncheckedExpression);
194
195    S VisitQueryExpression(QueryExpression queryExpression);
196    S VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause);
197    S VisitQueryFromClause(QueryFromClause queryFromClause);
198    S VisitQueryLetClause(QueryLetClause queryLetClause);
199    S VisitQueryWhereClause(QueryWhereClause queryWhereClause);
200    S VisitQueryJoinClause(QueryJoinClause queryJoinClause);
201    S VisitQueryOrderClause(QueryOrderClause queryOrderClause);
202    S VisitQueryOrdering(QueryOrdering queryOrdering);
203    S VisitQuerySelectClause(QuerySelectClause querySelectClause);
204    S VisitQueryGroupClause(QueryGroupClause queryGroupClause);
205   
206    S VisitAttribute(Attribute attribute);
207    S VisitAttributeSection(AttributeSection attributeSection);
208    S VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration);
209    S VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration);
210    S VisitTypeDeclaration(TypeDeclaration typeDeclaration);
211    S VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration);
212    S VisitUsingDeclaration(UsingDeclaration usingDeclaration);
213    S VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration);
214   
215    S VisitBlockStatement(BlockStatement blockStatement);
216    S VisitBreakStatement(BreakStatement breakStatement);
217    S VisitCheckedStatement(CheckedStatement checkedStatement);
218    S VisitContinueStatement(ContinueStatement continueStatement);
219    S VisitDoWhileStatement(DoWhileStatement doWhileStatement);
220    S VisitEmptyStatement(EmptyStatement emptyStatement);
221    S VisitExpressionStatement(ExpressionStatement expressionStatement);
222    S VisitFixedStatement(FixedStatement fixedStatement);
223    S VisitForeachStatement(ForeachStatement foreachStatement);
224    S VisitForStatement(ForStatement forStatement);
225    S VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement);
226    S VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement);
227    S VisitGotoStatement(GotoStatement gotoStatement);
228    S VisitIfElseStatement(IfElseStatement ifElseStatement);
229    S VisitLabelStatement(LabelStatement labelStatement);
230    S VisitLockStatement(LockStatement lockStatement);
231    S VisitReturnStatement(ReturnStatement returnStatement);
232    S VisitSwitchStatement(SwitchStatement switchStatement);
233    S VisitSwitchSection(SwitchSection switchSection);
234    S VisitCaseLabel(CaseLabel caseLabel);
235    S VisitThrowStatement(ThrowStatement throwStatement);
236    S VisitTryCatchStatement(TryCatchStatement tryCatchStatement);
237    S VisitCatchClause(CatchClause catchClause);
238    S VisitUncheckedStatement(UncheckedStatement uncheckedStatement);
239    S VisitUnsafeStatement(UnsafeStatement unsafeStatement);
240    S VisitUsingStatement(UsingStatement usingStatement);
241    S VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement);
242    S VisitWhileStatement(WhileStatement whileStatement);
243    S VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement);
244    S VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement);
245   
246    S VisitAccessor(Accessor accessor);
247    S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration);
248    S VisitConstructorInitializer(ConstructorInitializer constructorInitializer);
249    S VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration);
250    S VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration);
251    S VisitEventDeclaration(EventDeclaration eventDeclaration);
252    S VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration);
253    S VisitFieldDeclaration(FieldDeclaration fieldDeclaration);
254    S VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration);
255    S VisitMethodDeclaration(MethodDeclaration methodDeclaration);
256    S VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration);
257    S VisitParameterDeclaration(ParameterDeclaration parameterDeclaration);
258    S VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration);
259    S VisitVariableInitializer(VariableInitializer variableInitializer);
260    S VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration);
261    S VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer);
262   
263    S VisitSyntaxTree(SyntaxTree syntaxTree);
264    S VisitSimpleType(SimpleType simpleType);
265    S VisitMemberType(MemberType memberType);
266    S VisitComposedType(ComposedType composedType);
267    S VisitArraySpecifier(ArraySpecifier arraySpecifier);
268    S VisitPrimitiveType(PrimitiveType primitiveType);
269   
270    S VisitComment(Comment comment);
271    S VisitWhitespace(WhitespaceNode whitespaceNode);
272    S VisitText(TextNode textNode);
273    S VisitNewLine(NewLineNode newLineNode);
274    S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective);
275    S VisitDocumentationReference(DocumentationReference documentationReference);
276   
277    S VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration);
278    S VisitConstraint(Constraint constraint);
279    S VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode);
280    S VisitIdentifier(Identifier identifier);
281   
282    S VisitNullNode(AstNode nullNode);
283    S VisitErrorNode(AstNode errorNode);
284    S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern);
285  }
286 
287  /// <summary>
288  /// AST visitor.
289  /// </summary>
290  public interface IAstVisitor<in T, out S>
291  {
292    S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression, T data);
293    S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression, T data);
294    S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, T data);
295    S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data);
296    S VisitAsExpression(AsExpression asExpression, T data);
297    S VisitAssignmentExpression(AssignmentExpression assignmentExpression, T data);
298    S VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, T data);
299    S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, T data);
300    S VisitCastExpression(CastExpression castExpression, T data);
301    S VisitCheckedExpression(CheckedExpression checkedExpression, T data);
302    S VisitConditionalExpression(ConditionalExpression conditionalExpression, T data);
303    S VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, T data);
304    S VisitDirectionExpression(DirectionExpression directionExpression, T data);
305    S VisitIdentifierExpression(IdentifierExpression identifierExpression, T data);
306    S VisitIndexerExpression(IndexerExpression indexerExpression, T data);
307    S VisitInvocationExpression(InvocationExpression invocationExpression, T data);
308    S VisitIsExpression(IsExpression isExpression, T data);
309    S VisitLambdaExpression(LambdaExpression lambdaExpression, T data);
310    S VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, T data);
311    S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, T data);
312    S VisitNamedExpression(NamedExpression namedExpression, T data);
313    S VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression, T data);
314    S VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression, T data);
315    S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression, T data);
316    S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, T data);
317    S VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression, T data);
318    S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, T data);
319    S VisitSizeOfExpression(SizeOfExpression sizeOfExpression, T data);
320    S VisitStackAllocExpression(StackAllocExpression stackAllocExpression, T data);
321    S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, T data);
322    S VisitTypeOfExpression(TypeOfExpression typeOfExpression, T data);
323    S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data);
324    S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, T data);
325    S VisitUncheckedExpression(UncheckedExpression uncheckedExpression, T data);
326
327    S VisitQueryExpression(QueryExpression queryExpression, T data);
328    S VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause, T data);
329    S VisitQueryFromClause(QueryFromClause queryFromClause, T data);
330    S VisitQueryLetClause(QueryLetClause queryLetClause, T data);
331    S VisitQueryWhereClause(QueryWhereClause queryWhereClause, T data);
332    S VisitQueryJoinClause(QueryJoinClause queryJoinClause, T data);
333    S VisitQueryOrderClause(QueryOrderClause queryOrderClause, T data);
334    S VisitQueryOrdering(QueryOrdering queryOrdering, T data);
335    S VisitQuerySelectClause(QuerySelectClause querySelectClause, T data);
336    S VisitQueryGroupClause(QueryGroupClause queryGroupClause, T data);
337   
338    S VisitAttribute(Attribute attribute, T data);
339    S VisitAttributeSection(AttributeSection attributeSection, T data);
340    S VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, T data);
341    S VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, T data);
342    S VisitTypeDeclaration(TypeDeclaration typeDeclaration, T data);
343    S VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration, T data);
344    S VisitUsingDeclaration(UsingDeclaration usingDeclaration, T data);
345    S VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration, T data);
346   
347    S VisitBlockStatement(BlockStatement blockStatement, T data);
348    S VisitBreakStatement(BreakStatement breakStatement, T data);
349    S VisitCheckedStatement(CheckedStatement checkedStatement, T data);
350    S VisitContinueStatement(ContinueStatement continueStatement, T data);
351    S VisitDoWhileStatement(DoWhileStatement doWhileStatement, T data);
352    S VisitEmptyStatement(EmptyStatement emptyStatement, T data);
353    S VisitExpressionStatement(ExpressionStatement expressionStatement, T data);
354    S VisitFixedStatement(FixedStatement fixedStatement, T data);
355    S VisitForeachStatement(ForeachStatement foreachStatement, T data);
356    S VisitForStatement(ForStatement forStatement, T data);
357    S VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement, T data);
358    S VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement, T data);
359    S VisitGotoStatement(GotoStatement gotoStatement, T data);
360    S VisitIfElseStatement(IfElseStatement ifElseStatement, T data);
361    S VisitLabelStatement(LabelStatement labelStatement, T data);
362    S VisitLockStatement(LockStatement lockStatement, T data);
363    S VisitReturnStatement(ReturnStatement returnStatement, T data);
364    S VisitSwitchStatement(SwitchStatement switchStatement, T data);
365    S VisitSwitchSection(SwitchSection switchSection, T data);
366    S VisitCaseLabel(CaseLabel caseLabel, T data);
367    S VisitThrowStatement(ThrowStatement throwStatement, T data);
368    S VisitTryCatchStatement(TryCatchStatement tryCatchStatement, T data);
369    S VisitCatchClause(CatchClause catchClause, T data);
370    S VisitUncheckedStatement(UncheckedStatement uncheckedStatement, T data);
371    S VisitUnsafeStatement(UnsafeStatement unsafeStatement, T data);
372    S VisitUsingStatement(UsingStatement usingStatement, T data);
373    S VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement, T data);
374    S VisitWhileStatement(WhileStatement whileStatement, T data);
375    S VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement, T data);
376    S VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement, T data);
377   
378    S VisitAccessor(Accessor accessor, T data);
379    S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, T data);
380    S VisitConstructorInitializer(ConstructorInitializer constructorInitializer, T data);
381    S VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration, T data);
382    S VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration, T data);
383    S VisitEventDeclaration(EventDeclaration eventDeclaration, T data);
384    S VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration, T data);
385    S VisitFieldDeclaration(FieldDeclaration fieldDeclaration, T data);
386    S VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration, T data);
387    S VisitMethodDeclaration(MethodDeclaration methodDeclaration, T data);
388    S VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, T data);
389    S VisitParameterDeclaration(ParameterDeclaration parameterDeclaration, T data);
390    S VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, T data);
391    S VisitVariableInitializer(VariableInitializer variableInitializer, T data);
392    S VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration, T data);
393    S VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer, T data);
394   
395    S VisitSyntaxTree(SyntaxTree syntaxTree, T data);
396    S VisitSimpleType(SimpleType simpleType, T data);
397    S VisitMemberType(MemberType memberType, T data);
398    S VisitComposedType(ComposedType composedType, T data);
399    S VisitArraySpecifier(ArraySpecifier arraySpecifier, T data);
400    S VisitPrimitiveType(PrimitiveType primitiveType, T data);
401   
402    S VisitComment(Comment comment, T data);
403    S VisitNewLine(NewLineNode newLineNode, T data);
404    S VisitWhitespace(WhitespaceNode whitespaceNode, T data);
405    S VisitText(TextNode textNode, T data);
406    S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective, T data);
407    S VisitDocumentationReference(DocumentationReference documentationReference, T data);
408   
409    S VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration, T data);
410    S VisitConstraint(Constraint constraint, T data);
411    S VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode, T data);
412    S VisitIdentifier(Identifier identifier, T data);
413   
414    S VisitNullNode(AstNode nullNode, T data);
415    S VisitErrorNode(AstNode errorNode, T data);
416    S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern, T data);
417  }
418}
Note: See TracBrowser for help on using the repository browser.