Reorder fields to improve object layout since the runtime can't do it for corlib...
[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 //
11
12 using System;
13
14 namespace Mono.CSharp
15 {
16         public abstract class StructuralVisitor
17         {
18                 public virtual void Visit (MemberCore member)
19                 {
20                         Console.WriteLine ("unknown member type: " + member.GetType ());
21                 }
22
23                 void VisitTypeContainer (TypeContainer tc)
24                 {
25                         //foreach (var member in tc.OrderedAllMembers) {
26                         //    member.Accept (this);
27                         //}
28                 }
29
30                 public virtual void Visit (ModuleContainer module)
31                 {
32                         VisitTypeContainer (module);
33                 }
34
35                 public virtual void Visit (Class c)
36                 {
37                         VisitTypeContainer (c);
38                 }
39
40                 public virtual void Visit (Struct s)
41                 {
42                         VisitTypeContainer (s);
43                 }
44
45
46                 public virtual void Visit (Interface i)
47                 {
48                         VisitTypeContainer (i);
49                 }
50
51                 public virtual void Visit (Delegate d)
52                 {
53                 }
54
55                 public virtual void Visit (Enum e)
56                 {
57                         VisitTypeContainer (e);
58                 }
59
60                 public virtual void Visit (FixedField f)
61                 {
62                 }
63
64                 public virtual void Visit (Const c)
65                 {
66                 }
67
68                 public virtual void Visit (Field f)
69                 {
70                 }
71
72                 public virtual void Visit (Operator o)
73                 {
74                 }
75
76                 public virtual void Visit (Indexer i)
77                 {
78                 }
79
80                 public virtual void Visit (Method m)
81                 {
82                 }
83
84                 public virtual void Visit (Property p)
85                 {
86                 }
87
88                 public virtual void Visit (Constructor c)
89                 {
90                 }
91
92                 public virtual void Visit (Destructor d)
93                 {
94                 }
95
96                 public virtual void Visit (EventField e)
97                 {
98                 }
99                 public virtual void Visit (EventProperty ep)
100                 {
101                 }
102
103                 public virtual void Visit (EnumMember em)
104                 {
105                 }
106
107                 public virtual object Visit (Statement stmt)
108                 {
109                         Console.WriteLine ("unknown statement:" + stmt);
110                         return null;
111                 }
112                 
113                 public virtual object Visit (BlockVariableDeclaration blockVariableDeclaration)
114                 {
115                         return null;
116                 }
117                 
118                 public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration)
119                 {
120                         return null;
121                 }
122                 
123                 public virtual object Visit (EmptyStatement emptyStatement)
124                 {
125                         return null;
126                 }
127
128                 public virtual object Visit (EmptyExpressionStatement emptyExpressionStatement)
129                 {
130                         return null;
131                 }
132
133                 public virtual object Visit (If ifStatement)
134                 {
135                         return null;
136                 }
137
138
139                 public virtual object Visit (Do doStatement)
140                 {
141                         return null;
142                 }
143
144
145                 public virtual object Visit (While whileStatement)
146                 {
147                         return null;
148                 }
149
150
151                 public virtual object Visit (For forStatement)
152                 {
153                         return null;
154                 }
155
156
157                 public virtual object Visit (StatementExpression statementExpression)
158                 {
159                         return null;
160                 }
161
162
163                 public virtual object Visit (Return returnStatement)
164                 {
165                         return null;
166                 }
167
168
169                 public virtual object Visit (Goto gotoStatement)
170                 {
171                         return null;
172                 }
173
174
175                 public virtual object Visit (LabeledStatement labeledStatement)
176                 {
177                         return null;
178                 }
179
180
181                 public virtual object Visit (GotoDefault gotoDefault)
182                 {
183                         return null;
184                 }
185
186
187                 public virtual object Visit (GotoCase gotoCase)
188                 {
189                         return null;
190                 }
191
192
193                 public virtual object Visit (Throw throwStatement)
194                 {
195                         return null;
196                 }
197
198
199                 public virtual object Visit (Break breakStatement)
200                 {
201                         return null;
202                 }
203
204
205                 public virtual object Visit (Continue continueStatement)
206                 {
207                         return null;
208                 }
209
210
211                 public virtual object Visit (Block blockStatement)
212                 {
213                         return null;
214                 }
215                 
216                 public virtual object Visit (Switch switchStatement)
217                 {
218                         return null;
219                 }
220                 
221                 public virtual object Visit (StatementList statementList)
222                 {
223                         return null;
224                 }
225                 
226                 public virtual object Visit (Lock lockStatement)
227                 {
228                         return null;
229                 }
230
231
232                 public virtual object Visit (Unchecked uncheckedStatement)
233                 {
234                         return null;
235                 }
236
237
238                 public virtual object Visit (Checked checkedStatement)
239                 {
240                         return null;
241                 }
242
243
244                 public virtual object Visit (Unsafe unsafeStatement)
245                 {
246                         return null;
247                 }
248
249
250                 public virtual object Visit (Fixed fixedStatement)
251                 {
252                         return null;
253                 }
254
255
256                 public virtual object Visit (TryFinally tryFinallyStatement)
257                 {
258                         return null;
259                 }
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 (LocalVariableReference localVariableReference)
299                 {
300                         return null;
301                 }
302
303                 public virtual object Visit (Constant constant)
304                 {
305                         return null;
306                 }
307
308                 public virtual object Visit (BooleanExpression booleanExpression)
309                 {
310                         return null;
311                 }
312
313                 public virtual object Visit (SimpleName simpleName)
314                 {
315                         return null;
316                 }
317
318                 public virtual object Visit (ParenthesizedExpression parenthesizedExpression)
319                 {
320                         return null;
321                 }
322
323                 public virtual object Visit (Unary unaryExpression)
324                 {
325                         return null;
326                 }
327
328                 public virtual object Visit (UnaryMutator unaryMutatorExpression)
329                 {
330                         return null;
331                 }
332
333                 // *expr
334                 public virtual object Visit (Indirection indirectionExpression)
335                 {
336                         return null;
337                 }
338
339                 public virtual object Visit (Is isExpression)
340                 {
341                         return null;
342                 }
343
344                 public virtual object Visit (As asExpression)
345                 {
346                         return null;
347                 }
348
349                 public virtual object Visit (Cast castExpression)
350                 {
351                         return null;
352                 }
353
354                 public virtual object Visit (ComposedCast composedCast)
355                 {
356                         return null;
357                 }
358
359                 public virtual object Visit (DefaultValueExpression defaultValueExpression)
360                 {
361                         return null;
362                 }
363                 
364                 public virtual object Visit (DefaultParameterValueExpression defaultParameterValueExpression)
365                 {
366                         return null;
367                 }
368                 
369                 public virtual object Visit (Binary binaryExpression)
370                 {
371                         return null;
372                 }
373
374                 public virtual object Visit (Nullable.NullCoalescingOperator nullCoalescingOperator)
375                 {
376                         return null;
377                 }
378
379
380                 public virtual object Visit (Conditional conditionalExpression)
381                 {
382                         return null;
383                 }
384
385                 public virtual object Visit (Invocation invocationExpression)
386                 {
387                         return null;
388                 }
389
390                 public virtual object Visit (New newExpression)
391                 {
392                         return null;
393                 }
394
395                 public virtual object Visit (NewInitialize newInitializeExpression)
396                 {
397                         return null;
398                 }
399
400                 public virtual object Visit (ArrayCreation arrayCreationExpression)
401                 {
402                         return null;
403                 }
404
405                 public virtual object Visit (This thisExpression)
406                 {
407                         return null;
408                 }
409
410                 public virtual object Visit (ArglistAccess argListAccessExpression)
411                 {
412                         return null;
413                 }
414
415                 public virtual object Visit (Arglist argListExpression)
416                 {
417                         return null;
418                 }
419
420                 public virtual object Visit (TypeOf typeOfExpression)
421                 {
422                         return null;
423                 }
424
425                 public virtual object Visit (SizeOf sizeOfExpression)
426                 {
427                         return null;
428                 }
429
430                 public virtual object Visit (CheckedExpr checkedExpression)
431                 {
432                         return null;
433                 }
434
435                 public virtual object Visit (UnCheckedExpr uncheckedExpression)
436                 {
437                         return null;
438                 }
439
440                 public virtual object Visit (ElementAccess elementAccessExpression)
441                 {
442                         return null;
443                 }
444
445                 public virtual object Visit (BaseThis baseAccessExpression)
446                 {
447                         return null;
448                 }
449
450                 public virtual object Visit (StackAlloc stackAllocExpression)
451                 {
452                         return null;
453                 }
454
455                 public virtual object Visit (SimpleAssign simpleAssign)
456                 {
457                         return null;
458                 }
459
460                 public virtual object Visit (CompoundAssign compoundAssign)
461                 {
462                         return null;
463                 }
464
465                 public virtual object Visit (TypeExpression typeExpression)
466                 {
467                         return null;
468                 }
469
470                 public virtual object Visit (AnonymousMethodExpression anonymousMethodExpression)
471                 {
472                         return null;
473                 }
474                 
475                 public virtual object Visit (LambdaExpression lambdaExpression)
476                 {
477                         return null;
478                 }
479                 
480                 public virtual object Visit (ConstInitializer constInitializer)
481                 {
482                         return null;
483                 }
484                 
485                 public virtual object Visit (ArrayInitializer arrayInitializer)
486                 {
487                         return null;
488                 }
489                 
490                 public virtual object Visit (Linq.QueryExpression queryExpression)
491                 {
492                         return null;
493                 }
494
495                 public virtual object Visit (Linq.SelectMany selectMany)
496                 {
497                         return null;
498                 }
499
500                 public virtual object Visit (Linq.Select select)
501                 {
502                         return null;
503                 }
504
505                 public virtual object Visit (Linq.GroupBy groupBy)
506                 {
507                         return null;
508                 }
509
510                 public virtual object Visit (Linq.Let let)
511                 {
512                         return null;
513                 }
514
515                 public virtual object Visit (Linq.Where where)
516                 {
517                         return null;
518                 }
519
520                 public virtual object Visit (Linq.Join join)
521                 {
522                         return null;
523                 }
524
525                 public virtual object Visit (Linq.GroupJoin groupJoin)
526                 {
527                         return null;
528                 }
529
530                 public virtual object Visit (Linq.OrderByAscending orderByAscending)
531                 {
532                         return null;
533                 }
534
535                 public virtual object Visit (Linq.OrderByDescending orderByDescending)
536                 {
537                         return null;
538                 }
539
540                 public virtual object Visit (Linq.ThenByAscending thenByAscending)
541                 {
542                         return null;
543                 }
544
545                 public virtual object Visit (Linq.ThenByDescending thenByDescending)
546                 {
547                         return null;
548                 }
549         }
550 }