1 | // |
---|
2 | // ObservableAstVisitor.cs |
---|
3 | // |
---|
4 | // Author: |
---|
5 | // Mike Krüger <mkrueger@novell.com> |
---|
6 | // |
---|
7 | // Copyright (c) 2011 Novell, Inc (http://www.novell.com) |
---|
8 | // |
---|
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy |
---|
10 | // of this software and associated documentation files (the "Software"), to deal |
---|
11 | // in the Software without restriction, including without limitation the rights |
---|
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
---|
13 | // copies of the Software, and to permit persons to whom the Software is |
---|
14 | // furnished to do so, subject to the following conditions: |
---|
15 | // |
---|
16 | // The above copyright notice and this permission notice shall be included in |
---|
17 | // all copies or substantial portions of the Software. |
---|
18 | // |
---|
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
---|
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
---|
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
---|
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
---|
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
---|
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
---|
25 | // THE SOFTWARE. |
---|
26 | |
---|
27 | using System; |
---|
28 | |
---|
29 | namespace ICSharpCode.NRefactory.CSharp |
---|
30 | { |
---|
31 | public class ObservableAstVisitor : IAstVisitor |
---|
32 | { |
---|
33 | void Visit<T>(Action<T> enter, Action<T> leave, T node) where T : AstNode |
---|
34 | { |
---|
35 | if (enter != null) |
---|
36 | enter(node); |
---|
37 | AstNode next; |
---|
38 | for (var child = node.FirstChild; child != null; child = next) { |
---|
39 | // Store next to allow the loop to continue |
---|
40 | // if the visitor removes/replaces children. |
---|
41 | next = child.NextSibling; |
---|
42 | child.AcceptVisitor (this); |
---|
43 | } |
---|
44 | if (leave != null) |
---|
45 | leave(node); |
---|
46 | } |
---|
47 | |
---|
48 | void IAstVisitor.VisitNullNode(AstNode nullNode) |
---|
49 | { |
---|
50 | } |
---|
51 | |
---|
52 | void IAstVisitor.VisitErrorNode(AstNode nullNode) |
---|
53 | { |
---|
54 | } |
---|
55 | |
---|
56 | public event Action<SyntaxTree> EnterSyntaxTree, LeaveSyntaxTree; |
---|
57 | |
---|
58 | void IAstVisitor.VisitSyntaxTree(SyntaxTree unit) |
---|
59 | { |
---|
60 | Visit(EnterSyntaxTree, LeaveSyntaxTree, unit); |
---|
61 | } |
---|
62 | |
---|
63 | public event Action<Comment> EnterComment, LeaveComment; |
---|
64 | |
---|
65 | void IAstVisitor.VisitComment(Comment comment) |
---|
66 | { |
---|
67 | Visit(EnterComment, LeaveComment, comment); |
---|
68 | } |
---|
69 | |
---|
70 | public event Action<NewLineNode> EnterNewLine, LeaveNewLine; |
---|
71 | |
---|
72 | void IAstVisitor.VisitNewLine(NewLineNode newLineNode) |
---|
73 | { |
---|
74 | Visit(EnterNewLine, LeaveNewLine, newLineNode); |
---|
75 | } |
---|
76 | |
---|
77 | public event Action<WhitespaceNode> EnterWhitespace, LeaveWhitespace; |
---|
78 | |
---|
79 | void IAstVisitor.VisitWhitespace(WhitespaceNode whitespace) |
---|
80 | { |
---|
81 | Visit(EnterWhitespace, LeaveWhitespace, whitespace); |
---|
82 | } |
---|
83 | |
---|
84 | public event Action<TextNode> EnterText, LeaveText; |
---|
85 | |
---|
86 | void IAstVisitor.VisitText(TextNode textNode) |
---|
87 | { |
---|
88 | Visit(EnterText, LeaveText, textNode); |
---|
89 | } |
---|
90 | |
---|
91 | public event Action<PreProcessorDirective> EnterPreProcessorDirective, LeavePreProcessorDirective; |
---|
92 | void IAstVisitor.VisitPreProcessorDirective(PreProcessorDirective preProcessorDirective) |
---|
93 | { |
---|
94 | Visit(EnterPreProcessorDirective, LeavePreProcessorDirective, preProcessorDirective); |
---|
95 | } |
---|
96 | |
---|
97 | public event Action<DocumentationReference> EnterDocumentationReference, LeaveDocumentationReference; |
---|
98 | |
---|
99 | void IAstVisitor.VisitDocumentationReference(DocumentationReference documentationReference) |
---|
100 | { |
---|
101 | Visit(EnterDocumentationReference, LeaveDocumentationReference, documentationReference); |
---|
102 | } |
---|
103 | |
---|
104 | public event Action<Identifier> EnterIdentifier, LeaveIdentifier; |
---|
105 | |
---|
106 | void IAstVisitor.VisitIdentifier(Identifier identifier) |
---|
107 | { |
---|
108 | Visit(EnterIdentifier, LeaveIdentifier, identifier); |
---|
109 | } |
---|
110 | |
---|
111 | public event Action<CSharpTokenNode> EnterCSharpTokenNode, LeaveCSharpTokenNode; |
---|
112 | |
---|
113 | void IAstVisitor.VisitCSharpTokenNode(CSharpTokenNode token) |
---|
114 | { |
---|
115 | Visit(EnterCSharpTokenNode, LeaveCSharpTokenNode, token); |
---|
116 | } |
---|
117 | |
---|
118 | public event Action<PrimitiveType> EnterPrimitiveType, LeavePrimitiveType; |
---|
119 | |
---|
120 | void IAstVisitor.VisitPrimitiveType(PrimitiveType primitiveType) |
---|
121 | { |
---|
122 | Visit(EnterPrimitiveType, LeavePrimitiveType, primitiveType); |
---|
123 | } |
---|
124 | |
---|
125 | public event Action<ComposedType> EnterComposedType, LeaveComposedType; |
---|
126 | |
---|
127 | void IAstVisitor.VisitComposedType(ComposedType composedType) |
---|
128 | { |
---|
129 | Visit(EnterComposedType, LeaveComposedType, composedType); |
---|
130 | } |
---|
131 | |
---|
132 | public event Action<SimpleType> EnterSimpleType, LeaveSimpleType; |
---|
133 | |
---|
134 | void IAstVisitor.VisitSimpleType(SimpleType simpleType) |
---|
135 | { |
---|
136 | Visit(EnterSimpleType, LeaveSimpleType, simpleType); |
---|
137 | } |
---|
138 | |
---|
139 | public event Action<MemberType> EnterMemberType, LeaveMemberType; |
---|
140 | |
---|
141 | void IAstVisitor.VisitMemberType(MemberType memberType) |
---|
142 | { |
---|
143 | Visit(EnterMemberType, LeaveMemberType, memberType); |
---|
144 | } |
---|
145 | |
---|
146 | public event Action<Attribute> EnterAttribute, LeaveAttribute; |
---|
147 | |
---|
148 | void IAstVisitor.VisitAttribute(Attribute attribute) |
---|
149 | { |
---|
150 | Visit(EnterAttribute, LeaveAttribute, attribute); |
---|
151 | } |
---|
152 | |
---|
153 | public event Action<AttributeSection> EnterAttributeSection, LeaveAttributeSection; |
---|
154 | |
---|
155 | void IAstVisitor.VisitAttributeSection(AttributeSection attributeSection) |
---|
156 | { |
---|
157 | Visit(EnterAttributeSection, LeaveAttributeSection, attributeSection); |
---|
158 | } |
---|
159 | |
---|
160 | public event Action<DelegateDeclaration> EnterDelegateDeclaration, LeaveDelegateDeclaration; |
---|
161 | |
---|
162 | void IAstVisitor.VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration) |
---|
163 | { |
---|
164 | Visit(EnterDelegateDeclaration, LeaveDelegateDeclaration, delegateDeclaration); |
---|
165 | } |
---|
166 | |
---|
167 | public event Action<NamespaceDeclaration> EnterNamespaceDeclaration, LeaveNamespaceDeclaration; |
---|
168 | |
---|
169 | void IAstVisitor.VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration) |
---|
170 | { |
---|
171 | Visit(EnterNamespaceDeclaration, LeaveNamespaceDeclaration, namespaceDeclaration); |
---|
172 | } |
---|
173 | |
---|
174 | public event Action<TypeDeclaration> EnterTypeDeclaration, LeaveTypeDeclaration; |
---|
175 | |
---|
176 | void IAstVisitor.VisitTypeDeclaration(TypeDeclaration typeDeclaration) |
---|
177 | { |
---|
178 | Visit(EnterTypeDeclaration, LeaveTypeDeclaration, typeDeclaration); |
---|
179 | } |
---|
180 | |
---|
181 | public event Action<TypeParameterDeclaration> EnterTypeParameterDeclaration, LeaveTypeParameterDeclaration; |
---|
182 | |
---|
183 | void IAstVisitor.VisitTypeParameterDeclaration(TypeParameterDeclaration typeParameterDeclaration) |
---|
184 | { |
---|
185 | Visit(EnterTypeParameterDeclaration, LeaveTypeParameterDeclaration, typeParameterDeclaration); |
---|
186 | } |
---|
187 | |
---|
188 | public event Action<EnumMemberDeclaration> EnterEnumMemberDeclaration, LeaveEnumMemberDeclaration; |
---|
189 | |
---|
190 | void IAstVisitor.VisitEnumMemberDeclaration(EnumMemberDeclaration enumMemberDeclaration) |
---|
191 | { |
---|
192 | Visit(EnterEnumMemberDeclaration, LeaveEnumMemberDeclaration, enumMemberDeclaration); |
---|
193 | } |
---|
194 | |
---|
195 | public event Action<UsingDeclaration> EnterUsingDeclaration, LeaveUsingDeclaration; |
---|
196 | |
---|
197 | void IAstVisitor.VisitUsingDeclaration(UsingDeclaration usingDeclaration) |
---|
198 | { |
---|
199 | Visit(EnterUsingDeclaration, LeaveUsingDeclaration, usingDeclaration); |
---|
200 | } |
---|
201 | |
---|
202 | public event Action<UsingAliasDeclaration> EnterUsingAliasDeclaration, LeaveUsingAliasDeclaration; |
---|
203 | |
---|
204 | void IAstVisitor.VisitUsingAliasDeclaration(UsingAliasDeclaration usingDeclaration) |
---|
205 | { |
---|
206 | Visit(EnterUsingAliasDeclaration, LeaveUsingAliasDeclaration, usingDeclaration); |
---|
207 | } |
---|
208 | |
---|
209 | public event Action<ExternAliasDeclaration> EnterExternAliasDeclaration, LeaveExternAliasDeclaration; |
---|
210 | |
---|
211 | void IAstVisitor.VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration) |
---|
212 | { |
---|
213 | Visit(EnterExternAliasDeclaration, LeaveExternAliasDeclaration, externAliasDeclaration); |
---|
214 | } |
---|
215 | |
---|
216 | public event Action<ConstructorDeclaration> EnterConstructorDeclaration, LeaveConstructorDeclaration; |
---|
217 | |
---|
218 | void IAstVisitor.VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration) |
---|
219 | { |
---|
220 | Visit(EnterConstructorDeclaration, LeaveConstructorDeclaration, constructorDeclaration); |
---|
221 | } |
---|
222 | |
---|
223 | public event Action<ConstructorInitializer> EnterConstructorInitializer, LeaveConstructorInitializer; |
---|
224 | |
---|
225 | void IAstVisitor.VisitConstructorInitializer(ConstructorInitializer constructorInitializer) |
---|
226 | { |
---|
227 | Visit(EnterConstructorInitializer, LeaveConstructorInitializer, constructorInitializer); |
---|
228 | } |
---|
229 | |
---|
230 | public event Action<DestructorDeclaration> EnterDestructorDeclaration, LeaveDestructorDeclaration; |
---|
231 | |
---|
232 | void IAstVisitor.VisitDestructorDeclaration(DestructorDeclaration destructorDeclaration) |
---|
233 | { |
---|
234 | Visit(EnterDestructorDeclaration, LeaveDestructorDeclaration, destructorDeclaration); |
---|
235 | } |
---|
236 | |
---|
237 | public event Action<EventDeclaration> EnterEventDeclaration, LeaveEventDeclaration; |
---|
238 | |
---|
239 | void IAstVisitor.VisitEventDeclaration(EventDeclaration eventDeclaration) |
---|
240 | { |
---|
241 | Visit(EnterEventDeclaration, LeaveEventDeclaration, eventDeclaration); |
---|
242 | } |
---|
243 | |
---|
244 | public event Action<CustomEventDeclaration> EnterCustomEventDeclaration, LeaveCustomEventDeclaration; |
---|
245 | |
---|
246 | void IAstVisitor.VisitCustomEventDeclaration(CustomEventDeclaration eventDeclaration) |
---|
247 | { |
---|
248 | Visit(EnterCustomEventDeclaration, LeaveCustomEventDeclaration, eventDeclaration); |
---|
249 | } |
---|
250 | |
---|
251 | public event Action<FieldDeclaration> EnterFieldDeclaration, LeaveFieldDeclaration; |
---|
252 | |
---|
253 | void IAstVisitor.VisitFieldDeclaration(FieldDeclaration fieldDeclaration) |
---|
254 | { |
---|
255 | Visit(EnterFieldDeclaration, LeaveFieldDeclaration, fieldDeclaration); |
---|
256 | } |
---|
257 | |
---|
258 | public event Action<FixedFieldDeclaration> EnterFixedFieldDeclaration, LeaveFixedFieldDeclaration; |
---|
259 | |
---|
260 | void IAstVisitor.VisitFixedFieldDeclaration(FixedFieldDeclaration fixedFieldDeclaration) |
---|
261 | { |
---|
262 | Visit(EnterFixedFieldDeclaration, LeaveFixedFieldDeclaration, fixedFieldDeclaration); |
---|
263 | } |
---|
264 | |
---|
265 | public event Action<FixedVariableInitializer> EnterFixedVariableInitializer, LeaveFixedVariableInitializer; |
---|
266 | |
---|
267 | void IAstVisitor.VisitFixedVariableInitializer(FixedVariableInitializer fixedVariableInitializer) |
---|
268 | { |
---|
269 | Visit(EnterFixedVariableInitializer, LeaveFixedVariableInitializer, fixedVariableInitializer); |
---|
270 | } |
---|
271 | |
---|
272 | public event Action<IndexerDeclaration> EnterIndexerDeclaration, LeaveIndexerDeclaration; |
---|
273 | |
---|
274 | void IAstVisitor.VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration) |
---|
275 | { |
---|
276 | Visit(EnterIndexerDeclaration, LeaveIndexerDeclaration, indexerDeclaration); |
---|
277 | } |
---|
278 | |
---|
279 | public event Action<MethodDeclaration> EnterMethodDeclaration, LeaveMethodDeclaration; |
---|
280 | |
---|
281 | void IAstVisitor.VisitMethodDeclaration(MethodDeclaration methodDeclaration) |
---|
282 | { |
---|
283 | Visit(EnterMethodDeclaration, LeaveMethodDeclaration, methodDeclaration); |
---|
284 | } |
---|
285 | |
---|
286 | public event Action<OperatorDeclaration> EnterOperatorDeclaration, LeaveOperatorDeclaration; |
---|
287 | |
---|
288 | void IAstVisitor.VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration) |
---|
289 | { |
---|
290 | Visit(EnterOperatorDeclaration, LeaveOperatorDeclaration, operatorDeclaration); |
---|
291 | } |
---|
292 | |
---|
293 | public event Action<PropertyDeclaration> EnterPropertyDeclaration, LeavePropertyDeclaration; |
---|
294 | |
---|
295 | void IAstVisitor.VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration) |
---|
296 | { |
---|
297 | Visit(EnterPropertyDeclaration, LeavePropertyDeclaration, propertyDeclaration); |
---|
298 | } |
---|
299 | |
---|
300 | public event Action<Accessor> EnterAccessor, LeaveAccessor; |
---|
301 | |
---|
302 | void IAstVisitor.VisitAccessor(Accessor accessor) |
---|
303 | { |
---|
304 | Visit(EnterAccessor, LeaveAccessor, accessor); |
---|
305 | } |
---|
306 | |
---|
307 | public event Action<VariableInitializer> EnterVariableInitializer, LeaveVariableInitializer; |
---|
308 | |
---|
309 | void IAstVisitor.VisitVariableInitializer(VariableInitializer variableInitializer) |
---|
310 | { |
---|
311 | Visit(EnterVariableInitializer, LeaveVariableInitializer, variableInitializer); |
---|
312 | } |
---|
313 | |
---|
314 | public event Action<ParameterDeclaration> EnterParameterDeclaration, LeaveParameterDeclaration; |
---|
315 | |
---|
316 | void IAstVisitor.VisitParameterDeclaration(ParameterDeclaration parameterDeclaration) |
---|
317 | { |
---|
318 | Visit(EnterParameterDeclaration, LeaveParameterDeclaration, parameterDeclaration); |
---|
319 | } |
---|
320 | |
---|
321 | public event Action<Constraint> EnterConstraint, LeaveConstraint; |
---|
322 | |
---|
323 | void IAstVisitor.VisitConstraint(Constraint constraint) |
---|
324 | { |
---|
325 | Visit(EnterConstraint, LeaveConstraint, constraint); |
---|
326 | } |
---|
327 | |
---|
328 | public event Action<BlockStatement> EnterBlockStatement, LeaveBlockStatement; |
---|
329 | |
---|
330 | void IAstVisitor.VisitBlockStatement(BlockStatement blockStatement) |
---|
331 | { |
---|
332 | Visit(EnterBlockStatement, LeaveBlockStatement, blockStatement); |
---|
333 | } |
---|
334 | |
---|
335 | public event Action<ExpressionStatement> EnterExpressionStatement, LeaveExpressionStatement; |
---|
336 | |
---|
337 | void IAstVisitor.VisitExpressionStatement(ExpressionStatement expressionStatement) |
---|
338 | { |
---|
339 | Visit(EnterExpressionStatement, LeaveExpressionStatement, expressionStatement); |
---|
340 | } |
---|
341 | |
---|
342 | public event Action<BreakStatement> EnterBreakStatement, LeaveBreakStatement; |
---|
343 | |
---|
344 | void IAstVisitor.VisitBreakStatement(BreakStatement breakStatement) |
---|
345 | { |
---|
346 | Visit(EnterBreakStatement, LeaveBreakStatement, breakStatement); |
---|
347 | } |
---|
348 | |
---|
349 | public event Action<CheckedStatement> EnterCheckedStatement, LeaveCheckedStatement; |
---|
350 | |
---|
351 | void IAstVisitor.VisitCheckedStatement(CheckedStatement checkedStatement) |
---|
352 | { |
---|
353 | Visit(EnterCheckedStatement, LeaveCheckedStatement, checkedStatement); |
---|
354 | } |
---|
355 | |
---|
356 | public event Action<ContinueStatement> EnterContinueStatement, LeaveContinueStatement; |
---|
357 | |
---|
358 | void IAstVisitor.VisitContinueStatement(ContinueStatement continueStatement) |
---|
359 | { |
---|
360 | Visit(EnterContinueStatement, LeaveContinueStatement, continueStatement); |
---|
361 | } |
---|
362 | |
---|
363 | public event Action<DoWhileStatement> EnterDoWhileStatement, LeaveDoWhileStatement; |
---|
364 | |
---|
365 | void IAstVisitor.VisitDoWhileStatement(DoWhileStatement doWhileStatement) |
---|
366 | { |
---|
367 | Visit(EnterDoWhileStatement, LeaveDoWhileStatement, doWhileStatement); |
---|
368 | } |
---|
369 | |
---|
370 | public event Action<EmptyStatement> EnterEmptyStatement, LeaveEmptyStatement; |
---|
371 | |
---|
372 | void IAstVisitor.VisitEmptyStatement(EmptyStatement emptyStatement) |
---|
373 | { |
---|
374 | Visit(EnterEmptyStatement, LeaveEmptyStatement, emptyStatement); |
---|
375 | } |
---|
376 | |
---|
377 | public event Action<FixedStatement> EnterFixedStatement, LeaveFixedStatement; |
---|
378 | |
---|
379 | void IAstVisitor.VisitFixedStatement(FixedStatement fixedStatement) |
---|
380 | { |
---|
381 | Visit(EnterFixedStatement, LeaveFixedStatement, fixedStatement); |
---|
382 | } |
---|
383 | |
---|
384 | public event Action<ForeachStatement> EnterForeachStatement, LeaveForeachStatement; |
---|
385 | |
---|
386 | void IAstVisitor.VisitForeachStatement(ForeachStatement foreachStatement) |
---|
387 | { |
---|
388 | Visit(EnterForeachStatement, LeaveForeachStatement, foreachStatement); |
---|
389 | } |
---|
390 | |
---|
391 | public event Action<ForStatement> EnterForStatement, LeaveForStatement; |
---|
392 | |
---|
393 | void IAstVisitor.VisitForStatement(ForStatement forStatement) |
---|
394 | { |
---|
395 | Visit(EnterForStatement, LeaveForStatement, forStatement); |
---|
396 | } |
---|
397 | |
---|
398 | public event Action<GotoCaseStatement> EnterGotoCaseStatement, LeaveGotoCaseStatement; |
---|
399 | |
---|
400 | void IAstVisitor.VisitGotoCaseStatement(GotoCaseStatement gotoCaseStatement) |
---|
401 | { |
---|
402 | Visit(EnterGotoCaseStatement, LeaveGotoCaseStatement, gotoCaseStatement); |
---|
403 | } |
---|
404 | |
---|
405 | public event Action<GotoDefaultStatement> EnterGotoDefaultStatement, LeaveGotoDefaultStatement; |
---|
406 | |
---|
407 | void IAstVisitor.VisitGotoDefaultStatement(GotoDefaultStatement gotoDefaultStatement) |
---|
408 | { |
---|
409 | Visit(EnterGotoDefaultStatement, LeaveGotoDefaultStatement, gotoDefaultStatement); |
---|
410 | } |
---|
411 | |
---|
412 | public event Action<GotoStatement> EnterGotoStatement, LeaveGotoStatement; |
---|
413 | |
---|
414 | void IAstVisitor.VisitGotoStatement(GotoStatement gotoStatement) |
---|
415 | { |
---|
416 | Visit(EnterGotoStatement, LeaveGotoStatement, gotoStatement); |
---|
417 | } |
---|
418 | |
---|
419 | public event Action<IfElseStatement> EnterIfElseStatement, LeaveIfElseStatement; |
---|
420 | |
---|
421 | void IAstVisitor.VisitIfElseStatement(IfElseStatement ifElseStatement) |
---|
422 | { |
---|
423 | Visit(EnterIfElseStatement, LeaveIfElseStatement, ifElseStatement); |
---|
424 | } |
---|
425 | |
---|
426 | public event Action<LabelStatement> EnterLabelStatement, LeaveLabelStatement; |
---|
427 | |
---|
428 | void IAstVisitor.VisitLabelStatement(LabelStatement labelStatement) |
---|
429 | { |
---|
430 | Visit(EnterLabelStatement, LeaveLabelStatement, labelStatement); |
---|
431 | } |
---|
432 | |
---|
433 | public event Action<LockStatement> EnterLockStatement, LeaveLockStatement; |
---|
434 | |
---|
435 | void IAstVisitor.VisitLockStatement(LockStatement lockStatement) |
---|
436 | { |
---|
437 | Visit(EnterLockStatement, LeaveLockStatement, lockStatement); |
---|
438 | } |
---|
439 | |
---|
440 | public event Action<ReturnStatement> EnterReturnStatement, LeaveReturnStatement; |
---|
441 | |
---|
442 | void IAstVisitor.VisitReturnStatement(ReturnStatement returnStatement) |
---|
443 | { |
---|
444 | Visit(EnterReturnStatement, LeaveReturnStatement, returnStatement); |
---|
445 | } |
---|
446 | |
---|
447 | public event Action<SwitchStatement> EnterSwitchStatement, LeaveSwitchStatement; |
---|
448 | |
---|
449 | void IAstVisitor.VisitSwitchStatement(SwitchStatement switchStatement) |
---|
450 | { |
---|
451 | Visit(EnterSwitchStatement, LeaveSwitchStatement, switchStatement); |
---|
452 | } |
---|
453 | |
---|
454 | public event Action<SwitchSection> EnterSwitchSection, LeaveSwitchSection; |
---|
455 | |
---|
456 | void IAstVisitor.VisitSwitchSection(SwitchSection switchSection) |
---|
457 | { |
---|
458 | Visit(EnterSwitchSection, LeaveSwitchSection, switchSection); |
---|
459 | } |
---|
460 | |
---|
461 | public event Action<CaseLabel> EnterCaseLabel, LeaveCaseLabel; |
---|
462 | |
---|
463 | void IAstVisitor.VisitCaseLabel(CaseLabel caseLabel) |
---|
464 | { |
---|
465 | Visit(EnterCaseLabel, LeaveCaseLabel, caseLabel); |
---|
466 | } |
---|
467 | |
---|
468 | public event Action<ThrowStatement> EnterThrowStatement, LeaveThrowStatement; |
---|
469 | |
---|
470 | void IAstVisitor.VisitThrowStatement(ThrowStatement throwStatement) |
---|
471 | { |
---|
472 | Visit(EnterThrowStatement, LeaveThrowStatement, throwStatement); |
---|
473 | } |
---|
474 | |
---|
475 | public event Action<TryCatchStatement> EnterTryCatchStatement, LeaveTryCatchStatement; |
---|
476 | |
---|
477 | void IAstVisitor.VisitTryCatchStatement(TryCatchStatement tryCatchStatement) |
---|
478 | { |
---|
479 | Visit(EnterTryCatchStatement, LeaveTryCatchStatement, tryCatchStatement); |
---|
480 | } |
---|
481 | |
---|
482 | public event Action<CatchClause> EnterCatchClause, LeaveCatchClause; |
---|
483 | |
---|
484 | void IAstVisitor.VisitCatchClause(CatchClause catchClause) |
---|
485 | { |
---|
486 | Visit(EnterCatchClause, LeaveCatchClause, catchClause); |
---|
487 | } |
---|
488 | |
---|
489 | public event Action<UncheckedStatement> EnterUncheckedStatement, LeaveUncheckedStatement; |
---|
490 | |
---|
491 | void IAstVisitor.VisitUncheckedStatement(UncheckedStatement uncheckedStatement) |
---|
492 | { |
---|
493 | Visit(EnterUncheckedStatement, LeaveUncheckedStatement, uncheckedStatement); |
---|
494 | } |
---|
495 | |
---|
496 | public event Action<UnsafeStatement> EnterUnsafeStatement, LeaveUnsafeStatement; |
---|
497 | |
---|
498 | void IAstVisitor.VisitUnsafeStatement(UnsafeStatement unsafeStatement) |
---|
499 | { |
---|
500 | Visit(EnterUnsafeStatement, LeaveUnsafeStatement, unsafeStatement); |
---|
501 | } |
---|
502 | |
---|
503 | public event Action<UsingStatement> EnterUsingStatement, LeaveUsingStatement; |
---|
504 | |
---|
505 | void IAstVisitor.VisitUsingStatement(UsingStatement usingStatement) |
---|
506 | { |
---|
507 | Visit(EnterUsingStatement, LeaveUsingStatement, usingStatement); |
---|
508 | } |
---|
509 | |
---|
510 | public event Action<VariableDeclarationStatement> EnterVariableDeclarationStatement, LeaveVariableDeclarationStatement; |
---|
511 | |
---|
512 | void IAstVisitor.VisitVariableDeclarationStatement(VariableDeclarationStatement variableDeclarationStatement) |
---|
513 | { |
---|
514 | Visit(EnterVariableDeclarationStatement, LeaveVariableDeclarationStatement, variableDeclarationStatement); |
---|
515 | } |
---|
516 | |
---|
517 | public event Action<WhileStatement> EnterWhileStatement, LeaveWhileStatement; |
---|
518 | |
---|
519 | void IAstVisitor.VisitWhileStatement(WhileStatement whileStatement) |
---|
520 | { |
---|
521 | Visit(EnterWhileStatement, LeaveWhileStatement, whileStatement); |
---|
522 | } |
---|
523 | |
---|
524 | public event Action<YieldBreakStatement> EnterYieldBreakStatement, LeaveYieldBreakStatement; |
---|
525 | |
---|
526 | void IAstVisitor.VisitYieldBreakStatement(YieldBreakStatement yieldBreakStatement) |
---|
527 | { |
---|
528 | Visit(EnterYieldBreakStatement, LeaveYieldBreakStatement, yieldBreakStatement); |
---|
529 | } |
---|
530 | |
---|
531 | public event Action<YieldReturnStatement> EnterYieldReturnStatement, LeaveYieldReturnStatement; |
---|
532 | |
---|
533 | void IAstVisitor.VisitYieldReturnStatement(YieldReturnStatement yieldStatement) |
---|
534 | { |
---|
535 | Visit(EnterYieldReturnStatement, LeaveYieldReturnStatement, yieldStatement); |
---|
536 | } |
---|
537 | |
---|
538 | public event Action<AnonymousMethodExpression> EnterAnonymousMethodExpression, LeaveAnonymousMethodExpression; |
---|
539 | |
---|
540 | void IAstVisitor.VisitAnonymousMethodExpression(AnonymousMethodExpression anonymousMethodExpression) |
---|
541 | { |
---|
542 | Visit(EnterAnonymousMethodExpression, LeaveAnonymousMethodExpression, anonymousMethodExpression); |
---|
543 | } |
---|
544 | |
---|
545 | public event Action<LambdaExpression> EnterLambdaExpression, LeaveLambdaExpression; |
---|
546 | |
---|
547 | void IAstVisitor.VisitLambdaExpression(LambdaExpression lambdaExpression) |
---|
548 | { |
---|
549 | Visit(EnterLambdaExpression, LeaveLambdaExpression, lambdaExpression); |
---|
550 | } |
---|
551 | |
---|
552 | public event Action<AssignmentExpression> EnterAssignmentExpression, LeaveAssignmentExpression; |
---|
553 | |
---|
554 | void IAstVisitor.VisitAssignmentExpression(AssignmentExpression assignmentExpression) |
---|
555 | { |
---|
556 | Visit(EnterAssignmentExpression, LeaveAssignmentExpression, assignmentExpression); |
---|
557 | } |
---|
558 | |
---|
559 | public event Action<BaseReferenceExpression> EnterBaseReferenceExpression, LeaveBaseReferenceExpression; |
---|
560 | |
---|
561 | void IAstVisitor.VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression) |
---|
562 | { |
---|
563 | Visit(EnterBaseReferenceExpression, LeaveBaseReferenceExpression, baseReferenceExpression); |
---|
564 | } |
---|
565 | |
---|
566 | public event Action<BinaryOperatorExpression> EnterBinaryOperatorExpression, LeaveBinaryOperatorExpression; |
---|
567 | |
---|
568 | void IAstVisitor.VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression) |
---|
569 | { |
---|
570 | Visit(EnterBinaryOperatorExpression, LeaveBinaryOperatorExpression, binaryOperatorExpression); |
---|
571 | } |
---|
572 | |
---|
573 | public event Action<CastExpression> EnterCastExpression, LeaveCastExpression; |
---|
574 | |
---|
575 | void IAstVisitor.VisitCastExpression(CastExpression castExpression) |
---|
576 | { |
---|
577 | Visit(EnterCastExpression, LeaveCastExpression, castExpression); |
---|
578 | } |
---|
579 | |
---|
580 | public event Action<CheckedExpression> EnterCheckedExpression, LeaveCheckedExpression; |
---|
581 | |
---|
582 | void IAstVisitor.VisitCheckedExpression(CheckedExpression checkedExpression) |
---|
583 | { |
---|
584 | Visit(EnterCheckedExpression, LeaveCheckedExpression, checkedExpression); |
---|
585 | } |
---|
586 | |
---|
587 | public event Action<ConditionalExpression> EnterConditionalExpression, LeaveConditionalExpression; |
---|
588 | |
---|
589 | void IAstVisitor.VisitConditionalExpression(ConditionalExpression conditionalExpression) |
---|
590 | { |
---|
591 | Visit(EnterConditionalExpression, LeaveConditionalExpression, conditionalExpression); |
---|
592 | } |
---|
593 | |
---|
594 | public event Action<IdentifierExpression> EnterIdentifierExpression, LeaveIdentifierExpression; |
---|
595 | |
---|
596 | void IAstVisitor.VisitIdentifierExpression(IdentifierExpression identifierExpression) |
---|
597 | { |
---|
598 | Visit(EnterIdentifierExpression, LeaveIdentifierExpression, identifierExpression); |
---|
599 | } |
---|
600 | |
---|
601 | public event Action<IndexerExpression> EnterIndexerExpression, LeaveIndexerExpression; |
---|
602 | |
---|
603 | void IAstVisitor.VisitIndexerExpression(IndexerExpression indexerExpression) |
---|
604 | { |
---|
605 | Visit(EnterIndexerExpression, LeaveIndexerExpression, indexerExpression); |
---|
606 | } |
---|
607 | |
---|
608 | public event Action<InvocationExpression> EnterInvocationExpression, LeaveInvocationExpression; |
---|
609 | |
---|
610 | void IAstVisitor.VisitInvocationExpression(InvocationExpression invocationExpression) |
---|
611 | { |
---|
612 | Visit(EnterInvocationExpression, LeaveInvocationExpression, invocationExpression); |
---|
613 | } |
---|
614 | |
---|
615 | public event Action<DirectionExpression> EnterDirectionExpression, LeaveDirectionExpression; |
---|
616 | |
---|
617 | void IAstVisitor.VisitDirectionExpression(DirectionExpression directionExpression) |
---|
618 | { |
---|
619 | Visit(EnterDirectionExpression, LeaveDirectionExpression, directionExpression); |
---|
620 | } |
---|
621 | |
---|
622 | public event Action<MemberReferenceExpression> EnterMemberReferenceExpression, LeaveMemberReferenceExpression; |
---|
623 | |
---|
624 | void IAstVisitor.VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression) |
---|
625 | { |
---|
626 | Visit(EnterMemberReferenceExpression, LeaveMemberReferenceExpression, memberReferenceExpression); |
---|
627 | } |
---|
628 | |
---|
629 | public event Action<NullReferenceExpression> EnterNullReferenceExpression, LeaveNullReferenceExpression; |
---|
630 | |
---|
631 | void IAstVisitor.VisitNullReferenceExpression(NullReferenceExpression nullReferenceExpression) |
---|
632 | { |
---|
633 | Visit(EnterNullReferenceExpression, LeaveNullReferenceExpression, nullReferenceExpression); |
---|
634 | } |
---|
635 | |
---|
636 | public event Action<ObjectCreateExpression> EnterObjectCreateExpression, LeaveObjectCreateExpression; |
---|
637 | |
---|
638 | void IAstVisitor.VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression) |
---|
639 | { |
---|
640 | Visit(EnterObjectCreateExpression, LeaveObjectCreateExpression, objectCreateExpression); |
---|
641 | } |
---|
642 | |
---|
643 | public event Action<AnonymousTypeCreateExpression> EnterAnonymousTypeCreateExpression, LeaveAnonymousTypeCreateExpression; |
---|
644 | |
---|
645 | void IAstVisitor.VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression) |
---|
646 | { |
---|
647 | Visit(EnterAnonymousTypeCreateExpression, LeaveAnonymousTypeCreateExpression, anonymousTypeCreateExpression); |
---|
648 | } |
---|
649 | |
---|
650 | public event Action<ArrayCreateExpression> EnterArrayCreateExpression, LeaveArrayCreateExpression; |
---|
651 | |
---|
652 | void IAstVisitor.VisitArrayCreateExpression(ArrayCreateExpression arraySCreateExpression) |
---|
653 | { |
---|
654 | Visit(EnterArrayCreateExpression, LeaveArrayCreateExpression, arraySCreateExpression); |
---|
655 | } |
---|
656 | |
---|
657 | public event Action<ParenthesizedExpression> EnterParenthesizedExpression, LeaveParenthesizedExpression; |
---|
658 | |
---|
659 | void IAstVisitor.VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression) |
---|
660 | { |
---|
661 | Visit(EnterParenthesizedExpression, LeaveParenthesizedExpression, parenthesizedExpression); |
---|
662 | } |
---|
663 | |
---|
664 | public event Action<PointerReferenceExpression> EnterPointerReferenceExpression, LeavePointerReferenceExpression; |
---|
665 | |
---|
666 | void IAstVisitor.VisitPointerReferenceExpression(PointerReferenceExpression pointerReferenceExpression) |
---|
667 | { |
---|
668 | Visit(EnterPointerReferenceExpression, LeavePointerReferenceExpression, pointerReferenceExpression); |
---|
669 | } |
---|
670 | |
---|
671 | public event Action<PrimitiveExpression> EnterPrimitiveExpression, LeavePrimitiveExpression; |
---|
672 | |
---|
673 | void IAstVisitor.VisitPrimitiveExpression(PrimitiveExpression primitiveExpression) |
---|
674 | { |
---|
675 | Visit(EnterPrimitiveExpression, LeavePrimitiveExpression, primitiveExpression); |
---|
676 | } |
---|
677 | |
---|
678 | public event Action<SizeOfExpression> EnterSizeOfExpression, LeaveSizeOfExpression; |
---|
679 | |
---|
680 | void IAstVisitor.VisitSizeOfExpression(SizeOfExpression sizeOfExpression) |
---|
681 | { |
---|
682 | Visit(EnterSizeOfExpression, LeaveSizeOfExpression, sizeOfExpression); |
---|
683 | } |
---|
684 | |
---|
685 | public event Action<StackAllocExpression> EnterStackAllocExpression, LeaveStackAllocExpression; |
---|
686 | |
---|
687 | void IAstVisitor.VisitStackAllocExpression(StackAllocExpression stackAllocExpression) |
---|
688 | { |
---|
689 | Visit(EnterStackAllocExpression, LeaveStackAllocExpression, stackAllocExpression); |
---|
690 | } |
---|
691 | |
---|
692 | public event Action<ThisReferenceExpression> EnterThisReferenceExpression, LeaveThisReferenceExpression; |
---|
693 | |
---|
694 | void IAstVisitor.VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression) |
---|
695 | { |
---|
696 | Visit(EnterThisReferenceExpression, LeaveThisReferenceExpression, thisReferenceExpression); |
---|
697 | } |
---|
698 | |
---|
699 | public event Action<TypeOfExpression> EnterTypeOfExpression, LeaveTypeOfExpression; |
---|
700 | |
---|
701 | void IAstVisitor.VisitTypeOfExpression(TypeOfExpression typeOfExpression) |
---|
702 | { |
---|
703 | Visit(EnterTypeOfExpression, LeaveTypeOfExpression, typeOfExpression); |
---|
704 | } |
---|
705 | |
---|
706 | public event Action<TypeReferenceExpression> EnterTypeReferenceExpression, LeaveTypeReferenceExpression; |
---|
707 | |
---|
708 | void IAstVisitor.VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression) |
---|
709 | { |
---|
710 | Visit(EnterTypeReferenceExpression, LeaveTypeReferenceExpression, typeReferenceExpression); |
---|
711 | } |
---|
712 | |
---|
713 | public event Action<UnaryOperatorExpression> EnterUnaryOperatorExpression, LeaveUnaryOperatorExpression; |
---|
714 | |
---|
715 | void IAstVisitor.VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression) |
---|
716 | { |
---|
717 | Visit(EnterUnaryOperatorExpression, LeaveUnaryOperatorExpression, unaryOperatorExpression); |
---|
718 | } |
---|
719 | |
---|
720 | public event Action<UncheckedExpression> EnterUncheckedExpression, LeaveUncheckedExpression; |
---|
721 | |
---|
722 | void IAstVisitor.VisitUncheckedExpression(UncheckedExpression uncheckedExpression) |
---|
723 | { |
---|
724 | Visit(EnterUncheckedExpression, LeaveUncheckedExpression, uncheckedExpression); |
---|
725 | } |
---|
726 | |
---|
727 | public event Action<QueryExpression> EnterQueryExpression, LeaveQueryExpression; |
---|
728 | |
---|
729 | void IAstVisitor.VisitQueryExpression(QueryExpression queryExpression) |
---|
730 | { |
---|
731 | Visit(EnterQueryExpression, LeaveQueryExpression, queryExpression); |
---|
732 | } |
---|
733 | |
---|
734 | public event Action<QueryContinuationClause> EnterQueryContinuationClause, LeaveQueryContinuationClause; |
---|
735 | |
---|
736 | void IAstVisitor.VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause) |
---|
737 | { |
---|
738 | Visit(EnterQueryContinuationClause, LeaveQueryContinuationClause, queryContinuationClause); |
---|
739 | } |
---|
740 | |
---|
741 | public event Action<QueryFromClause> EnterQueryFromClause, LeaveQueryFromClause; |
---|
742 | |
---|
743 | void IAstVisitor.VisitQueryFromClause(QueryFromClause queryFromClause) |
---|
744 | { |
---|
745 | Visit(EnterQueryFromClause, LeaveQueryFromClause, queryFromClause); |
---|
746 | } |
---|
747 | |
---|
748 | public event Action<QueryLetClause> EnterQueryLetClause, LeaveQueryLetClause; |
---|
749 | |
---|
750 | void IAstVisitor.VisitQueryLetClause(QueryLetClause queryLetClause) |
---|
751 | { |
---|
752 | Visit(EnterQueryLetClause, LeaveQueryLetClause, queryLetClause); |
---|
753 | } |
---|
754 | |
---|
755 | public event Action<QueryWhereClause> EnterQueryWhereClause, LeaveQueryWhereClause; |
---|
756 | |
---|
757 | void IAstVisitor.VisitQueryWhereClause(QueryWhereClause queryWhereClause) |
---|
758 | { |
---|
759 | Visit(EnterQueryWhereClause, LeaveQueryWhereClause, queryWhereClause); |
---|
760 | } |
---|
761 | |
---|
762 | public event Action<QueryJoinClause> EnterQueryJoinClause, LeaveQueryJoinClause; |
---|
763 | |
---|
764 | void IAstVisitor.VisitQueryJoinClause(QueryJoinClause queryJoinClause) |
---|
765 | { |
---|
766 | Visit(EnterQueryJoinClause, LeaveQueryJoinClause, queryJoinClause); |
---|
767 | } |
---|
768 | |
---|
769 | public event Action<QueryOrderClause> EnterQueryOrderClause, LeaveQueryOrderClause; |
---|
770 | |
---|
771 | void IAstVisitor.VisitQueryOrderClause(QueryOrderClause queryOrderClause) |
---|
772 | { |
---|
773 | Visit(EnterQueryOrderClause, LeaveQueryOrderClause, queryOrderClause); |
---|
774 | } |
---|
775 | |
---|
776 | public event Action<QueryOrdering> EnterQueryOrdering, LeaveQueryOrdering; |
---|
777 | |
---|
778 | void IAstVisitor.VisitQueryOrdering(QueryOrdering queryOrdering) |
---|
779 | { |
---|
780 | Visit(EnterQueryOrdering, LeaveQueryOrdering, queryOrdering); |
---|
781 | } |
---|
782 | |
---|
783 | public event Action<QuerySelectClause> EnterQuerySelectClause, LeaveQuerySelectClause; |
---|
784 | |
---|
785 | void IAstVisitor.VisitQuerySelectClause(QuerySelectClause querySelectClause) |
---|
786 | { |
---|
787 | Visit(EnterQuerySelectClause, LeaveQuerySelectClause, querySelectClause); |
---|
788 | } |
---|
789 | |
---|
790 | public event Action<QueryGroupClause> EnterQueryGroupClause, LeaveQueryGroupClause; |
---|
791 | |
---|
792 | void IAstVisitor.VisitQueryGroupClause(QueryGroupClause queryGroupClause) |
---|
793 | { |
---|
794 | Visit(EnterQueryGroupClause, LeaveQueryGroupClause, queryGroupClause); |
---|
795 | } |
---|
796 | |
---|
797 | public event Action<AsExpression> EnterAsExpression, LeaveAsExpression; |
---|
798 | |
---|
799 | void IAstVisitor.VisitAsExpression(AsExpression asExpression) |
---|
800 | { |
---|
801 | Visit(EnterAsExpression, LeaveAsExpression, asExpression); |
---|
802 | } |
---|
803 | |
---|
804 | public event Action<IsExpression> EnterIsExpression, LeaveIsExpression; |
---|
805 | |
---|
806 | void IAstVisitor.VisitIsExpression(IsExpression isExpression) |
---|
807 | { |
---|
808 | Visit(EnterIsExpression, LeaveIsExpression, isExpression); |
---|
809 | } |
---|
810 | |
---|
811 | public event Action<DefaultValueExpression> EnterDefaultValueExpression, LeaveDefaultValueExpression; |
---|
812 | |
---|
813 | void IAstVisitor.VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression) |
---|
814 | { |
---|
815 | Visit(EnterDefaultValueExpression, LeaveDefaultValueExpression, defaultValueExpression); |
---|
816 | } |
---|
817 | |
---|
818 | public event Action<UndocumentedExpression> EnterUndocumentedExpression, LeaveUndocumentedExpression; |
---|
819 | |
---|
820 | void IAstVisitor.VisitUndocumentedExpression(UndocumentedExpression undocumentedExpression) |
---|
821 | { |
---|
822 | Visit(EnterUndocumentedExpression, LeaveUndocumentedExpression, undocumentedExpression); |
---|
823 | } |
---|
824 | |
---|
825 | public event Action<ArrayInitializerExpression> EnterArrayInitializerExpression, LeaveArrayInitializerExpression; |
---|
826 | |
---|
827 | void IAstVisitor.VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression) |
---|
828 | { |
---|
829 | Visit(EnterArrayInitializerExpression, LeaveArrayInitializerExpression, arrayInitializerExpression); |
---|
830 | } |
---|
831 | |
---|
832 | public event Action<ArraySpecifier> EnterArraySpecifier, LeaveArraySpecifier; |
---|
833 | |
---|
834 | void IAstVisitor.VisitArraySpecifier(ArraySpecifier arraySpecifier) |
---|
835 | { |
---|
836 | Visit(EnterArraySpecifier, LeaveArraySpecifier, arraySpecifier); |
---|
837 | } |
---|
838 | |
---|
839 | public event Action<NamedArgumentExpression> EnterNamedArgumentExpression, LeaveNamedArgumentExpression; |
---|
840 | |
---|
841 | void IAstVisitor.VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression) |
---|
842 | { |
---|
843 | Visit(EnterNamedArgumentExpression, LeaveNamedArgumentExpression, namedArgumentExpression); |
---|
844 | } |
---|
845 | |
---|
846 | public event Action<NamedExpression> EnterNamedExpression, LeaveNamedExpression; |
---|
847 | |
---|
848 | void IAstVisitor.VisitNamedExpression(NamedExpression namedExpression) |
---|
849 | { |
---|
850 | Visit(EnterNamedExpression, LeaveNamedExpression, namedExpression); |
---|
851 | } |
---|
852 | |
---|
853 | void IAstVisitor.VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern) |
---|
854 | { |
---|
855 | } |
---|
856 | } |
---|
857 | } |
---|