~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to contrib/ICSharpCode.NRefactory.CSharp/Ast/IAstVisitor.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
ļ»æ// Copyright (c) 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
 
 
19
 
using System;
20
 
 
21
 
namespace 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
 
                void VisitEmptyExpression (EmptyExpression emptyExpression);
63
 
                
64
 
                void VisitQueryExpression(QueryExpression queryExpression);
65
 
                void VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause);
66
 
                void VisitQueryFromClause(QueryFromClause queryFromClause);
67
 
                void VisitQueryLetClause(QueryLetClause queryLetClause);
68
 
                void VisitQueryWhereClause(QueryWhereClause queryWhereClause);
69
 
                void VisitQueryJoinClause(QueryJoinClause queryJoinClause);
70
 
                void VisitQueryOrderClause(QueryOrderClause queryOrderClause);
71
 
                void VisitQueryOrdering(QueryOrdering queryOrdering);
72
 
                void VisitQuerySelectClause(QuerySelectClause querySelectClause);
73
 
                void VisitQueryGroupClause(QueryGroupClause queryGroupClause);
74
 
                
75
 
                void VisitAttribute(Attribute attribute);
76
 
                void VisitAttributeSection(AttributeSection attributeSection);
77
 
                void VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration);
78
 
                void VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration);
79
 
                void VisitTypeDeclaration(TypeDeclaration typeDeclaration);
80
 
                void VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration);
81
 
                void VisitUsingDeclaration(UsingDeclaration usingDeclaration);
82
 
                void VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration);
83
 
                
84
 
                void VisitBlockStatement(BlockStatement blockStatement);
85
 
                void VisitBreakStatement(BreakStatement breakStatement);
86
 
                void VisitCheckedStatement(CheckedStatement checkedStatement);
87
 
                void VisitContinueStatement(ContinueStatement continueStatement);
88
 
                void VisitDoWhileStatement(DoWhileStatement doWhileStatement);
89
 
                void VisitEmptyStatement(EmptyStatement emptyStatement);
90
 
                void VisitExpressionStatement(ExpressionStatement expressionStatement);
91
 
                void VisitFixedStatement(FixedStatement fixedStatement);
92
 
                void VisitForeachStatement(ForeachStatement foreachStatement);
93
 
                void VisitForStatement(ForStatement forStatement);
94
 
                void VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement);
95
 
                void VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement);
96
 
                void VisitGotoStatement(GotoStatement gotoStatement);
97
 
                void VisitIfElseStatement(IfElseStatement ifElseStatement);
98
 
                void VisitLabelStatement(LabelStatement labelStatement);
99
 
                void VisitLockStatement(LockStatement lockStatement);
100
 
                void VisitReturnStatement(ReturnStatement returnStatement);
101
 
                void VisitSwitchStatement(SwitchStatement switchStatement);
102
 
                void VisitSwitchSection(SwitchSection switchSection);
103
 
                void VisitCaseLabel(CaseLabel caseLabel);
104
 
                void VisitThrowStatement(ThrowStatement throwStatement);
105
 
                void VisitTryCatchStatement(TryCatchStatement tryCatchStatement);
106
 
                void VisitCatchClause(CatchClause catchClause);
107
 
                void VisitUncheckedStatement(UncheckedStatement uncheckedStatement);
108
 
                void VisitUnsafeStatement(UnsafeStatement unsafeStatement);
109
 
                void VisitUsingStatement(UsingStatement usingStatement);
110
 
                void VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement);
111
 
                void VisitWhileStatement(WhileStatement whileStatement);
112
 
                void VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement);
113
 
                void VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement);
114
 
                
115
 
                void VisitAccessor(Accessor accessor);
116
 
                void VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration);
117
 
                void VisitConstructorInitializer(ConstructorInitializer constructorInitializer);
118
 
                void VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration);
119
 
                void VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration);
120
 
                void VisitEventDeclaration(EventDeclaration eventDeclaration);
121
 
                void VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration);
