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 (UsingTemporary usingTemporaryStatement)
255 public virtual object Visit (Foreach foreachStatement)
260 public virtual object Visit (Yield yieldStatement)
265 public virtual object Visit (YieldBreak yieldBreakStatement)
270 public virtual object Visit (Expression expression)
272 Console.WriteLine ("Visit unknown expression:" + expression);
276 public virtual object Visit (MemberAccess memberAccess)
281 public virtual object Visit (TypeLookupExpression typeLookupExpression)
286 public virtual object Visit (LocalVariableReference localVariableReference)
291 public virtual object Visit (Constant constant)
296 public virtual object Visit (BooleanExpression booleanExpression)
301 public virtual object Visit (SimpleName simpleName)
306 public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
311 public virtual object Visit (Unary unaryExpression)
316 public virtual object Visit (UnaryMutator unaryMutatorExpression)
322 public virtual object Visit (Indirection indirectionExpression)
327 public virtual object Visit (Is isExpression)
332 public virtual object Visit (As asExpression)
337 public virtual object Visit (Cast castExpression)
342 public virtual object Visit (ComposedCast composedCast)
347 public virtual object Visit (DefaultValueExpression defaultValueExpression)
352 public virtual object Visit (Binary binaryExpression)
357 public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
363 public virtual object Visit (Conditional conditionalExpression)
368 public virtual object Visit (Invocation invocationExpression)
373 public virtual object Visit (New newExpression)
378 public virtual object Visit (NewInitialize newInitializeExpression)
383 public virtual object Visit (ArrayCreation arrayCreationExpression)
388 public virtual object Visit (This thisExpression)
393 public virtual object Visit (ArglistAccess argListAccessExpression)
398 public virtual object Visit (Arglist argListExpression)
403 public virtual object Visit (TypeOf typeOfExpression)
408 public virtual object Visit (SizeOf sizeOfExpression)
413 public virtual object Visit (CheckedExpr checkedExpression)
418 public virtual object Visit (UnCheckedExpr uncheckedExpression)
423 public virtual object Visit (ElementAccess elementAccessExpression)
428 public virtual object Visit (BaseAccess baseAccessExpression)
433 public virtual object Visit (BaseIndexerAccess baseIndexerAccess)
438 public virtual object Visit (StackAlloc stackAllocExpression)
443 public virtual object Visit (SimpleAssign simpleAssign)
448 public virtual object Visit (CompoundAssign compoundAssign)
453 public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
458 public virtual object Visit (LambdaExpression lambdaExpression)
463 public virtual object Visit (Linq.QueryExpression queryExpression)
468 public virtual object Visit (Linq.SelectMany selectMany)
473 public virtual object Visit (Linq.Select select)
478 public virtual object Visit (Linq.GroupBy groupBy)
483 public virtual object Visit (Linq.Let let)
488 public virtual object Visit (Linq.Where where)
493 public virtual object Visit (Linq.Join join)
498 public virtual object Visit (Linq.GroupJoin groupJoin)
503 public virtual object Visit (Linq.OrderByAscending orderByAscending)
508 public virtual object Visit (Linq.OrderByDescending orderByDescending)
513 public virtual object Visit (Linq.ThenByAscending thenByAscending)
518 public virtual object Visit (Linq.ThenByDescending thenByDescending)