2
// visit.cs: Visitors for parsed dom
4
// Authors: Mike Krļæ½ger (mkrueger@novell.com)
5
// Marek Safar (marek.safar@gmail.com)
7
// Dual licensed under the terms of the MIT X11 or GNU GPL
9
// Copyright (c) 2010 Novell, Inc (http://www.novell.com)
10
// Copyright 2011 Xamarin Inc
14
using System.Diagnostics;
18
public abstract class StructuralVisitor
20
public virtual void Visit (MemberCore member)
22
Debug.Fail ("unknown member type: " + member.GetType ());
25
public virtual void Visit (ModuleContainer mc)
27
foreach (var container in mc.Containers) {
28
container.Accept (this);
32
void VisitTypeDefinition (TypeDefinition tc)
34
foreach (var member in tc.Members) {
39
public virtual void Visit (NamespaceContainer ns)
43
public virtual void Visit (UsingNamespace un)
47
public virtual void Visit (UsingAliasNamespace uan)
51
public virtual void Visit (UsingExternAlias uea)
55
public virtual void Visit (Class c)
57
VisitTypeDefinition (c);
60
public virtual void Visit (Struct s)
62
VisitTypeDefinition (s);
66
public virtual void Visit (Interface i)
68
VisitTypeDefinition (i);
71
public virtual void Visit (Delegate d)
75
public virtual void Visit (Enum e)
77
VisitTypeDefinition (e);
80
public virtual void Visit (FixedField f)
84
public virtual void Visit (Const c)
88
public virtual void Visit (Field f)
92
public virtual void Visit (Operator o)
96
public virtual void Visit (Indexer i)
100
public virtual void Visit (Method m)
104
public virtual void Visit (Property p)
108
public virtual void Visit (Constructor c)
112
public virtual void Visit (Destructor d)
116
public virtual void Visit (EventField e)
119
public virtual void Visit (EventProperty ep)
123
public virtual void Visit (EnumMember em)
127
public virtual object Visit (Statement stmt)
129
Debug.Fail ("unknown statement:" + stmt);
133
public virtual object Visit (BlockVariableDeclaration blockVariableDeclaration)
138
public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration)
143
public virtual object Visit (EmptyStatement emptyStatement)
148
public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement)
153
public virtual object Visit (EmptyExpression emptyExpression)
158
public virtual object Visit (ErrorExpression errorExpression)
163
public virtual object Visit (If ifStatement)
169
public virtual object Visit (Do doStatement)
174
public virtual object Visit (While whileStatement)
179
public virtual object Visit (For forStatement)
184
public virtual object Visit (StatementExpression statementExpression)
189
public virtual object Visit (StatementErrorExpression errorStatement)
194
public virtual object Visit (Return returnStatement)
199
public virtual object Visit (Goto gotoStatement)
204
public virtual object Visit (LabeledStatement labeledStatement)
209
public virtual object Visit (SwitchLabel switchLabel)
214
public virtual object Visit (GotoDefault gotoDefault)
219
public virtual object Visit (GotoCase gotoCase)
224
public virtual object Visit (Throw throwStatement)
229
public virtual object Visit (Break breakStatement)
234
public virtual object Visit (Continue continueStatement)
239
public virtual object Visit (Block blockStatement)
244
public virtual object Visit (Switch switchStatement)
249
public virtual object Visit (StatementList statementList)
254
public virtual object Visit (Lock lockStatement)
259
public virtual object Visit (Unchecked uncheckedStatement)
264
public virtual object Visit (Checked checkedStatement)
269
public virtual object Visit (Unsafe unsafeStatement)
275
public virtual object Visit (Fixed fixedStatement)
281
public virtual object Visit (TryFinally tryFinallyStatement)
286
public virtual object Visit (TryCatch tryCatchStatement)
291
public virtual object Visit (Using usingStatement)
296
public virtual object Visit (Foreach foreachStatement)
301
public virtual object Visit (Yield yieldStatement)
306
public virtual object Visit (YieldBreak yieldBreakStatement)
311
public virtual object Visit (InvalidStatementExpression invalidStatementExpression)
316
public virtual object Visit (Expression expression)
318
Debug.Fail ("Visit unknown expression:" + expression);
322
public virtual object Visit (MemberAccess memberAccess)
327
public virtual object Visit (QualifiedAliasMember qualifiedAliasMember)
332
public virtual object Visit (LocalVariableReference localVariableReference)
337
public virtual object Visit (Constant constant)
342
public virtual object Visit (BooleanExpression booleanExpression)
347
public virtual object Visit (SimpleName simpleName)
352
public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
357
public virtual object Visit (Unary unaryExpression)
362
public virtual object Visit (UnaryMutator unaryMutatorExpression)
368
public virtual object Visit (Indirection indirectionExpression)
373
public virtual object Visit (Is isExpression)
378
public virtual object Visit (As asExpression)
383
public virtual object Visit (Cast castExpression)
388
public virtual object Visit (ComposedCast composedCast)
393
public virtual object Visit (DefaultValueExpression defaultValueExpression)
398
public virtual object Visit (DefaultParameterValueExpression defaultParameterValueExpression)
403
public virtual object Visit (Binary binaryExpression)
408
public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
413
public virtual object Visit (Conditional conditionalExpression)
418
public virtual object Visit (Invocation invocationExpression)
423
public virtual object Visit (New newExpression)
428
public virtual object Visit (NewAnonymousType newAnonymousType)
433
public virtual object Visit (NewInitialize newInitializeExpression)
438
public virtual object Visit (ArrayCreation arrayCreationExpression)
443
public virtual object Visit (This thisExpression)
448
public virtual object Visit (ArglistAccess argListAccessExpression)
453
public virtual object Visit (Arglist argListExpression)
458
public virtual object Visit (TypeOf typeOfExpression)
463
public virtual object Visit (SizeOf sizeOfExpression)
468
public virtual object Visit (CheckedExpr checkedExpression)
473
public virtual object Visit (UnCheckedExpr uncheckedExpression)
478
public virtual object Visit (ElementAccess elementAccessExpression)
483
public virtual object Visit (BaseThis baseAccessExpression)
488
public virtual object Visit (StackAlloc stackAllocExpression)
493
public virtual object Visit (SimpleAssign simpleAssign)
498
public virtual object Visit (CompoundAssign compoundAssign)
503
public virtual object Visit (TypeExpression typeExpression)
508
public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
513
public virtual object Visit (LambdaExpression lambdaExpression)
518
public virtual object Visit (ConstInitializer constInitializer)
523
public virtual object Visit (ArrayInitializer arrayInitializer)
528
public virtual object Visit (Linq.QueryExpression queryExpression)
533
public virtual object Visit (Linq.QueryStartClause queryExpression)
538
public virtual object Visit (Linq.SelectMany selectMany)
543
public virtual object Visit (Linq.Select select)
548
public virtual object Visit (Linq.GroupBy groupBy)
553
public virtual object Visit (Linq.Let let)
558
public virtual object Visit (Linq.Where where)
563
public virtual object Visit (Linq.Join join)
568
public virtual object Visit (Linq.GroupJoin groupJoin)
573
public virtual object Visit (Linq.OrderByAscending orderByAscending)
578
public virtual object Visit (Linq.OrderByDescending orderByDescending)
583
public virtual object Visit (Linq.ThenByAscending thenByAscending)
588
public virtual object Visit (Linq.ThenByDescending thenByDescending)
593
// undocumented expressions
594
public virtual object Visit (RefValueExpr refValueExpr)
599
public virtual object Visit (RefTypeExpr refTypeExpr)
604
public virtual object Visit (MakeRefExpr makeRefExpr)
609
public virtual object Visit (Await awaitExpr)
b'\\ No newline at end of file'