122
 
                void VisitFieldDeclaration(FieldDeclaration fieldDeclaration);
123
 
                void VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration);
124
 
                void VisitMethodDeclaration(MethodDeclaration methodDeclaration);
125
 
                void VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration);
126
 
                void VisitParameterDeclaration(ParameterDeclaration parameterDeclaration);
127
 
                void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration);
128
 
                void VisitVariableInitializer(VariableInitializer variableInitializer);
129
 
                void VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration);
130
 
                void VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer);
131
 
                
132
 
                void VisitCompilationUnit(CompilationUnit compilationUnit);
133
 
                void VisitSimpleType(SimpleType simpleType);
134
 
                void VisitMemberType(MemberType memberType);
135
 
                void VisitComposedType(ComposedType composedType);
136
 
                void VisitArraySpecifier(ArraySpecifier arraySpecifier);
137
 
                void VisitPrimitiveType(PrimitiveType primitiveType);
138
 
                
139
 
                void VisitComment(Comment comment);
140
 
                void VisitNewLine(NewLineNode newLineNode);
141
 
                void VisitWhitespace(WhitespaceNode whitespaceNode);
142
 
                void VisitText(TextNode textNode);
143
 
                void VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective);
144
 
                void VisitDocumentationReference(DocumentationReference documentationReference);
145
 
                
146
 
                void VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration);
147
 
                void VisitConstraint(Constraint constraint);
148
 
                void VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode);
149
 
                void VisitIdentifier(Identifier identifier);
150
 
                
151
 
                void VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern);
152
 
        }
153
 
        
154
 
        /// <summary>
155
 
        /// AST visitor.
156
 
        /// </summary>
157
 
        public interface IAstVisitor<out S>
158
 
        {
159
 
                S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression);
160
 
                S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression);
161
 
                S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression);
162
 
                S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression);
163
 
                S VisitAsExpression(AsExpression asExpression);
164
 
                S VisitAssignmentExpression(AssignmentExpression assignmentExpression);
165
 
                S VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression);
166
 
                S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression);
167
 
                S VisitCastExpression(CastExpression castExpression);
168
 
                S VisitCheckedExpression(CheckedExpression checkedExpression);
169
 
                S VisitConditionalExpression(ConditionalExpression conditionalExpression);
170
 
                S VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression);
171
 
                S VisitDirectionExpression(DirectionExpression directionExpression);
172
 
                S VisitIdentifierExpression(IdentifierExpression identifierExpression);
173
 
                S VisitIndexerExpression(IndexerExpression indexerExpression);
174
 
                S VisitInvocationExpression(InvocationExpression invocationExpression);
175
 
                S VisitIsExpression(IsExpression isExpression);
176
 
                S VisitLambdaExpression(LambdaExpression lambdaExpression);
177
 
                S VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression);
178
 
                S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression);
179
 
                S VisitNamedExpression(NamedExpression namedExpression);
180
 
                S VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression);
181
 
                S VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression);
182
 
                S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression);
183
 
                S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression);
184
 
                S VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression);
185
 
                S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression);
186
 
                S VisitSizeOfExpression(SizeOfExpression sizeOfExpression);
187
 
                S VisitStackAllocExpression(StackAllocExpression stackAllocExpression);
188
 
                S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression);
189
 
                S VisitTypeOfExpression(TypeOfExpression typeOfExpression);
190
 
                S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression);
191
 
                S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression);
192
 
                S VisitUncheckedExpression(UncheckedExpression uncheckedExpression);
193
 
                S VisitEmptyExpression (EmptyExpression emptyExpression);
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 VisitCompilationUnit(CompilationUnit compilationUnit);
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 VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern);
283
 
        }
284
 
        
285
 
        /// <summary>
286
 
        /// AST visitor.
287
 
        /// </summary>
288
 
        public interface IAstVisitor<in T, out S>
289
 
        {
290
 
                S VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression, T data);
291
 
                S VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression, T data);
292
 
                S VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, T data);
