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)
16 public abstract class StructuralVisitor
18 public virtual void Visit (MemberCore member)
20 Console.WriteLine ("unknown member type: " + member.GetType ());
23 void VisitTypeContainer (TypeContainer tc)
25 //foreach (var member in tc.OrderedAllMembers) {
26 // member.Accept (this);
30 public virtual void Visit (ModuleContainer module)
32 VisitTypeContainer (module);
35 public virtual void Visit (Class c)
37 VisitTypeContainer (c);
40 public virtual void Visit (Struct s)
42 VisitTypeContainer (s);
46 public virtual void Visit (Interface i)
48 VisitTypeContainer (i);
51 public virtual void Visit (Delegate d)
55 public virtual void Visit (Enum e)
57 VisitTypeContainer (e);
60 public virtual void Visit (FixedField f)
64 public virtual void Visit (Const c)
68 public virtual void Visit (Field f)
72 public virtual void Visit (Operator o)
76 public virtual void Visit (Indexer i)
80 public virtual void Visit (Method m)
84 public virtual void Visit (Property p)
88 public virtual void Visit (Constructor c)
92 public virtual void Visit (Destructor d)
96 public virtual void Visit (EventField e)
99 public virtual void Visit (EventProperty ep)
103 public virtual void Visit (EnumMember em)
107 public virtual object Visit (Statement stmt)
109 Console.WriteLine ("unknown statement:" + stmt);
113 public virtual object Visit (BlockVariableDeclaration blockVariableDeclaration)
118 public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration)
123 public virtual object Visit (EmptyStatement emptyStatement)
128 public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement)
133 public virtual object Visit (If ifStatement)
139 public virtual object Visit (Do doStatement)
145 public virtual object Visit (While whileStatement)
151 public virtual object Visit (For forStatement)
157 public virtual object Visit (StatementExpression statementExpression)
163 public virtual object Visit (Return returnStatement)
169 public virtual object Visit (Goto gotoStatement)
175 public virtual object Visit (LabeledStatement labeledStatement)
181 public virtual object Visit (GotoDefault gotoDefault)
187 public virtual object Visit (GotoCase gotoCase)
193 public virtual object Visit (Throw throwStatement)
199 public virtual object Visit (Break breakStatement)
205 public virtual object Visit (Continue continueStatement)
211 public virtual object Visit (Block blockStatement)
216 public virtual object Visit (Switch switchStatement)
221 public virtual object Visit (StatementList statementList)
226 public virtual object Visit (Lock lockStatement)
232 public virtual object Visit (Unchecked uncheckedStatement)
238 public virtual object Visit (Checked checkedStatement)
244 public virtual object Visit (Unsafe unsafeStatement)
250 public virtual object Visit (Fixed fixedStatement)
256 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 (LocalVariableReference localVariableReference)
303 public virtual object Visit (Constant constant)
308 public virtual object Visit (BooleanExpression booleanExpression)
313 public virtual object Visit (SimpleName simpleName)
318 public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
323 public virtual object Visit (Unary unaryExpression)
328 public virtual object Visit (UnaryMutator unaryMutatorExpression)
334 public virtual object Visit (Indirection indirectionExpression)
339 public virtual object Visit (Is isExpression)
344 public virtual object Visit (As asExpression)
349 public virtual object Visit (Cast castExpression)
354 public virtual object Visit (ComposedCast composedCast)
359 public virtual object Visit (DefaultValueExpression defaultValueExpression)
364 public virtual object Visit (DefaultParameterValueExpression defaultParameterValueExpression)
369 public virtual object Visit (Binary binaryExpression)
374 public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
380 public virtual object Visit (Conditional conditionalExpression)
385 public virtual object Visit (Invocation invocationExpression)
390 public virtual object Visit (New newExpression)
395 public virtual object Visit (NewInitialize newInitializeExpression)
400 public virtual object Visit (ArrayCreation arrayCreationExpression)
405 public virtual object Visit (This thisExpression)
410 public virtual object Visit (ArglistAccess argListAccessExpression)
415 public virtual object Visit (Arglist argListExpression)
420 public virtual object Visit (TypeOf typeOfExpression)
425 public virtual object Visit (SizeOf sizeOfExpression)
430 public virtual object Visit (CheckedExpr checkedExpression)
435 public virtual object Visit (UnCheckedExpr uncheckedExpression)
440 public virtual object Visit (ElementAccess elementAccessExpression)
445 public virtual object Visit (BaseThis baseAccessExpression)
450 public virtual object Visit (StackAlloc stackAllocExpression)
455 public virtual object Visit (SimpleAssign simpleAssign)
460 public virtual object Visit (CompoundAssign compoundAssign)
465 public virtual object Visit (TypeExpression typeExpression)
470 public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
475 public virtual object Visit (LambdaExpression lambdaExpression)
480 public virtual object Visit (ConstInitializer constInitializer)
485 public virtual object Visit (ArrayInitializer arrayInitializer)
490 public virtual object Visit (Linq.QueryExpression queryExpression)
495 public virtual object Visit (Linq.SelectMany selectMany)
500 public virtual object Visit (Linq.Select select)
505 public virtual object Visit (Linq.GroupBy groupBy)
510 public virtual object Visit (Linq.Let let)
515 public virtual object Visit (Linq.Where where)
520 public virtual object Visit (Linq.Join join)
525 public virtual object Visit (Linq.GroupJoin groupJoin)
530 public virtual object Visit (Linq.OrderByAscending orderByAscending)
535 public virtual object Visit (Linq.OrderByDescending orderByDescending)
540 public virtual object Visit (Linq.ThenByAscending thenByAscending)
545 public virtual object Visit (Linq.ThenByDescending thenByDescending)