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
17 public abstract class StructuralVisitor
19 public virtual void Visit (MemberCore member)
21 Console.WriteLine ("unknown member type: " + member.GetType ());
24 void VisitTypeContainer (TypeContainer tc)
26 //foreach (var member in tc.OrderedAllMembers) {
27 // member.Accept (this);
31 public virtual void Visit (ModuleContainer module)
33 VisitTypeContainer (module);
36 public virtual void Visit (Class c)
38 VisitTypeContainer (c);
41 public virtual void Visit (Struct s)
43 VisitTypeContainer (s);
47 public virtual void Visit (Interface i)
49 VisitTypeContainer (i);
52 public virtual void Visit (Delegate d)
56 public virtual void Visit (Enum e)
58 VisitTypeContainer (e);
61 public virtual void Visit (FixedField f)
65 public virtual void Visit (Const c)
69 public virtual void Visit (Field f)
73 public virtual void Visit (Operator o)
77 public virtual void Visit (Indexer i)
81 public virtual void Visit (Method m)
85 public virtual void Visit (Property p)
89 public virtual void Visit (Constructor c)
93 public virtual void Visit (Destructor d)
97 public virtual void Visit (EventField e)
100 public virtual void Visit (EventProperty ep)
104 public virtual void Visit (EnumMember em)
108 public virtual object Visit (Statement stmt)
110 Console.WriteLine ("unknown statement:" + stmt);
114 public virtual object Visit (BlockVariableDeclaration blockVariableDeclaration)
119 public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration)
124 public virtual object Visit (EmptyStatement emptyStatement)
129 public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement)
134 public virtual object Visit (EmptyExpression emptyExpression)
139 public virtual object Visit (ErrorExpression errorExpression)
144 public virtual object Visit (If ifStatement)
150 public virtual object Visit (Do doStatement)
155 public virtual object Visit (While whileStatement)
160 public virtual object Visit (For forStatement)
165 public virtual object Visit (StatementExpression statementExpression)
170 public virtual object Visit (StatementErrorExpression errorStatement)
175 public virtual object Visit (Return returnStatement)
180 public virtual object Visit (Goto gotoStatement)
185 public virtual object Visit (LabeledStatement labeledStatement)
190 public virtual object Visit (GotoDefault gotoDefault)
195 public virtual object Visit (GotoCase gotoCase)
200 public virtual object Visit (Throw throwStatement)
205 public virtual object Visit (Break breakStatement)
210 public virtual object Visit (Continue continueStatement)
215 public virtual object Visit (Block blockStatement)
220 public virtual object Visit (Switch switchStatement)
225 public virtual object Visit (StatementList statementList)
230 public virtual object Visit (Lock lockStatement)
235 public virtual object Visit (Unchecked uncheckedStatement)
240 public virtual object Visit (Checked checkedStatement)
245 public virtual object Visit (Unsafe unsafeStatement)
251 public virtual object Visit (Fixed fixedStatement)
257 public virtual object Visit (TryFinally tryFinallyStatement)
262 public virtual object Visit (TryCatch tryCatchStatement)
267 public virtual object Visit (Using usingStatement)
272 public virtual object Visit (Foreach foreachStatement)
277 public virtual object Visit (Yield yieldStatement)
282 public virtual object Visit (YieldBreak yieldBreakStatement)
287 public virtual object Visit (Expression expression)
289 Console.WriteLine ("Visit unknown expression:" + expression);
293 public virtual object Visit (MemberAccess memberAccess)
298 public virtual object Visit (QualifiedAliasMember qualifiedAliasMember)
303 public virtual object Visit (LocalVariableReference localVariableReference)
308 public virtual object Visit (Constant constant)
313 public virtual object Visit (BooleanExpression booleanExpression)
318 public virtual object Visit (SimpleName simpleName)
323 public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
328 public virtual object Visit (Unary unaryExpression)
333 public virtual object Visit (UnaryMutator unaryMutatorExpression)
339 public virtual object Visit (Indirection indirectionExpression)
344 public virtual object Visit (Is isExpression)
349 public virtual object Visit (As asExpression)
354 public virtual object Visit (Cast castExpression)
359 public virtual object Visit (ComposedCast composedCast)
364 public virtual object Visit (DefaultValueExpression defaultValueExpression)
369 public virtual object Visit (DefaultParameterValueExpression defaultParameterValueExpression)
374 public virtual object Visit (Binary binaryExpression)
379 public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
384 public virtual object Visit (Conditional conditionalExpression)
389 public virtual object Visit (Invocation invocationExpression)
394 public virtual object Visit (New newExpression)
399 public virtual object Visit (NewAnonymousType newAnonymousType)
404 public virtual object Visit (NewInitialize newInitializeExpression)
409 public virtual object Visit (ArrayCreation arrayCreationExpression)
414 public virtual object Visit (This thisExpression)
419 public virtual object Visit (ArglistAccess argListAccessExpression)
424 public virtual object Visit (Arglist argListExpression)
429 public virtual object Visit (TypeOf typeOfExpression)
434 public virtual object Visit (SizeOf sizeOfExpression)
439 public virtual object Visit (CheckedExpr checkedExpression)
444 public virtual object Visit (UnCheckedExpr uncheckedExpression)
449 public virtual object Visit (ElementAccess elementAccessExpression)
454 public virtual object Visit (BaseThis baseAccessExpression)
459 public virtual object Visit (StackAlloc stackAllocExpression)
464 public virtual object Visit (SimpleAssign simpleAssign)
469 public virtual object Visit (CompoundAssign compoundAssign)
474 public virtual object Visit (TypeExpression typeExpression)
479 public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
484 public virtual object Visit (LambdaExpression lambdaExpression)
489 public virtual object Visit (ConstInitializer constInitializer)
494 public virtual object Visit (ArrayInitializer arrayInitializer)
499 public virtual object Visit (Linq.QueryExpression queryExpression)
504 public virtual object Visit (Linq.QueryStartClause queryExpression)
509 public virtual object Visit (Linq.SelectMany selectMany)
514 public virtual object Visit (Linq.Select select)
519 public virtual object Visit (Linq.GroupBy groupBy)
524 public virtual object Visit (Linq.Let let)
529 public virtual object Visit (Linq.Where where)
534 public virtual object Visit (Linq.Join join)
539 public virtual object Visit (Linq.GroupJoin groupJoin)
544 public virtual object Visit (Linq.OrderByAscending orderByAscending)
549 public virtual object Visit (Linq.OrderByDescending orderByDescending)
554 public virtual object Visit (Linq.ThenByAscending thenByAscending)
559 public virtual object Visit (Linq.ThenByDescending thenByDescending)
564 // undocumented expressions
565 public virtual object Visit (RefValueExpr refValueExpr)
570 public virtual object Visit (RefTypeExpr refTypeExpr)
575 public virtual object Visit (MakeRefExpr makeRefExpr)
580 public virtual object Visit (Await awaitExpr)