293
 
                S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data);
294
 
                S VisitAsExpression(AsExpression asExpression, T data);
295
 
                S VisitAssignmentExpression(AssignmentExpression assignmentExpression, T data);
296
 
                S VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, T data);
297
 
                S VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, T data);
298
 
                S VisitCastExpression(CastExpression castExpression, T data);
299
 
                S VisitCheckedExpression(CheckedExpression checkedExpression, T data);
300
 
                S VisitConditionalExpression(ConditionalExpression conditionalExpression, T data);
301
 
                S VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, T data);
302
 
                S VisitDirectionExpression(DirectionExpression directionExpression, T data);
303
 
                S VisitIdentifierExpression(IdentifierExpression identifierExpression, T data);
304
 
                S VisitIndexerExpression(IndexerExpression indexerExpression, T data);
305
 
                S VisitInvocationExpression(InvocationExpression invocationExpression, T data);
306
 
                S VisitIsExpression(IsExpression isExpression, T data);
307
 
                S VisitLambdaExpression(LambdaExpression lambdaExpression, T data);
308
 
                S VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, T data);
309
 
                S VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, T data);
310
 
                S VisitNamedExpression(NamedExpression namedExpression, T data);
311
 
                S VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression, T data);
312
 
                S VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression, T data);
313
 
                S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression, T data);
314
 
                S VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, T data);
315
 
                S VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression, T data);
316
 
                S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, T data);
317
 
                S VisitSizeOfExpression(SizeOfExpression sizeOfExpression, T data);
318
 
                S VisitStackAllocExpression(StackAllocExpression stackAllocExpression, T data);
319
 
                S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, T data);
320
 
                S VisitTypeOfExpression(TypeOfExpression typeOfExpression, T data);
321
 
                S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data);
322
 
                S VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, T data);
323
 
                S VisitUncheckedExpression(UncheckedExpression uncheckedExpression, T data);
324
 
                S VisitEmptyExpression (EmptyExpression emptyExpression, T data);
325
 
                
326
 
                S VisitQueryExpression(QueryExpression queryExpression, T data);
327
 
                S VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause, T data);
328
 
                S VisitQueryFromClause(QueryFromClause queryFromClause, T data);
329
 
                S VisitQueryLetClause(QueryLetClause queryLetClause, T data);
330
 
                S VisitQueryWhereClause(QueryWhereClause queryWhereClause, T data);
331
 
                S VisitQueryJoinClause(QueryJoinClause queryJoinClause, T data);
332
 
                S VisitQueryOrderClause(QueryOrderClause queryOrderClause, T data);
333
 
                S VisitQueryOrdering(QueryOrdering queryOrdering, T data);
334
 
                S VisitQuerySelectClause(QuerySelectClause querySelectClause, T data);
335
 
                S VisitQueryGroupClause(QueryGroupClause queryGroupClause, T data);
336
 
                
337
 
                S VisitAttribute(Attribute attribute, T data);
338
 
                S VisitAttributeSection(AttributeSection attributeSection, T data);
339
 
                S VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, T data);
340
 
                S VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, T data);
341
 
                S VisitTypeDeclaration(TypeDeclaration typeDeclaration, T data);
342
 
                S VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration, T data);
343
 
                S VisitUsingDeclaration(UsingDeclaration usingDeclaration, T data);
344
 
                S VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration, T data);
345
 
                
346
 
                S VisitBlockStatement(BlockStatement blockStatement, T data);
347
 
                S VisitBreakStatement(BreakStatement breakStatement, T data);
348
 
                S VisitCheckedStatement(CheckedStatement checkedStatement, T data);
349
 
                S VisitContinueStatement(ContinueStatement continueStatement, T data);
350
 
                S VisitDoWhileStatement(DoWhileStatement doWhileStatement, T data);
351
 
                S VisitEmptyStatement(EmptyStatement emptyStatement, T data);
352
 
                S VisitExpressionStatement(ExpressionStatement expressionStatement, T data);
