Merge pull request #214 from QuickJack/cd2c570c5543963d987f51080218715407c5d4b9
[mono.git] / mcs / mcs / visit.cs
1 //
2 // visit.cs: Visitors for parsed dom
3 //
4 // Authors: Mike Krüger (mkrueger@novell.com)
5 //                      Marek Safar (marek.safar@gmail.com)
6 //
7 // Dual licensed under the terms of the MIT X11 or GNU GPL
8 //
9 // Copyright (c) 2010 Novell, Inc (http://www.novell.com)
10 // Copyright 2011 Xamarin Inc
11 //
12
13 using System;
14
15 namespace Mono.CSharp
16 {
17         public abstract class StructuralVisitor
18         {
19                 public virtual void Visit (MemberCore member)
20                 {
21                         Console.WriteLine ("unknown member type: " + member.GetType ());
22                 }
23
24                 void VisitTypeContainer (TypeContainer tc)
25                 {
26                         //foreach (var member in tc.OrderedAllMembers) {
27                         //    member.Accept (this);
28                         //}
29                 }
30
31                 public virtual void Visit (ModuleContainer module)
32                 {
33                         VisitTypeContainer (module);
34                 }
35
36                 public virtual void Visit (Class c)
37                 {
38                         VisitTypeContainer (c);
39                 }
40
41                 public virtual void Visit (Struct s)
42                 {
43                         VisitTypeContainer (s);
44                 }
45
46
47                 public virtual void Visit (Interface i)
48                 {
49                         VisitTypeContainer (i);
50                 }
51
52                 public virtual void Visit (Delegate d)
53                 {
54                 }
55
56                 public virtual void Visit (Enum e)
57                 {
58                         VisitTypeContainer (e);
59                 }
60
61                 public virtual void Visit (FixedField f)
62                 {
63                 }
64
65                 public virtual void Visit (Const c)
66                 {
67                 }
68
69                 public virtual void Visit (Field f)
70                 {
71                 }
72
73                 public virtual void Visit (Operator o)
74                 {
75                 }
76
77                 public virtual void Visit (Indexer i)
78                 {
79                 }
80
81                 public virtual void Visit (Method m)
82                 {
83                 }
84
85                 public virtual void Visit (Property p)
86                 {
87                 }
88
89                 public virtual void Visit (Constructor c)
90                 {
91                 }
92
93                 public virtual void Visit (Destructor d)
94                 {
95                 }
96
97                 public virtual void Visit (EventField e)
98                 {
99                 }
100                 public virtual void Visit (EventProperty ep)
101                 {
102                 }
103
104                 public virtual void Visit (EnumMember em)
105                 {
106                 }
107
108                 public virtual object Visit (Statement stmt)
109                 {
110                         Console.WriteLine ("unknown statement:" + stmt);
111                         return null;
112                 }
113                 
114                 public virtual object Visit (BlockVariableDeclaration blockVariableDeclaration)
115                 {
116                         return null;
117                 }
118                 
119                 public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration)
120                 {
121                         return null;
122                 }
123                 
124                 public virtual object Visit (EmptyStatement emptyStatement)
125                 {
126                         return null;
127                 }
128
129                 public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement)
130                 {
131                         return null;
132                 }
133
134                 public virtual object Visit (EmptyExpression emptyExpression)
135                 {
136                         return null;
137                 }
138                 
139                 public virtual object Visit (ErrorExpression errorExpression)
140                 {
141                         return null;
142                 }
143
144                 public virtual object Visit (If ifStatement)
145                 {
146                         return null;
147                 }
148
149
150                 public virtual object Visit (Do doStatement)
151                 {
152                         return null;
153                 }
154
155                 public virtual object Visit (While whileStatement)
156                 {
157                         return null;
158                 }
159
160                 public virtual object Visit (For forStatement)
161                 {
162                         return null;
163                 }
164
165                 public virtual object Visit (StatementExpression statementExpression)
166                 {
167                         return null;
168                 }
169
170                 public virtual object Visit (StatementErrorExpression errorStatement)
171                 {
172                         return null;
173                 }
174
175                 public virtual object Visit (Return returnStatement)
176                 {
177                         return null;
178                 }
179
180                 public virtual object Visit (Goto gotoStatement)
181                 {
182                         return null;
183                 }
184
185                 public virtual object Visit (LabeledStatement labeledStatement)
186                 {
187                         return null;
188                 }
189
190                 public virtual object Visit (GotoDefault gotoDefault)
191                 {
192                         return null;
193                 }
194
195                 public virtual object Visit (GotoCase gotoCase)
196                 {
197                         return null;
198                 }
199
200                 public virtual object Visit (Throw throwStatement)
201                 {
202                         return null;
203                 }
204
205                 public virtual object Visit (Break breakStatement)
206                 {
207                         return null;
208                 }
209
210                 public virtual object Visit (Continue continueStatement)
211                 {
212                         return null;
213                 }
214
215                 public virtual object Visit (Block blockStatement)
216                 {
217                         return null;
218                 }
219                 
220                 public virtual object Visit (Switch switchStatement)
221                 {
222                         return null;
223                 }
224                 
225                 public virtual object Visit (StatementList statementList)
226                 {
227                         return null;
228                 }
229                 
230                 public virtual object Visit (Lock lockStatement)
231                 {
232                         return null;
233                 }
234
235                 public virtual object Visit (Unchecked uncheckedStatement)
236                 {
237                         return null;
238                 }
239
240                 public virtual object Visit (Checked checkedStatement)
241                 {
242                         return null;
243                 }
244
245                 public virtual object Visit (Unsafe unsafeStatement)
246                 {
247                         return null;
248                 }
249
250
251                 public virtual object Visit (Fixed fixedStatement)
252                 {
253                         return null;
254                 }
255
256
257                 public virtual object Visit (TryFinally tryFinallyStatement)
258                 {
259                         return null;
260                 }
261
262                 public virtual object Visit (TryCatch tryCatchStatement)
263                 {
264                         return null;
265                 }
266
267                 public virtual object Visit (Using usingStatement)
268                 {
269                         return null;
270                 }
271
272                 public virtual object Visit (Foreach foreachStatement)
273                 {
274                         return null;
275                 }
276
277                 public virtual object Visit (Yield yieldStatement)
278                 {
279                         return null;
280                 }
281
282                 public virtual object Visit (YieldBreak yieldBreakStatement)
283                 {
284                         return null;
285                 }
286
287                 public virtual object Visit (Expression expression)
288                 {
289                         Console.WriteLine ("Visit unknown expression:" + expression);
290                         return null;
291                 }
292
293                 public virtual object Visit (MemberAccess memberAccess)
294                 {
295                         return null;
296                 }
297
298                 public virtual object Visit (QualifiedAliasMember qualifiedAliasMember)
299                 {
300                         return null;
301                 }
302
303                 public virtual object Visit (LocalVariableReference localVariableReference)
304                 {
305                         return null;
306                 }
307
308                 public virtual object Visit (Constant constant)
309                 {
310                         return null;
311                 }
312
313                 public virtual object Visit (BooleanExpression booleanExpression)
314                 {
315                         return null;
316                 }
317
318                 public virtual object Visit (SimpleName simpleName)
319                 {
320                         return null;
321                 }
322
323                 public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
324                 {
325                         return null;
326                 }
327
328                 public virtual object Visit (Unary unaryExpression)
329                 {
330                         return null;
331                 }
332
333                 public virtual object Visit (UnaryMutator unaryMutatorExpression)
334                 {
335                         return null;
336                 }
337
338                 // *expr
339                 public virtual object Visit (Indirection indirectionExpression)
340                 {
341                         return null;
342                 }
343
344                 public virtual object Visit (Is isExpression)
345                 {
346                         return null;
347                 }
348
349                 public virtual object Visit (As asExpression)
350                 {
351                         return null;
352                 }
353
354                 public virtual object Visit (Cast castExpression)
355                 {
356                         return null;
357                 }
358
359                 public virtual object Visit (ComposedCast composedCast)
360                 {
361                         return null;
362                 }
363
364                 public virtual object Visit (DefaultValueExpression defaultValueExpression)
365                 {
366                         return null;
367                 }
368                 
369                 public virtual object Visit (DefaultParameterValueExpression defaultParameterValueExpression)
370                 {
371                         return null;
372                 }
373                 
374                 public virtual object Visit (Binary binaryExpression)
375                 {
376                         return null;
377                 }
378
379                 public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
380                 {
381                         return null;
382                 }
383
384                 public virtual object Visit (Conditional conditionalExpression)
385                 {
386                         return null;
387                 }
388
389                 public virtual object Visit (Invocation invocationExpression)
390                 {
391                         return null;
392                 }
393
394                 public virtual object Visit (New newExpression)
395                 {
396                         return null;
397                 }
398
399                 public virtual object Visit (NewAnonymousType newAnonymousType)
400                 {
401                         return null;
402                 }
403
404                 public virtual object Visit (NewInitialize newInitializeExpression)
405                 {
406                         return null;
407                 }
408
409                 public virtual object Visit (ArrayCreation arrayCreationExpression)
410                 {
411                         return null;
412                 }
413
414                 public virtual object Visit (This thisExpression)
415                 {
416                         return null;
417                 }
418
419                 public virtual object Visit (ArglistAccess argListAccessExpression)
420                 {
421                         return null;
422                 }
423
424                 public virtual object Visit (Arglist argListExpression)
425                 {
426                         return null;
427                 }
428
429                 public virtual object Visit (TypeOf typeOfExpression)
430                 {
431                         return null;
432                 }
433
434                 public virtual object Visit (SizeOf sizeOfExpression)
435                 {
436                         return null;
437                 }
438
439                 public virtual object Visit (CheckedExpr checkedExpression)
440                 {
441                         return null;
442                 }
443
444                 public virtual object Visit (UnCheckedExpr uncheckedExpression)
445                 {
446                         return null;
447                 }
448
449                 public virtual object Visit (ElementAccess elementAccessExpression)
450                 {
451                         return null;
452                 }
453
454                 public virtual object Visit (BaseThis baseAccessExpression)
455                 {
456                         return null;
457                 }
458
459                 public virtual object Visit (StackAlloc stackAllocExpression)
460                 {
461                         return null;
462                 }
463
464                 public virtual object Visit (SimpleAssign simpleAssign)
465                 {
466                         return null;
467                 }
468
469                 public virtual object Visit (CompoundAssign compoundAssign)
470                 {
471                         return null;
472                 }
473
474                 public virtual object Visit (TypeExpression typeExpression)
475                 {
476                         return null;
477                 }
478
479                 public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
480                 {
481                         return null;
482                 }
483                 
484                 public virtual object Visit (LambdaExpression lambdaExpression)
485                 {
486                         return null;
487                 }
488                 
489                 public virtual object Visit (ConstInitializer constInitializer)
490                 {
491                         return null;
492                 }
493                 
494                 public virtual object Visit (ArrayInitializer arrayInitializer)
495                 {
496                         return null;
497                 }
498                 
499                 public virtual object Visit (Linq.QueryExpression queryExpression)
500                 {
501                         return null;
502                 }
503
504                 public virtual object Visit (Linq.QueryStartClause queryExpression)
505                 {
506                         return null;
507                 }
508                 
509                 public virtual object Visit (Linq.SelectMany selectMany)
510                 {
511                         return null;
512                 }
513
514                 public virtual object Visit (Linq.Select select)
515                 {
516                         return null;
517                 }
518
519                 public virtual object Visit (Linq.GroupBy groupBy)
520                 {
521                         return null;
522                 }
523
524                 public virtual object Visit (Linq.Let let)
525                 {
526                         return null;
527                 }
528
529                 public virtual object Visit (Linq.Where where)
530                 {
531                         return null;
532                 }
533
534                 public virtual object Visit (Linq.Join join)
535                 {
536                         return null;
537                 }
538
539                 public virtual object Visit (Linq.GroupJoin groupJoin)
540                 {
541                         return null;
542                 }
543
544                 public virtual object Visit (Linq.OrderByAscending orderByAscending)
545                 {
546                         return null;
547                 }
548
549                 public virtual object Visit (Linq.OrderByDescending orderByDescending)
550                 {
551                         return null;
552                 }
553
554                 public virtual object Visit (Linq.ThenByAscending thenByAscending)
555                 {
556                         return null;
557                 }
558
559                 public virtual object Visit (Linq.ThenByDescending thenByDescending)
560                 {
561                         return null;
562                 }
563                 
564                 // undocumented expressions
565                 public virtual object Visit (RefValueExpr refValueExpr)
566                 {
567                         return null;
568                 }
569                 
570                 public virtual object Visit (RefTypeExpr refTypeExpr)
571                 {
572                         return null;
573                 }
574                 
575                 public virtual object Visit (MakeRefExpr makeRefExpr)
576                 {
577                         return null;
578                 }
579
580                 public virtual object Visit (Await awaitExpr)
581                 {
582                         return null;
583                 }
584         }
585 }