5
// Mike KrĆ¼ger <mkrueger@novell.com>
7
// Copyright (c) 2010 Novell, Inc (http://www.novell.com)
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:
16
// The above copyright notice and this permission notice shall be included in
17
// all copies or substantial portions of the Software.
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
29
namespace ICSharpCode.NRefactory.CSharp
32
/// AST visitor with a default implementation that visits all node depth-first.
34
public abstract class DepthFirstAstVisitor : IAstVisitor
36
protected virtual void VisitChildren (AstNode node)
39
for (var child = node.FirstChild; child != null; child = next) {
40
// Store next to allow the loop to continue
41
// if the visitor removes/replaces child.
42
next = child.NextSibling;
43
child.AcceptVisitor (this);
47
public virtual void VisitSyntaxTree (SyntaxTree syntaxTree)
49
VisitChildren (syntaxTree);
52
public virtual void VisitComment(Comment comment)
54
VisitChildren(comment);
57
public virtual void VisitNewLine(NewLineNode newLineNode)
59
VisitChildren(newLineNode);
62
public virtual void VisitWhitespace(WhitespaceNode whitespaceNode)
64
VisitChildren(whitespaceNode);
67
public virtual void VisitText(TextNode textNode)
69
VisitChildren(textNode);
72
public virtual void VisitDocumentationReference (DocumentationReference documentationReference)
74
VisitChildren (documentationReference);
77
public virtual void VisitPreProcessorDirective (PreProcessorDirective preProcessorDirective)
79
VisitChildren (preProcessorDirective);
82
public virtual void VisitIdentifier (Identifier identifier)
84
VisitChildren (identifier);
87
public virtual void VisitCSharpTokenNode (CSharpTokenNode token)
89
VisitChildren (token);
92
public virtual void VisitPrimitiveType (PrimitiveType primitiveType)
94
VisitChildren (primitiveType);
97
public virtual void VisitComposedType (ComposedType composedType)
99
VisitChildren (composedType);
102
public virtual void VisitSimpleType(SimpleType simpleType)
104
VisitChildren (simpleType);
107
public virtual void VisitMemberType(MemberType memberType)
109
VisitChildren (memberType);
112
public virtual void VisitAttribute (Attribute attribute)
114
VisitChildren (attribute);
117
public virtual void VisitAttributeSection (AttributeSection attributeSection)
119
VisitChildren (attributeSection);
122
public virtual void VisitDelegateDeclaration (DelegateDeclaration delegateDeclaration)
124
VisitChildren (delegateDeclaration);
127
public virtual void VisitNamespaceDeclaration (NamespaceDeclaration namespaceDeclaration)
129
VisitChildren (namespaceDeclaration);
132
public virtual void VisitTypeDeclaration (TypeDeclaration typeDeclaration)
134
VisitChildren (typeDeclaration);
137
public virtual void VisitTypeParameterDeclaration (TypeParameterDeclaration typeParameterDeclaration)
139
VisitChildren (typeParameterDeclaration);
142
public virtual void VisitEnumMemberDeclaration (EnumMemberDeclaration enumMemberDeclaration)
144
VisitChildren (enumMemberDeclaration);
147
public virtual void VisitUsingDeclaration (UsingDeclaration usingDeclaration)
149
VisitChildren (usingDeclaration);
152
public virtual void VisitUsingAliasDeclaration (UsingAliasDeclaration usingDeclaration)
154
VisitChildren (usingDeclaration);
157
public virtual void VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration)
159
VisitChildren (externAliasDeclaration);
162
public virtual void VisitConstructorDeclaration (ConstructorDeclaration constructorDeclaration)
164
VisitChildren (constructorDeclaration);
167
public virtual void VisitConstructorInitializer (ConstructorInitializer constructorInitializer)
169
VisitChildren (constructorInitializer);
172
public virtual void VisitDestructorDeclaration (DestructorDeclaration destructorDeclaration)
174
VisitChildren (destructorDeclaration);
177
public virtual void VisitEventDeclaration (EventDeclaration eventDeclaration)
179
VisitChildren (eventDeclaration);
182
public virtual void VisitCustomEventDeclaration (CustomEventDeclaration eventDeclaration)
184
VisitChildren (eventDeclaration);
187
public virtual void VisitFieldDeclaration (FieldDeclaration fieldDeclaration)
189
VisitChildren (fieldDeclaration);
192
public virtual void VisitFixedFieldDeclaration (FixedFieldDeclaration fixedFieldDeclaration)
194
VisitChildren (fixedFieldDeclaration);
197
public virtual void VisitFixedVariableInitializer (FixedVariableInitializer fixedVariableInitializer)
199
VisitChildren (fixedVariableInitializer);
202
public virtual void VisitIndexerDeclaration (IndexerDeclaration indexerDeclaration)
204
VisitChildren (indexerDeclaration);
207
public virtual void VisitMethodDeclaration (MethodDeclaration methodDeclaration)
209
VisitChildren (methodDeclaration);
212
public virtual void VisitOperatorDeclaration (OperatorDeclaration operatorDeclaration)
214
VisitChildren (operatorDeclaration);
217
public virtual void VisitPropertyDeclaration (PropertyDeclaration propertyDeclaration)
219
VisitChildren (propertyDeclaration);
222
public virtual void VisitAccessor (Accessor accessor)
224
VisitChildren (accessor);
227
public virtual void VisitVariableInitializer (VariableInitializer variableInitializer)
229
VisitChildren (variableInitializer);
232
public virtual void VisitParameterDeclaration (ParameterDeclaration parameterDeclaration)
234
VisitChildren (parameterDeclaration);
237
public virtual void VisitConstraint (Constraint constraint)
239
VisitChildren (constraint);
242
public virtual void VisitBlockStatement (BlockStatement blockStatement)
244
VisitChildren (blockStatement);
247
public virtual void VisitExpressionStatement (ExpressionStatement expressionStatement)
249
VisitChildren (expressionStatement);
252
public virtual void VisitBreakStatement (BreakStatement breakStatement)
254
VisitChildren (breakStatement);
257
public virtual void VisitCheckedStatement (CheckedStatement checkedStatement)
259
VisitChildren (checkedStatement);
262
public virtual void VisitContinueStatement (ContinueStatement continueStatement)
264
VisitChildren (continueStatement);
267
public virtual void VisitDoWhileStatement (DoWhileStatement doWhileStatement)
269
VisitChildren (doWhileStatement);
272
public virtual void VisitEmptyStatement (EmptyStatement emptyStatement)
274
VisitChildren (emptyStatement);
277
public virtual void VisitFixedStatement (FixedStatement fixedStatement)
279
VisitChildren (fixedStatement);
282
public virtual void VisitForeachStatement (ForeachStatement foreachStatement)
284
VisitChildren (foreachStatement);
287
public virtual void VisitForStatement (ForStatement forStatement)
289
VisitChildren (forStatement);
292
public virtual void VisitGotoCaseStatement (GotoCaseStatement gotoCaseStatement)
294
VisitChildren (gotoCaseStatement);
297
public virtual void VisitGotoDefaultStatement (GotoDefaultStatement gotoDefaultStatement)
299
VisitChildren (gotoDefaultStatement);
302
public virtual void VisitGotoStatement (GotoStatement gotoStatement)
304
VisitChildren (gotoStatement);
307
public virtual void VisitIfElseStatement (IfElseStatement ifElseStatement)
309
VisitChildren (ifElseStatement);
312
public virtual void VisitLabelStatement (LabelStatement labelStatement)
314
VisitChildren (labelStatement);
317
public virtual void VisitLockStatement (LockStatement lockStatement)
319
VisitChildren (lockStatement);
322
public virtual void VisitReturnStatement (ReturnStatement returnStatement)
324
VisitChildren (returnStatement);
327
public virtual void VisitSwitchStatement (SwitchStatement switchStatement)
329
VisitChildren (switchStatement);
332
public virtual void VisitSwitchSection (SwitchSection switchSection)
334
VisitChildren (switchSection);
337
public virtual void VisitCaseLabel (CaseLabel caseLabel)
339
VisitChildren (caseLabel);
342
public virtual void VisitThrowStatement (ThrowStatement throwStatement)
344
VisitChildren (throwStatement);
347
public virtual void VisitTryCatchStatement (TryCatchStatement tryCatchStatement)
349
VisitChildren (tryCatchStatement);
352
public virtual void VisitCatchClause (CatchClause catchClause)
354
VisitChildren (catchClause);
357
public virtual void VisitUncheckedStatement (UncheckedStatement uncheckedStatement)
359
VisitChildren (uncheckedStatement);
362
public virtual void VisitUnsafeStatement (UnsafeStatement unsafeStatement)
364
VisitChildren (unsafeStatement);
367
public virtual void VisitUsingStatement (UsingStatement usingStatement)
369
VisitChildren (usingStatement);
372
public virtual void VisitVariableDeclarationStatement (VariableDeclarationStatement variableDeclarationStatement)
374
VisitChildren (variableDeclarationStatement);
377
public virtual void VisitWhileStatement (WhileStatement whileStatement)
379
VisitChildren (whileStatement);
382
public virtual void VisitYieldBreakStatement (YieldBreakStatement yieldBreakStatement)
384
VisitChildren (yieldBreakStatement);
387
public virtual void VisitYieldReturnStatement (YieldReturnStatement yieldReturnStatement)
389
VisitChildren (yieldReturnStatement);
392
public virtual void VisitAnonymousMethodExpression (AnonymousMethodExpression anonymousMethodExpression)
394
VisitChildren (anonymousMethodExpression);
397
public virtual void VisitLambdaExpression (LambdaExpression lambdaExpression)
399
VisitChildren (lambdaExpression);
402
public virtual void VisitAssignmentExpression (AssignmentExpression assignmentExpression)
404
VisitChildren (assignmentExpression);
407
public virtual void VisitBaseReferenceExpression (BaseReferenceExpression baseReferenceExpression)
409
VisitChildren (baseReferenceExpression);
412
public virtual void VisitBinaryOperatorExpression (BinaryOperatorExpression binaryOperatorExpression)
414
VisitChildren (binaryOperatorExpression);
417
public virtual void VisitCastExpression (CastExpression castExpression)
419
VisitChildren (castExpression);
422
public virtual void VisitCheckedExpression (CheckedExpression checkedExpression)
424
VisitChildren (checkedExpression);
427
public virtual void VisitConditionalExpression (ConditionalExpression conditionalExpression)
429
VisitChildren (conditionalExpression);
432
public virtual void VisitIdentifierExpression (IdentifierExpression identifierExpression)
434
VisitChildren (identifierExpression);
437
public virtual void VisitIndexerExpression (IndexerExpression indexerExpression)
439
VisitChildren (indexerExpression);
442
public virtual void VisitInvocationExpression (InvocationExpression invocationExpression)
444
VisitChildren (invocationExpression);
447
public virtual void VisitDirectionExpression (DirectionExpression directionExpression)
449
VisitChildren (directionExpression);
452
public virtual void VisitMemberReferenceExpression (MemberReferenceExpression memberReferenceExpression)
454
VisitChildren (memberReferenceExpression);
457
public virtual void VisitNullReferenceExpression (NullReferenceExpression nullReferenceExpression)
459
VisitChildren (nullReferenceExpression);
462
public virtual void VisitObjectCreateExpression (ObjectCreateExpression objectCreateExpression)
464
VisitChildren (objectCreateExpression);
467
public virtual void VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression)
469
VisitChildren (anonymousTypeCreateExpression);
472
public virtual void VisitArrayCreateExpression (ArrayCreateExpression arrayCreateExpression)
474
VisitChildren (arrayCreateExpression);
477
public virtual void VisitParenthesizedExpression (ParenthesizedExpression parenthesizedExpression)
479
VisitChildren (parenthesizedExpression);
482
public virtual void VisitPointerReferenceExpression (PointerReferenceExpression pointerReferenceExpression)
484
VisitChildren (pointerReferenceExpression);
487
public virtual void VisitPrimitiveExpression(PrimitiveExpression primitiveExpression)
489
VisitChildren (primitiveExpression);
492
public virtual void VisitSizeOfExpression (SizeOfExpression sizeOfExpression)
494
VisitChildren (sizeOfExpression);
497
public virtual void VisitStackAllocExpression (StackAllocExpression stackAllocExpression)
499
VisitChildren (stackAllocExpression);
502
public virtual void VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression)
504
VisitChildren (thisReferenceExpression);
507
public virtual void VisitTypeOfExpression (TypeOfExpression typeOfExpression)
509
VisitChildren (typeOfExpression);
512
public virtual void VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression)
514
VisitChildren (typeReferenceExpression);
517
public virtual void VisitUnaryOperatorExpression (UnaryOperatorExpression unaryOperatorExpression)
519
VisitChildren (unaryOperatorExpression);
522
public virtual void VisitUncheckedExpression (UncheckedExpression uncheckedExpression)
524
VisitChildren (uncheckedExpression);
527
public virtual void VisitQueryExpression(QueryExpression queryExpression)
529
VisitChildren (queryExpression);
532
public virtual void VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause)
534
VisitChildren (queryContinuationClause);
537
public virtual void VisitQueryFromClause(QueryFromClause queryFromClause)
539
VisitChildren (queryFromClause);
542
public virtual void VisitQueryLetClause(QueryLetClause queryLetClause)
544
VisitChildren (queryLetClause);
547
public virtual void VisitQueryWhereClause(QueryWhereClause queryWhereClause)
549
VisitChildren (queryWhereClause);
552
public virtual void VisitQueryJoinClause(QueryJoinClause queryJoinClause)
554
VisitChildren (queryJoinClause);
557
public virtual void VisitQueryOrderClause(QueryOrderClause queryOrderClause)
559
VisitChildren (queryOrderClause);
562
public virtual void VisitQueryOrdering(QueryOrdering queryOrdering)
564
VisitChildren (queryOrdering);
567
public virtual void VisitQuerySelectClause(QuerySelectClause querySelectClause)
569
VisitChildren (querySelectClause);
572
public virtual void VisitQueryGroupClause(QueryGroupClause queryGroupClause)
574
VisitChildren (queryGroupClause);
577
public virtual void VisitAsExpression (AsExpression asExpression)
579
VisitChildren (asExpression);
582
public virtual void VisitIsExpression (IsExpression isExpression)
584
VisitChildren (isExpression);
587
public virtual void VisitDefaultValueExpression (DefaultValueExpression defaultValueExpression)
589
VisitChildren (defaultValueExpression);
592
public virtual void VisitUndocumentedExpression (UndocumentedExpression undocumentedExpression)
594
VisitChildren (undocumentedExpression);
597
public virtual void VisitArrayInitializerExpression (ArrayInitializerExpression arrayInitializerExpression)
599
VisitChildren (arrayInitializerExpression);
602
public virtual void VisitArraySpecifier (ArraySpecifier arraySpecifier)
604
VisitChildren (arraySpecifier);
607
public virtual void VisitNamedArgumentExpression (NamedArgumentExpression namedArgumentExpression)
609
VisitChildren (namedArgumentExpression);
612
public virtual void VisitNamedExpression (NamedExpression namedExpression)
614
VisitChildren (namedExpression);
617
public virtual void VisitEmptyExpression (EmptyExpression emptyExpression)
619
VisitChildren (emptyExpression);
622
public virtual void VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern)
624
VisitChildren (placeholder);
629
/// AST visitor with a default implementation that visits all node depth-first.
631
public abstract class DepthFirstAstVisitor<T> : IAstVisitor<T>
633
protected virtual T VisitChildren (AstNode node)
636
for (var child = node.FirstChild; child != null; child = next) {
637
// Store next to allow the loop to continue
638
// if the visitor removes/replaces child.
639
next = child.NextSibling;
640
child.AcceptVisitor (this);
645
public virtual T VisitSyntaxTree (SyntaxTree unit)
647
return VisitChildren (unit);
650
public virtual T VisitComment (Comment comment)
652
return VisitChildren (comment);
655
public virtual T VisitNewLine(NewLineNode newLineNode)
657
return VisitChildren(newLineNode);
660
public virtual T VisitWhitespace(WhitespaceNode whitespaceNode)
662
return VisitChildren(whitespaceNode);
665
public virtual T VisitText(TextNode textNode)
667
return VisitChildren(textNode);
670
public virtual T VisitDocumentationReference (DocumentationReference documentationReference)
672
return VisitChildren (documentationReference);
675
public virtual T VisitPreProcessorDirective (PreProcessorDirective preProcessorDirective)
677
return VisitChildren (preProcessorDirective);
680
public virtual T VisitIdentifier (Identifier identifier)
682
return VisitChildren (identifier);
685
public virtual T VisitCSharpTokenNode (CSharpTokenNode token)
687
return VisitChildren (token);
690
public virtual T VisitPrimitiveType (PrimitiveType primitiveType)
692
return VisitChildren (primitiveType);
695
public virtual T VisitComposedType (ComposedType composedType)
697
return VisitChildren (composedType);
700
public virtual T VisitSimpleType(SimpleType simpleType)
702
return VisitChildren (simpleType);
705
public virtual T VisitMemberType(MemberType memberType)
707
return VisitChildren (memberType);
710
public virtual T VisitAttribute (Attribute attribute)
712
return VisitChildren (attribute);
715
public virtual T VisitAttributeSection (AttributeSection attributeSection)
717
return VisitChildren (attributeSection);
720
public virtual T VisitDelegateDeclaration (DelegateDeclaration delegateDeclaration)
722
return VisitChildren (delegateDeclaration);
725
public virtual T VisitNamespaceDeclaration (NamespaceDeclaration namespaceDeclaration)
727
return VisitChildren (namespaceDeclaration);
730
public virtual T VisitTypeDeclaration (TypeDeclaration typeDeclaration)
732
return VisitChildren (typeDeclaration);
735
public virtual T VisitTypeParameterDeclaration (TypeParameterDeclaration typeParameterDeclaration)
737
return VisitChildren (typeParameterDeclaration);
740
public virtual T VisitEnumMemberDeclaration (EnumMemberDeclaration enumMemberDeclaration)
742
return VisitChildren (enumMemberDeclaration);
745
public virtual T VisitUsingDeclaration (UsingDeclaration usingDeclaration)
747
return VisitChildren (usingDeclaration);
750
public virtual T VisitUsingAliasDeclaration (UsingAliasDeclaration usingDeclaration)
752
return VisitChildren (usingDeclaration);
755
public virtual T VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration)
757
return VisitChildren (externAliasDeclaration);
760
public virtual T VisitConstructorDeclaration (ConstructorDeclaration constructorDeclaration)
762
return VisitChildren (constructorDeclaration);
765
public virtual T VisitConstructorInitializer (ConstructorInitializer constructorInitializer)
767
return VisitChildren (constructorInitializer);
770
public virtual T VisitDestructorDeclaration (DestructorDeclaration destructorDeclaration)
772
return VisitChildren (destructorDeclaration);
775
public virtual T VisitEventDeclaration (EventDeclaration eventDeclaration)
777
return VisitChildren (eventDeclaration);
780
public virtual T VisitCustomEventDeclaration (CustomEventDeclaration eventDeclaration)
782
return VisitChildren (eventDeclaration);
785
public virtual T VisitFieldDeclaration (FieldDeclaration fieldDeclaration)
787
return VisitChildren (fieldDeclaration);
790
public virtual T VisitFixedFieldDeclaration (FixedFieldDeclaration fixedFieldDeclaration)
792
return VisitChildren (fixedFieldDeclaration);
795
public virtual T VisitFixedVariableInitializer (FixedVariableInitializer fixedVariableInitializer)
797
return VisitChildren (fixedVariableInitializer);
800
public virtual T VisitIndexerDeclaration (IndexerDeclaration indexerDeclaration)
802
return VisitChildren (indexerDeclaration);
805
public virtual T VisitMethodDeclaration (MethodDeclaration methodDeclaration)
807
return VisitChildren (methodDeclaration);
810
public virtual T VisitOperatorDeclaration (OperatorDeclaration operatorDeclaration)
812
return VisitChildren (operatorDeclaration);
815
public virtual T VisitPropertyDeclaration (PropertyDeclaration propertyDeclaration)
817
return VisitChildren (propertyDeclaration);
820
public virtual T VisitAccessor (Accessor accessor)
822
return VisitChildren (accessor);
825
public virtual T VisitVariableInitializer (VariableInitializer variableInitializer)
827
return VisitChildren (variableInitializer);
830
public virtual T VisitParameterDeclaration (ParameterDeclaration parameterDeclaration)
832
return VisitChildren (parameterDeclaration);
835
public virtual T VisitConstraint (Constraint constraint)
837
return VisitChildren (constraint);
840
public virtual T VisitBlockStatement (BlockStatement blockStatement)
842
return VisitChildren (blockStatement);
845
public virtual T VisitExpressionStatement (ExpressionStatement expressionStatement)
847
return VisitChildren (expressionStatement);
850
public virtual T VisitBreakStatement (BreakStatement breakStatement)
852
return VisitChildren (breakStatement);
855
public virtual T VisitCheckedStatement (CheckedStatement checkedStatement)
857
return VisitChildren (checkedStatement);
860
public virtual T VisitContinueStatement (ContinueStatement continueStatement)
862
return VisitChildren (continueStatement);
865
public virtual T VisitDoWhileStatement (DoWhileStatement doWhileStatement)
867
return VisitChildren (doWhileStatement);
870
public virtual T VisitEmptyStatement (EmptyStatement emptyStatement)
872
return VisitChildren (emptyStatement);
875
public virtual T VisitFixedStatement (FixedStatement fixedStatement)
877
return VisitChildren (fixedStatement);
880
public virtual T VisitForeachStatement (ForeachStatement foreachStatement)
882
return VisitChildren (foreachStatement);
885
public virtual T VisitForStatement (ForStatement forStatement)
887
return VisitChildren (forStatement);
890
public virtual T VisitGotoCaseStatement (GotoCaseStatement gotoCaseStatement)
892
return VisitChildren (gotoCaseStatement);
895
public virtual T VisitGotoDefaultStatement (GotoDefaultStatement gotoDefaultStatement)
897
return VisitChildren (gotoDefaultStatement);
900
public virtual T VisitGotoStatement (GotoStatement gotoStatement)
902
return VisitChildren (gotoStatement);
905
public virtual T VisitIfElseStatement (IfElseStatement ifElseStatement)
907
return VisitChildren (ifElseStatement);
910
public virtual T VisitLabelStatement (LabelStatement labelStatement)
912
return VisitChildren (labelStatement);
915
public virtual T VisitLockStatement (LockStatement lockStatement)
917
return VisitChildren (lockStatement);
920
public virtual T VisitReturnStatement (ReturnStatement returnStatement)
922
return VisitChildren (returnStatement);
925
public virtual T VisitSwitchStatement (SwitchStatement switchStatement)
927
return VisitChildren (switchStatement);
930
public virtual T VisitSwitchSection (SwitchSection switchSection)
932
return VisitChildren (switchSection);
935
public virtual T VisitCaseLabel (CaseLabel caseLabel)
937
return VisitChildren (caseLabel);
940
public virtual T VisitThrowStatement (ThrowStatement throwStatement)
942
return VisitChildren (throwStatement);
945
public virtual T VisitTryCatchStatement (TryCatchStatement tryCatchStatement)
947
return VisitChildren (tryCatchStatement);
950
public virtual T VisitCatchClause (CatchClause catchClause)
952
return VisitChildren (catchClause);
955
public virtual T VisitUncheckedStatement (UncheckedStatement uncheckedStatement)
957
return VisitChildren (uncheckedStatement);
960
public virtual T VisitUnsafeStatement (UnsafeStatement unsafeStatement)
962
return VisitChildren (unsafeStatement);
965
public virtual T VisitUsingStatement (UsingStatement usingStatement)
967
return VisitChildren (usingStatement);
970
public virtual T VisitVariableDeclarationStatement (VariableDeclarationStatement variableDeclarationStatement)
972
return VisitChildren (variableDeclarationStatement);
975
public virtual T VisitWhileStatement (WhileStatement whileStatement)
977
return VisitChildren (whileStatement);
980
public virtual T VisitYieldBreakStatement (YieldBreakStatement yieldBreakStatement)
982
return VisitChildren (yieldBreakStatement);
985
public virtual T VisitYieldReturnStatement (YieldReturnStatement yieldReturnStatement)
987
return VisitChildren (yieldReturnStatement);
990
public virtual T VisitAnonymousMethodExpression (AnonymousMethodExpression anonymousMethodExpression)
992
return VisitChildren (anonymousMethodExpression);
995
public virtual T VisitLambdaExpression (LambdaExpression lambdaExpression)
997
return VisitChildren (lambdaExpression);
1000
public virtual T VisitAssignmentExpression (AssignmentExpression assignmentExpression)
1002
return VisitChildren (assignmentExpression);
1005
public virtual T VisitBaseReferenceExpression (BaseReferenceExpression baseReferenceExpression)
1007
return VisitChildren (baseReferenceExpression);
1010
public virtual T VisitBinaryOperatorExpression (BinaryOperatorExpression binaryOperatorExpression)
1012
return VisitChildren (binaryOperatorExpression);
1015
public virtual T VisitCastExpression (CastExpression castExpression)
1017
return VisitChildren (castExpression);
1020
public virtual T VisitCheckedExpression (CheckedExpression checkedExpression)
1022
return VisitChildren (checkedExpression);
1025
public virtual T VisitConditionalExpression (ConditionalExpression conditionalExpression)
1027
return VisitChildren (conditionalExpression);
1030
public virtual T VisitIdentifierExpression (IdentifierExpression identifierExpression)
1032
return VisitChildren (identifierExpression);
1035
public virtual T VisitIndexerExpression (IndexerExpression indexerExpression)
1037
return VisitChildren (indexerExpression);
1040
public virtual T VisitInvocationExpression (InvocationExpression invocationExpression)
1042
return VisitChildren (invocationExpression);
1045
public virtual T VisitDirectionExpression (DirectionExpression directionExpression)
1047
return VisitChildren (directionExpression);
1050
public virtual T VisitMemberReferenceExpression (MemberReferenceExpression memberReferenceExpression)
1052
return VisitChildren (memberReferenceExpression);
1055
public virtual T VisitNullReferenceExpression (NullReferenceExpression nullReferenceExpression)
1057
return VisitChildren (nullReferenceExpression);
1060
public virtual T VisitObjectCreateExpression (ObjectCreateExpression objectCreateExpression)
1062
return VisitChildren (objectCreateExpression);
1065
public virtual T VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression)
1067
return VisitChildren (anonymousTypeCreateExpression);
1070
public virtual T VisitArrayCreateExpression (ArrayCreateExpression arrayCreateExpression)
1072
return VisitChildren (arrayCreateExpression);
1075
public virtual T VisitParenthesizedExpression (ParenthesizedExpression parenthesizedExpression)
1077
return VisitChildren (parenthesizedExpression);
1080
public virtual T VisitPointerReferenceExpression (PointerReferenceExpression pointerReferenceExpression)
1082
return VisitChildren (pointerReferenceExpression);
1085
public virtual T VisitPrimitiveExpression(PrimitiveExpression primitiveExpression)
1087
return VisitChildren (primitiveExpression);
1090
public virtual T VisitSizeOfExpression (SizeOfExpression sizeOfExpression)
1092
return VisitChildren (sizeOfExpression);
1095
public virtual T VisitStackAllocExpression (StackAllocExpression stackAllocExpression)
1097
return VisitChildren (stackAllocExpression);
1100
public virtual T VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression)
1102
return VisitChildren (thisReferenceExpression);
1105
public virtual T VisitTypeOfExpression (TypeOfExpression typeOfExpression)
1107
return VisitChildren (typeOfExpression);
1110
public virtual T VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression)
1112
return VisitChildren (typeReferenceExpression);
1115
public virtual T VisitUnaryOperatorExpression (UnaryOperatorExpression unaryOperatorExpression)
1117
return VisitChildren (unaryOperatorExpression);
1120
public virtual T VisitUncheckedExpression (UncheckedExpression uncheckedExpression)
1122
return VisitChildren (uncheckedExpression);
1125
public virtual T VisitQueryExpression(QueryExpression queryExpression)
1127
return VisitChildren (queryExpression);
1130
public virtual T VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause)
1132
return VisitChildren (queryContinuationClause);
1135
public virtual T VisitQueryFromClause(QueryFromClause queryFromClause)
1137
return VisitChildren (queryFromClause);
1140
public virtual T VisitQueryLetClause(QueryLetClause queryLetClause)
1142
return VisitChildren (queryLetClause);
1145
public virtual T VisitQueryWhereClause(QueryWhereClause queryWhereClause)
1147
return VisitChildren (queryWhereClause);
1150
public virtual T VisitQueryJoinClause(QueryJoinClause queryJoinClause)
1152
return VisitChildren (queryJoinClause);
1155
public virtual T VisitQueryOrderClause(QueryOrderClause queryOrderClause)
1157
return VisitChildren (queryOrderClause);
1160
public virtual T VisitQueryOrdering(QueryOrdering queryOrdering)
1162
return VisitChildren (queryOrdering);
1165
public virtual T VisitQuerySelectClause(QuerySelectClause querySelectClause)
1167
return VisitChildren (querySelectClause);
1170
public virtual T VisitQueryGroupClause(QueryGroupClause queryGroupClause)
1172
return VisitChildren (queryGroupClause);
1175
public virtual T VisitAsExpression (AsExpression asExpression)
1177
return VisitChildren (asExpression);
1180
public virtual T VisitIsExpression (IsExpression isExpression)
1182
return VisitChildren (isExpression);
1185
public virtual T VisitDefaultValueExpression (DefaultValueExpression defaultValueExpression)
1187
return VisitChildren (defaultValueExpression);
1190
public virtual T VisitUndocumentedExpression (UndocumentedExpression undocumentedExpression)
1192
return VisitChildren (undocumentedExpression);
1195
public virtual T VisitArrayInitializerExpression (ArrayInitializerExpression arrayInitializerExpression)
1197
return VisitChildren (arrayInitializerExpression);
1200
public virtual T VisitArraySpecifier (ArraySpecifier arraySpecifier)
1202
return VisitChildren (arraySpecifier);
1205
public virtual T VisitNamedArgumentExpression (NamedArgumentExpression namedArgumentExpression)
1207
return VisitChildren (namedArgumentExpression);
1210
public virtual T VisitNamedExpression (NamedExpression namedExpression)
1212
return VisitChildren (namedExpression);
1215
public virtual T VisitEmptyExpression (EmptyExpression emptyExpression)
1217
return VisitChildren (emptyExpression);
1220
public virtual T VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern)
1222
return VisitChildren (placeholder);
1227
/// AST visitor with a default implementation that visits all node depth-first.
1229
public abstract class DepthFirstAstVisitor<T, S> : IAstVisitor<T, S>
1231
protected virtual S VisitChildren (AstNode node, T data)
1234
for (var child = node.FirstChild; child != null; child = next) {
1235
// Store next to allow the loop to continue
1236
// if the visitor removes/replaces child.
1237
next = child.NextSibling;
1238
child.AcceptVisitor (this, data);
1243
public virtual S VisitSyntaxTree (SyntaxTree unit, T data)
1245
return VisitChildren (unit, data);
1248
public virtual S VisitComment (Comment comment, T data)
1250
return VisitChildren (comment, data);
1253
public virtual S VisitNewLine(NewLineNode newLineNode, T data)
1255
return VisitChildren(newLineNode, data);
1258
public virtual S VisitWhitespace(WhitespaceNode whitespaceNode, T data)
1260
return VisitChildren(whitespaceNode, data);
1263
public virtual S VisitText(TextNode textNode, T data)
1265
return VisitChildren(textNode, data);
1268
public virtual S VisitDocumentationReference (DocumentationReference documentationReference, T data)
1270
return VisitChildren (documentationReference, data);
1273
public virtual S VisitPreProcessorDirective (PreProcessorDirective preProcessorDirective, T data)
1275
return VisitChildren (preProcessorDirective, data);
1278
public virtual S VisitIdentifier (Identifier identifier, T data)
1280
return VisitChildren (identifier, data);
1283
public virtual S VisitCSharpTokenNode (CSharpTokenNode token, T data)
1285
return VisitChildren (token, data);
1288
public virtual S VisitPrimitiveType (PrimitiveType primitiveType, T data)
1290
return VisitChildren (primitiveType, data);
1293
public virtual S VisitComposedType (ComposedType composedType, T data)
1295
return VisitChildren (composedType, data);
1298
public virtual S VisitSimpleType(SimpleType simpleType, T data)
1300
return VisitChildren (simpleType, data);
1303
public virtual S VisitMemberType(MemberType memberType, T data)
1305
return VisitChildren (memberType, data);
1308
public virtual S VisitAttribute (Attribute attribute, T data)
1310
return VisitChildren (attribute, data);
1313
public virtual S VisitAttributeSection (AttributeSection attributeSection, T data)
1315
return VisitChildren (attributeSection, data);
1318
public virtual S VisitDelegateDeclaration (DelegateDeclaration delegateDeclaration, T data)
1320
return VisitChildren (delegateDeclaration, data);
1323
public virtual S VisitNamespaceDeclaration (NamespaceDeclaration namespaceDeclaration, T data)
1325
return VisitChildren (namespaceDeclaration, data);
1328
public virtual S VisitTypeDeclaration (TypeDeclaration typeDeclaration, T data)
1330
return VisitChildren (typeDeclaration, data);
1333
public virtual S VisitTypeParameterDeclaration (TypeParameterDeclaration typeParameterDeclaration, T data)
1335
return VisitChildren (typeParameterDeclaration, data);
1338
public virtual S VisitEnumMemberDeclaration (EnumMemberDeclaration enumMemberDeclaration, T data)
1340
return VisitChildren (enumMemberDeclaration, data);
1343
public virtual S VisitUsingDeclaration (UsingDeclaration usingDeclaration, T data)
1345
return VisitChildren (usingDeclaration, data);
1348
public virtual S VisitUsingAliasDeclaration (UsingAliasDeclaration usingDeclaration, T data)
1350
return VisitChildren (usingDeclaration, data);
1353
public virtual S VisitExternAliasDeclaration(ExternAliasDeclaration externAliasDeclaration, T data)
1355
return VisitChildren (externAliasDeclaration, data);
1358
public virtual S VisitConstructorDeclaration (ConstructorDeclaration constructorDeclaration, T data)
1360
return VisitChildren (constructorDeclaration, data);
1363
public virtual S VisitConstructorInitializer (ConstructorInitializer constructorInitializer, T data)
1365
return VisitChildren (constructorInitializer, data);
1368
public virtual S VisitDestructorDeclaration (DestructorDeclaration destructorDeclaration, T data)
1370
return VisitChildren (destructorDeclaration, data);
1373
public virtual S VisitEventDeclaration (EventDeclaration eventDeclaration, T data)
1375
return VisitChildren (eventDeclaration, data);
1378
public virtual S VisitCustomEventDeclaration (CustomEventDeclaration eventDeclaration, T data)
1380
return VisitChildren (eventDeclaration, data);
1383
public virtual S VisitFieldDeclaration (FieldDeclaration fieldDeclaration, T data)
1385
return VisitChildren (fieldDeclaration, data);
1388
public virtual S VisitFixedFieldDeclaration (FixedFieldDeclaration fixedFieldDeclaration, T data)
1390
return VisitChildren (fixedFieldDeclaration, data);
1393
public virtual S VisitFixedVariableInitializer (FixedVariableInitializer fixedVariableInitializer, T data)
1395
return VisitChildren (fixedVariableInitializer, data);
1398
public virtual S VisitIndexerDeclaration (IndexerDeclaration indexerDeclaration, T data)
1400
return VisitChildren (indexerDeclaration, data);
1403
public virtual S VisitMethodDeclaration (MethodDeclaration methodDeclaration, T data)
1405
return VisitChildren (methodDeclaration, data);
1408
public virtual S VisitOperatorDeclaration (OperatorDeclaration operatorDeclaration, T data)
1410
return VisitChildren (operatorDeclaration, data);
1413
public virtual S VisitPropertyDeclaration (PropertyDeclaration propertyDeclaration, T data)
1415
return VisitChildren (propertyDeclaration, data);
1418
public virtual S VisitAccessor (Accessor accessor, T data)
1420
return VisitChildren (accessor, data);
1423
public virtual S VisitVariableInitializer (VariableInitializer variableInitializer, T data)
1425
return VisitChildren (variableInitializer, data);
1428
public virtual S VisitParameterDeclaration (ParameterDeclaration parameterDeclaration, T data)
1430
return VisitChildren (parameterDeclaration, data);
1433
public virtual S VisitConstraint (Constraint constraint, T data)
1435
return VisitChildren (constraint, data);
1438
public virtual S VisitBlockStatement (BlockStatement blockStatement, T data)
1440
return VisitChildren (blockStatement, data);
1443
public virtual S VisitExpressionStatement (ExpressionStatement expressionStatement, T data)
1445
return VisitChildren (expressionStatement, data);
1448
public virtual S VisitBreakStatement (BreakStatement breakStatement, T data)
1450
return VisitChildren (breakStatement, data);
1453
public virtual S VisitCheckedStatement (CheckedStatement checkedStatement, T data)
1455
return VisitChildren (checkedStatement, data);
1458
public virtual S VisitContinueStatement (ContinueStatement continueStatement, T data)
1460
return VisitChildren (continueStatement, data);
1463
public virtual S VisitDoWhileStatement (DoWhileStatement doWhileStatement, T data)
1465
return VisitChildren (doWhileStatement, data);
1468
public virtual S VisitEmptyStatement (EmptyStatement emptyStatement, T data)
1470
return VisitChildren (emptyStatement, data);
1473
public virtual S VisitFixedStatement (FixedStatement fixedStatement, T data)
1475
return VisitChildren (fixedStatement, data);
1478
public virtual S VisitForeachStatement (ForeachStatement foreachStatement, T data)
1480
return VisitChildren (foreachStatement, data);
1483
public virtual S VisitForStatement (ForStatement forStatement, T data)
1485
return VisitChildren (forStatement, data);
1488
public virtual S VisitGotoCaseStatement (GotoCaseStatement gotoCaseStatement, T data)
1490
return VisitChildren (gotoCaseStatement, data);
1493
public virtual S VisitGotoDefaultStatement (GotoDefaultStatement gotoDefaultStatement, T data)
1495
return VisitChildren (gotoDefaultStatement, data);
1498
public virtual S VisitGotoStatement (GotoStatement gotoStatement, T data)
1500
return VisitChildren (gotoStatement, data);
1503
public virtual S VisitIfElseStatement (IfElseStatement ifElseStatement, T data)
1505
return VisitChildren (ifElseStatement, data);
1508
public virtual S VisitLabelStatement (LabelStatement labelStatement, T data)
1510
return VisitChildren (labelStatement, data);
1513
public virtual S VisitLockStatement (LockStatement lockStatement, T data)
1515
return VisitChildren (lockStatement, data);
1518
public virtual S VisitReturnStatement (ReturnStatement returnStatement, T data)
1520
return VisitChildren (returnStatement, data);
1523
public virtual S VisitSwitchStatement (SwitchStatement switchStatement, T data)
1525
return VisitChildren (switchStatement, data);
1528
public virtual S VisitSwitchSection (SwitchSection switchSection, T data)
1530
return VisitChildren (switchSection, data);
1533
public virtual S VisitCaseLabel (CaseLabel caseLabel, T data)
1535
return VisitChildren (caseLabel, data);
1538
public virtual S VisitThrowStatement (ThrowStatement throwStatement, T data)
1540
return VisitChildren (throwStatement, data);
1543
public virtual S VisitTryCatchStatement (TryCatchStatement tryCatchStatement, T data)
1545
return VisitChildren (tryCatchStatement, data);
1548
public virtual S VisitCatchClause (CatchClause catchClause, T data)
1550
return VisitChildren (catchClause, data);
1553
public virtual S VisitUncheckedStatement (UncheckedStatement uncheckedStatement, T data)
1555
return VisitChildren (uncheckedStatement, data);
1558
public virtual S VisitUnsafeStatement (UnsafeStatement unsafeStatement, T data)
1560
return VisitChildren (unsafeStatement, data);
1563
public virtual S VisitUsingStatement (UsingStatement usingStatement, T data)
1565
return VisitChildren (usingStatement, data);
1568
public virtual S VisitVariableDeclarationStatement (VariableDeclarationStatement variableDeclarationStatement, T data)
1570
return VisitChildren (variableDeclarationStatement, data);
1573
public virtual S VisitWhileStatement (WhileStatement whileStatement, T data)
1575
return VisitChildren (whileStatement, data);
1578
public virtual S VisitYieldBreakStatement (YieldBreakStatement yieldBreakStatement, T data)
1580
return VisitChildren (yieldBreakStatement, data);
1583
public virtual S VisitYieldReturnStatement (YieldReturnStatement yieldReturnStatement, T data)
1585
return VisitChildren (yieldReturnStatement, data);
1588
public virtual S VisitAnonymousMethodExpression (AnonymousMethodExpression anonymousMethodExpression, T data)
1590
return VisitChildren (anonymousMethodExpression, data);
1593
public virtual S VisitLambdaExpression (LambdaExpression lambdaExpression, T data)
1595
return VisitChildren (lambdaExpression, data);
1598
public virtual S VisitAssignmentExpression (AssignmentExpression assignmentExpression, T data)
1600
return VisitChildren (assignmentExpression, data);
1603
public virtual S VisitBaseReferenceExpression (BaseReferenceExpression baseReferenceExpression, T data)
1605
return VisitChildren (baseReferenceExpression, data);
1608
public virtual S VisitBinaryOperatorExpression (BinaryOperatorExpression binaryOperatorExpression, T data)
1610
return VisitChildren (binaryOperatorExpression, data);
1613
public virtual S VisitCastExpression (CastExpression castExpression, T data)
1615
return VisitChildren (castExpression, data);
1618
public virtual S VisitCheckedExpression (CheckedExpression checkedExpression, T data)
1620
return VisitChildren (checkedExpression, data);
1623
public virtual S VisitConditionalExpression (ConditionalExpression conditionalExpression, T data)
1625
return VisitChildren (conditionalExpression, data);
1628
public virtual S VisitIdentifierExpression (IdentifierExpression identifierExpression, T data)
1630
return VisitChildren (identifierExpression, data);
1633
public virtual S VisitIndexerExpression (IndexerExpression indexerExpression, T data)
1635
return VisitChildren (indexerExpression, data);
1638
public virtual S VisitInvocationExpression (InvocationExpression invocationExpression, T data)
1640
return VisitChildren (invocationExpression, data);
1643
public virtual S VisitDirectionExpression (DirectionExpression directionExpression, T data)
1645
return VisitChildren (directionExpression, data);
1648
public virtual S VisitMemberReferenceExpression (MemberReferenceExpression memberReferenceExpression, T data)
1650
return VisitChildren (memberReferenceExpression, data);
1653
public virtual S VisitNullReferenceExpression (NullReferenceExpression nullReferenceExpression, T data)
1655
return VisitChildren (nullReferenceExpression, data);
1658
public virtual S VisitObjectCreateExpression (ObjectCreateExpression objectCreateExpression, T data)
1660
return VisitChildren (objectCreateExpression, data);
1663
public virtual S VisitAnonymousTypeCreateExpression(AnonymousTypeCreateExpression anonymousTypeCreateExpression, T data)
1665
return VisitChildren (anonymousTypeCreateExpression, data);
1668
public virtual S VisitArrayCreateExpression (ArrayCreateExpression arrayCreateExpression, T data)
1670
return VisitChildren (arrayCreateExpression, data);
1673
public virtual S VisitParenthesizedExpression (ParenthesizedExpression parenthesizedExpression, T data)
1675
return VisitChildren (parenthesizedExpression, data);
1678
public virtual S VisitPointerReferenceExpression (PointerReferenceExpression pointerReferenceExpression, T data)
1680
return VisitChildren (pointerReferenceExpression, data);
1683
public virtual S VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, T data)
1685
return VisitChildren (primitiveExpression, data);
1688
public virtual S VisitSizeOfExpression (SizeOfExpression sizeOfExpression, T data)
1690
return VisitChildren (sizeOfExpression, data);
1693
public virtual S VisitStackAllocExpression (StackAllocExpression stackAllocExpression, T data)
1695
return VisitChildren (stackAllocExpression, data);
1698
public virtual S VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, T data)
1700
return VisitChildren (thisReferenceExpression, data);
1703
public virtual S VisitTypeOfExpression (TypeOfExpression typeOfExpression, T data)
1705
return VisitChildren (typeOfExpression, data);
1708
public virtual S VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, T data)
1710
return VisitChildren (typeReferenceExpression, data);
1713
public virtual S VisitUnaryOperatorExpression (UnaryOperatorExpression unaryOperatorExpression, T data)
1715
return VisitChildren (unaryOperatorExpression, data);
1718
public virtual S VisitUncheckedExpression (UncheckedExpression uncheckedExpression, T data)
1720
return VisitChildren (uncheckedExpression, data);
1723
public virtual S VisitQueryExpression(QueryExpression queryExpression, T data)
1725
return VisitChildren (queryExpression, data);
1728
public virtual S VisitQueryContinuationClause(QueryContinuationClause queryContinuationClause, T data)
1730
return VisitChildren (queryContinuationClause, data);
1733
public virtual S VisitQueryFromClause(QueryFromClause queryFromClause, T data)
1735
return VisitChildren (queryFromClause, data);
1738
public virtual S VisitQueryLetClause(QueryLetClause queryLetClause, T data)
1740
return VisitChildren (queryLetClause, data);
1743
public virtual S VisitQueryWhereClause(QueryWhereClause queryWhereClause, T data)
1745
return VisitChildren (queryWhereClause, data);
1748
public virtual S VisitQueryJoinClause(QueryJoinClause queryJoinClause, T data)
1750
return VisitChildren (queryJoinClause, data);
1753
public virtual S VisitQueryOrderClause(QueryOrderClause queryOrderClause, T data)
1755
return VisitChildren (queryOrderClause, data);
1758
public virtual S VisitQueryOrdering(QueryOrdering queryOrdering, T data)
1760
return VisitChildren (queryOrdering, data);
1763
public virtual S VisitQuerySelectClause(QuerySelectClause querySelectClause, T data)
1765
return VisitChildren (querySelectClause, data);
1768
public virtual S VisitQueryGroupClause(QueryGroupClause queryGroupClause, T data)
1770
return VisitChildren (queryGroupClause, data);
1773
public virtual S VisitAsExpression (AsExpression asExpression, T data)
1775
return VisitChildren (asExpression, data);
1778
public virtual S VisitIsExpression (IsExpression isExpression, T data)
1780
return VisitChildren (isExpression, data);
1783
public virtual S VisitDefaultValueExpression (DefaultValueExpression defaultValueExpression, T data)
1785
return VisitChildren (defaultValueExpression, data);
1788
public virtual S VisitUndocumentedExpression (UndocumentedExpression undocumentedExpression, T data)
1790
return VisitChildren (undocumentedExpression, data);
1793
public virtual S VisitArrayInitializerExpression (ArrayInitializerExpression arrayInitializerExpression, T data)
1795
return VisitChildren (arrayInitializerExpression, data);
1798
public virtual S VisitArraySpecifier (ArraySpecifier arraySpecifier, T data)
1800
return VisitChildren (arraySpecifier, data);
1803
public virtual S VisitNamedArgumentExpression (NamedArgumentExpression namedArgumentExpression, T data)
1805
return VisitChildren (namedArgumentExpression, data);
1808
public virtual S VisitNamedExpression (NamedExpression namedExpression, T data)
1810
return VisitChildren (namedExpression, data);
1813
public virtual S VisitEmptyExpression (EmptyExpression emptyExpression, T data)
1815
return VisitChildren (emptyExpression, data);
1818
public virtual S VisitPatternPlaceholder(AstNode placeholder, PatternMatching.Pattern pattern, T data)
1820
return VisitChildren (placeholder, data);