353
 
                S VisitFixedStatement(FixedStatement fixedStatement, T data);
354
 
                S VisitForeachStatement(ForeachStatement foreachStatement, T data);
355
 
                S VisitForStatement(ForStatement forStatement, T data);
356
 
                S VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement, T data);
357
 
                S VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement, T data);
358
 
                S VisitGotoStatement(GotoStatement gotoStatement, T data);
359
 
                S VisitIfElseStatement(IfElseStatement ifElseStatement, T data);
360
 
                S VisitLabelStatement(LabelStatement labelStatement, T data);
361
 
                S VisitLockStatement(LockStatement lockStatement, T data);
362
 
                S VisitReturnStatement(ReturnStatement returnStatement, T data);
363
 
                S VisitSwitchStatement(SwitchStatement switchStatement, T data);
364
 
                S VisitSwitchSection(SwitchSection switchSection, T data);
365
 
                S VisitCaseLabel(CaseLabel caseLabel, T data);
366
 
                S VisitThrowStatement(ThrowStatement throwStatement, T data);
367
 
                S VisitTryCatchStatement(TryCatchStatement tryCatchStatement, T data);
368
 
                S VisitCatchClause(CatchClause catchClause, T data);
369
 
                S VisitUncheckedStatement(UncheckedStatement uncheckedStatement, T data);
370
 
                S VisitUnsafeStatement(UnsafeStatement unsafeStatement, T data);
371
 
                S VisitUsingStatement(UsingStatement usingStatement, T data);
372
 
                S VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement, T data);
373
 
                S VisitWhileStatement(WhileStatement whileStatement, T data);
374
 
                S VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement, T data);
375
 
                S VisitYieldReturnStatement(YieldReturnStatement yieldReturnStatement, T data);
376
 
                
377
 
                S VisitAccessor(Accessor accessor, T data);
378
 
                S VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, T data);
379
 
                S VisitConstructorInitializer(ConstructorInitializer constructorInitializer, T data);
380
 
                S VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration, T data);
381
 
                S VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration, T data);
382
 
                S VisitEventDeclaration(EventDeclaration eventDeclaration, T data);
383
 
                S VisitCustomEventDeclaration(CustomEventDeclaration customEventDeclaration, T data);
384
 
                S VisitFieldDeclaration(FieldDeclaration fieldDeclaration, T data);
385
 
                S VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration, T data);
386
 
                S VisitMethodDeclaration(MethodDeclaration methodDeclaration, T data);
387
 
                S VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, T data);
388
 
                S VisitParameterDeclaration(ParameterDeclaration parameterDeclaration, T data);
389
 
                S VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, T data);
390
 
                S VisitVariableInitializer(VariableInitializer variableInitializer, T data);
391
 
                S VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration, T data);
392
 
                S VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer, T data);
393
 
                
394
 
                S VisitCompilationUnit(CompilationUnit compilationUnit, T data);
395
 
                S VisitSimpleType(SimpleType simpleType, T data);
396
 
                S VisitMemberType(MemberType memberType, T data);
397
 
                S VisitComposedType(ComposedType composedType, T data);
398
 
                S VisitArraySpecifier(ArraySpecifier arraySpecifier, T data);
399
 
                S VisitPrimitiveType(PrimitiveType primitiveType, T data);
400
 
                
401
 
                S VisitComment(Comment comment, T data);
402
 
                S VisitNewLine(NewLineNode newLineNode, T data);
403
 
                S VisitWhitespace(WhitespaceNode whitespaceNode, T data);
404
 
                S VisitText(TextNode textNode, T data);
405
 
                S VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective, T data);
406
 
                S VisitDocumentationReference(DocumentationReference documentationReference, T data);
407
 
                
408
 
                S VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration, T data);
409
 
                S VisitConstraint(Constraint constraint, T data);
410
 
                S VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode, T data);
411
 
                S VisitIdentifier(Identifier identifier, T data);
412
 
                
413
 
                S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern, T data);
414
 
        }
415
 
}