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: " + member);
23 void VisitTypeContainer (TypeContainer tc)
25 //foreach (var member in tc.OrderedAllMembers) {
26 // member.Accept (this);
30 public virtual void Visit (Class c)
32 VisitTypeContainer (c);
35 public virtual void Visit (Struct s)
37 VisitTypeContainer (s);
41 public virtual void Visit (Interface i)
43 VisitTypeContainer (i);
46 public virtual void Visit (Delegate d)
50 public virtual void Visit (Enum e)
52 VisitTypeContainer (e);
55 public virtual void Visit (FixedField f)
59 public virtual void Visit (Field f)
63 public virtual void Visit (Operator o)
67 public virtual void Visit (Indexer i)
71 public virtual void Visit (Method m)
75 public virtual void Visit (Property p)
79 public virtual void Visit (Constructor c)
83 public virtual void Visit (Destructor d)
87 public virtual void Visit (EventField e)
90 public virtual void Visit (EventProperty ep)
94 public virtual void Visit (EnumMember em)
98 public virtual object Visit (Statement stmt)
100 Console.WriteLine ("unknown statement:" + stmt);
104 public virtual object Visit (EmptyStatement emptyStatement)
109 public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement)
114 public virtual object Visit (If ifStatement)
120 public virtual object Visit (Do doStatement)
126 public virtual object Visit (While whileStatement)
132 public virtual object Visit (For forStatement)
138 public virtual object Visit (StatementExpression statementExpression)
144 public virtual object Visit (Return returnStatement)
150 public virtual object Visit (Goto gotoStatement)
156 public virtual object Visit (LabeledStatement labeledStatement)
162 public virtual object Visit (GotoDefault gotoDefault)
168 public virtual object Visit (GotoCase gotoCase)
174 public virtual object Visit (Throw throwStatement)
180 public virtual object Visit (Break breakStatement)
186 public virtual object Visit (Continue continueStatement)
192 public virtual object Visit (Block blockStatement)
198 public virtual object Visit (Switch switchStatement)
204 public virtual object Visit (Lock lockStatement)
210 public virtual object Visit (Unchecked uncheckedStatement)
216 public virtual object Visit (Checked checkedStatement)
222 public virtual object Visit (Unsafe unsafeStatement)
228 public virtual object Visit (Fixed fixedStatement)
234 public virtual object Visit (TryFinally tryFinallyStatement)
240 public virtual object Visit (TryCatch tryCatchStatement)
245 public virtual object Visit (Using usingStatement)
250 public virtual object Visit (Foreach foreachStatement)
255 public virtual object Visit (Yield yieldStatement)
260 public virtual object Visit (YieldBreak yieldBreakStatement)
265 public virtual object Visit (Expression expression)
267 Console.WriteLine ("Visit unknown expression:" + expression);
271 public virtual object Visit (MemberAccess memberAccess)
276 public virtual object Visit (LocalVariableReference localVariableReference)
281 public virtual object Visit (Constant constant)
286 public virtual object Visit (BooleanExpression booleanExpression)
291 public virtual object Visit (SimpleName simpleName)
296 public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
301 public virtual object Visit (Unary unaryExpression)
306 public virtual object Visit (UnaryMutator unaryMutatorExpression)
312 public virtual object Visit (Indirection indirectionExpression)
317 public virtual object Visit (Is isExpression)
322 public virtual object Visit (As asExpression)
327 public virtual object Visit (Cast castExpression)
332 public virtual object Visit (ComposedCast composedCast)
337 public virtual object Visit (DefaultValueExpression defaultValueExpression)
342 public virtual object Visit (Binary binaryExpression)
347 public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
353 public virtual object Visit (Conditional conditionalExpression)
358 public virtual object Visit (Invocation invocationExpression)
363 public virtual object Visit (New newExpression)
368 public virtual object Visit (NewInitialize newInitializeExpression)
373 public virtual object Visit (ArrayCreation arrayCreationExpression)
378 public virtual object Visit (This thisExpression)
383 public virtual object Visit (ArglistAccess argListAccessExpression)
388 public virtual object Visit (Arglist argListExpression)
393 public virtual object Visit (TypeOf typeOfExpression)
398 public virtual object Visit (SizeOf sizeOfExpression)
403 public virtual object Visit (CheckedExpr checkedExpression)
408 public virtual object Visit (UnCheckedExpr uncheckedExpression)
413 public virtual object Visit (ElementAccess elementAccessExpression)
418 public virtual object Visit (BaseThis baseAccessExpression)
423 public virtual object Visit (StackAlloc stackAllocExpression)
428 public virtual object Visit (SimpleAssign simpleAssign)
433 public virtual object Visit (CompoundAssign compoundAssign)
438 public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
443 public virtual object Visit (LambdaExpression lambdaExpression)
448 public virtual object Visit (Linq.QueryExpression queryExpression)
453 public virtual object Visit (Linq.SelectMany selectMany)
458 public virtual object Visit (Linq.Select select)
463 public virtual object Visit (Linq.GroupBy groupBy)
468 public virtual object Visit (Linq.Let let)
473 public virtual object Visit (Linq.Where where)
478 public virtual object Visit (Linq.Join join)
483 public virtual object Visit (Linq.GroupJoin groupJoin)
488 public virtual object Visit (Linq.OrderByAscending orderByAscending)
493 public virtual object Visit (Linq.OrderByDescending orderByDescending)
498 public virtual object Visit (Linq.ThenByAscending thenByAscending)
503 public virtual object Visit (Linq.ThenByDescending thenByDescending)