~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to external/nrefactory/ICSharpCode.NRefactory.VB/Ast/Generated.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
 
2
//// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
 
3
//using System;
 
4
//using System.Collections.Generic;
 
5
//
 
6
//namespace ICSharpCode.NRefactory.VB.Ast {
 
7
//      public class AddHandlerStatement : Statement {
 
8
//              
 
9
//              Expression eventExpression;
 
10
//              
 
11
//              Expression handlerExpression;
 
12
//              
 
13
//              public Expression EventExpression {
 
14
//                      get {
 
15
//                              return eventExpression;
 
16
//                      }
 
17
//                      set {
 
18
//                              eventExpression = value ?? Expression.Null;
 
19
//                              if (!eventExpression.IsNull) eventExpression.Parent = this;
 
20
//                      }
 
21
//              }
 
22
//              
 
23
//              public Expression HandlerExpression {
 
24
//                      get {
 
25
//                              return handlerExpression;
 
26
//                      }
 
27
//                      set {
 
28
//                              handlerExpression = value ?? Expression.Null;
 
29
//                              if (!handlerExpression.IsNull) handlerExpression.Parent = this;
 
30
//                      }
 
31
//              }
 
32
//              
 
33
//              public AddHandlerStatement(Expression eventExpression, Expression handlerExpression) {
 
34
//                      EventExpression = eventExpression;
 
35
//                      HandlerExpression = handlerExpression;
 
36
//              }
 
37
//              
 
38
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
39
//                      return visitor.VisitAddHandlerStatement(this, data);
 
40
//              }
 
41
//              
 
42
//              public override string ToString() {
 
43
//                      return string.Format("[AddHandlerStatement EventExpression={0} HandlerExpression={1}]", EventExpression, HandlerExpression);
 
44
//              }
 
45
//      }
 
46
//      
 
47
//      public class AddressOfExpression : Expression {
 
48
//              
 
49
//              Expression expression;
 
50
//              
 
51
//              public Expression Expression {
 
52
//                      get {
 
53
//                              return expression;
 
54
//                      }
 
55
//                      set {
 
56
//                              expression = value ?? Expression.Null;
 
57
//                              if (!expression.IsNull) expression.Parent = this;
 
58
//                      }
 
59
//              }
 
60
//              
 
61
//              public AddressOfExpression(Expression expression) {
 
62
//                      Expression = expression;
 
63
//              }
 
64
//              
 
65
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
66
//                      return visitor.VisitAddressOfExpression(this, data);
 
67
//              }
 
68
//              
 
69
//              public override string ToString() {
 
70
//                      return string.Format("[AddressOfExpression Expression={0}]", Expression);
 
71
//              }
 
72
//      }
 
73
//      
 
74
//      public class ArrayCreateExpression : Expression {
 
75
//              
 
76
//              TypeReference createType;
 
77
//              
 
78
//              List<Expression> arguments;
 
79
//              
 
80
//              CollectionInitializerExpression arrayInitializer;
 
81
//              
 
82
//              public TypeReference CreateType {
 
83
//                      get {
 
84
//                              return createType;
 
85
//                      }
 
86
//                      set {
 
87
//                              createType = value ?? TypeReference.Null;
 
88
//                              if (!createType.IsNull) createType.Parent = this;
 
89
//                      }
 
90
//              }
 
91
//              
 
92
//              public List<Expression> Arguments {
 
93
//                      get {
 
94
//                              return arguments;
 
95
//                      }
 
96
//                      set {
 
97
//                              arguments = value ?? new List<Expression>();
 
98
//                      }
 
99
//              }
 
100
//              
 
101
//              public CollectionInitializerExpression ArrayInitializer {
 
102
//                      get {
 
103
//                              return arrayInitializer;
 
104
//                      }
 
105
//                      set {
 
106
//                              arrayInitializer = value ?? CollectionInitializerExpression.Null;
 
107
//                              if (!arrayInitializer.IsNull) arrayInitializer.Parent = this;
 
108
//                      }
 
109
//              }
 
110
//              
 
111
//              public ArrayCreateExpression(TypeReference createType) {
 
112
//                      CreateType = createType;
 
113
//                      arguments = new List<Expression>();
 
114
//                      arrayInitializer = CollectionInitializerExpression.Null;
 
115
//              }
 
116
//              
 
117
//              public ArrayCreateExpression(TypeReference createType, List<Expression> arguments) {
 
118
//                      CreateType = createType;
 
119
//                      Arguments = arguments;
 
120
//                      arrayInitializer = CollectionInitializerExpression.Null;
 
121
//              }
 
122
//              
 
123
//              public ArrayCreateExpression(TypeReference createType, CollectionInitializerExpression arrayInitializer) {
 
124
//                      CreateType = createType;
 
125
//                      ArrayInitializer = arrayInitializer;
 
126
//                      arguments = new List<Expression>();
 
127
//              }
 
128
//              
 
129
//              public bool IsImplicitlyTyped {
 
130
//                      get {
 
131
//                              return createType.IsNull || string.IsNullOrEmpty(createType.Type);
 
132
//                      }
 
133
//              }
 
134
//              
 
135
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
136
//                      return visitor.VisitArrayCreateExpression(this, data);
 
137
//              }
 
138
//              
 
139
//              public override string ToString() {
 
140
//                      return string.Format("[ArrayCreateExpression CreateType={0} Arguments={1} ArrayInitializer={2}]", CreateType, GetCollectionString(Arguments), ArrayInitializer);
 
141
//              }
 
142
//      }
 
143
//      
 
144
//      public class AssignmentExpression : Expression {
 
145
//              
 
146
//              Expression left;
 
147
//              
 
148
//              AssignmentOperatorType op;
 
149
//              
 
150
//              Expression right;
 
151
//              
 
152
//              public Expression Left {
 
153
//                      get {
 
154
//                              return left;
 
155
//                      }
 
156
//                      set {
 
157
//                              left = value ?? Expression.Null;
 
158
//                              if (!left.IsNull) left.Parent = this;
 
159
//                      }
 
160
//              }
 
161
//              
 
162
//              public AssignmentOperatorType Op {
 
163
//                      get {
 
164
//                              return op;
 
165
//                      }
 
166
//                      set {
 
167
//                              op = value;
 
168
//                      }
 
169
//              }
 
170
//              
 
171
//              public Expression Right {
 
172
//                      get {
 
173
//                              return right;
 
174
//                      }
 
175
//                      set {
 
176
//                              right = value ?? Expression.Null;
 
177
//                              if (!right.IsNull) right.Parent = this;
 
178
//                      }
 
179
//              }
 
180
//              
 
181
//              public AssignmentExpression(Expression left, AssignmentOperatorType op, Expression right) {
 
182
//                      Left = left;
 
183
//                      Op = op;
 
184
//                      Right = right;
 
185
//              }
 
186
//              
 
187
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
188
//                      return visitor.VisitAssignmentExpression(this, data);
 
189
//              }
 
190
//              
 
191
//              public override string ToString() {
 
192
//                      return string.Format("[AssignmentExpression Left={0} Op={1} Right={2}]", Left, Op, Right);
 
193
//              }
 
194
//      }
 
195
//      
 
196
//      public abstract class AttributedNode : AbstractNode {
 
197
//              
 
198
//              List<AttributeSection> attributes;
 
199
//              
 
200
//              Modifiers modifier;
 
201
//              
 
202
//              public List<AttributeSection> Attributes {
 
203
//                      get {
 
204
//                              return attributes;
 
205
//                      }
 
206
//                      set {
 
207
//                              attributes = value ?? new List<AttributeSection>();
 
208
//                      }
 
209
//              }
 
210
//              
 
211
//              public Modifiers Modifier {
 
212
//                      get {
 
213
//                              return modifier;
 
214
//                      }
 
215
//                      set {
 
216
//                              modifier = value;
 
217
//                      }
 
218
//              }
 
219
//              
 
220
//              protected AttributedNode() {
 
221
//                      attributes = new List<AttributeSection>();
 
222
//              }
 
223
//              
 
224
//              protected AttributedNode(List<AttributeSection> attributes) {
 
225
//                      Attributes = attributes;
 
226
//              }
 
227
//              
 
228
//              protected AttributedNode(Modifiers modifier, List<AttributeSection> attributes) {
 
229
//                      Modifier = modifier;
 
230
//                      Attributes = attributes;
 
231
//              }
 
232
//      }
 
233
//      
 
234
//      public class AttributeSection : AbstractNode {
 
235
//              
 
236
//              string attributeTarget;
 
237
//              
 
238
//              List<ICSharpCode.NRefactory.VB.Ast.Attribute> attributes;
 
239
//              
 
240
//              public string AttributeTarget {
 
241
//                      get {
 
242
//                              return attributeTarget;
 
243
//                      }
 
244
//                      set {
 
245
//                              attributeTarget = value ?? "";
 
246
//                      }
 
247
//              }
 
248
//              
 
249
//              public List<ICSharpCode.NRefactory.VB.Ast.Attribute> Attributes {
 
250
//                      get {
 
251
//                              return attributes;
 
252
//                      }
 
253
//                      set {
 
254
//                              attributes = value ?? new List<Attribute>();
 
255
//                      }
 
256
//              }
 
257
//              
 
258
//              public AttributeSection() {
 
259
//                      attributeTarget = "";
 
260
//                      attributes = new List<Attribute>();
 
261
//              }
 
262
//              
 
263
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
264
//                      return visitor.VisitAttributeSection(this, data);
 
265
//              }
 
266
//              
 
267
//              public override string ToString() {
 
268
//                      return string.Format("[AttributeSection AttributeTarget={0} Attributes={1}]", AttributeTarget, GetCollectionString(Attributes));
 
269
//              }
 
270
//      }
 
271
//      
 
272
//      public class BaseReferenceExpression : Expression {
 
273
//              
 
274
//              public BaseReferenceExpression() {
 
275
//              }
 
276
//              
 
277
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
278
//                      return visitor.VisitBaseReferenceExpression(this, data);
 
279
//              }
 
280
//              
 
281
//              public override string ToString() {
 
282
//                      return "[BaseReferenceExpression]";
 
283
//              }
 
284
//      }
 
285
//      
 
286
//      public class BinaryOperatorExpression : Expression {
 
287
//              
 
288
//              Expression left;
 
289
//              
 
290
//              BinaryOperatorType op;
 
291
//              
 
292
//              Expression right;
 
293
//              
 
294
//              public Expression Left {
 
295
//                      get {
 
296
//                              return left;
 
297
//                      }
 
298
//                      set {
 
299
//                              left = value ?? Expression.Null;
 
300
//                              if (!left.IsNull) left.Parent = this;
 
301
//                      }
 
302
//              }
 
303
//              
 
304
//              public BinaryOperatorType Op {
 
305
//                      get {
 
306
//                              return op;
 
307
//                      }
 
308
//                      set {
 
309
//                              op = value;
 
310
//                      }
 
311
//              }
 
312
//              
 
313
//              public Expression Right {
 
314
//                      get {
 
315
//                              return right;
 
316
//                      }
 
317
//                      set {
 
318
//                              right = value ?? Expression.Null;
 
319
//                              if (!right.IsNull) right.Parent = this;
 
320
//                      }
 
321
//              }
 
322
//              
 
323
//              public BinaryOperatorExpression() {
 
324
//                      left = Expression.Null;
 
325
//                      right = Expression.Null;
 
326
//              }
 
327
//              
 
328
//              public BinaryOperatorExpression(Expression left, BinaryOperatorType op, Expression right) {
 
329
//                      Left = left;
 
330
//                      Op = op;
 
331
//                      Right = right;
 
332
//              }
 
333
//              
 
334
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
335
//                      return visitor.VisitBinaryOperatorExpression(this, data);
 
336
//              }
 
337
//              
 
338
//              public override string ToString() {
 
339
//                      return string.Format("[BinaryOperatorExpression Left={0} Op={1} Right={2}]", Left, Op, Right);
 
340
//              }
 
341
//      }
 
342
//      
 
343
//      public class CaseLabel : AbstractNode {
 
344
//              
 
345
//              Expression label;
 
346
//              
 
347
//              BinaryOperatorType binaryOperatorType;
 
348
//              
 
349
//              Expression toExpression;
 
350
//              
 
351
//              public Expression Label {
 
352
//                      get {
 
353
//                              return label;
 
354
//                      }
 
355
//                      set {
 
356
//                              label = value ?? Expression.Null;
 
357
//                              if (!label.IsNull) label.Parent = this;
 
358
//                      }
 
359
//              }
 
360
//              
 
361
//              public BinaryOperatorType BinaryOperatorType {
 
362
//                      get {
 
363
//                              return binaryOperatorType;
 
364
//                      }
 
365
//                      set {
 
366
//                              binaryOperatorType = value;
 
367
//                      }
 
368
//              }
 
369
//              
 
370
//              public Expression ToExpression {
 
371
//                      get {
 
372
//                              return toExpression;
 
373
//                      }
 
374
//                      set {
 
375
//                              toExpression = value ?? Expression.Null;
 
376
//                              if (!toExpression.IsNull) toExpression.Parent = this;
 
377
//                      }
 
378
//              }
 
379
//              
 
380
//              public CaseLabel() {
 
381
//                      label = Expression.Null;
 
382
//                      toExpression = Expression.Null;
 
383
//              }
 
384
//              
 
385
//              public CaseLabel(Expression label) {
 
386
//                      Label = label;
 
387
//                      toExpression = Expression.Null;
 
388
//              }
 
389
//              
 
390
//              public CaseLabel(Expression label, Expression toExpression) {
 
391
//                      Label = label;
 
392
//                      ToExpression = toExpression;
 
393
//              }
 
394
//              
 
395
//              public CaseLabel(BinaryOperatorType binaryOperatorType, Expression label) {
 
396
//                      BinaryOperatorType = binaryOperatorType;
 
397
//                      Label = label;
 
398
//                      toExpression = Expression.Null;
 
399
//              }
 
400
//              
 
401
//              public bool IsDefault {
 
402
//                      get {
 
403
//                              return label.IsNull;
 
404
//                      }
 
405
//              }
 
406
//              
 
407
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
408
//                      return visitor.VisitCaseLabel(this, data);
 
409
//              }
 
410
//              
 
411
//              public override string ToString() {
 
412
//                      return string.Format("[CaseLabel Label={0} BinaryOperatorType={1} ToExpression={2}]", Label, BinaryOperatorType, ToExpression);
 
413
//              }
 
414
//      }
 
415
//      
 
416
//      public class CastExpression : Expression {
 
417
//              
 
418
//              TypeReference castTo;
 
419
//              
 
420
//              Expression expression;
 
421
//              
 
422
//              CastType castType;
 
423
//              
 
424
//              public TypeReference CastTo {
 
425
//                      get {
 
426
//                              return castTo;
 
427
//                      }
 
428
//                      set {
 
429
//                              castTo = value ?? TypeReference.Null;
 
430
//                              if (!castTo.IsNull) castTo.Parent = this;
 
431
//                      }
 
432
//              }
 
433
//              
 
434
//              public Expression Expression {
 
435
//                      get {
 
436
//                              return expression;
 
437
//                      }
 
438
//                      set {
 
439
//                              expression = value ?? Expression.Null;
 
440
//                              if (!expression.IsNull) expression.Parent = this;
 
441
//                      }
 
442
//              }
 
443
//              
 
444
//              public CastType CastType {
 
445
//                      get {
 
446
//                              return castType;
 
447
//                      }
 
448
//                      set {
 
449
//                              castType = value;
 
450
//                      }
 
451
//              }
 
452
//              
 
453
//              public CastExpression(TypeReference castTo) {
 
454
//                      CastTo = castTo;
 
455
//                      expression = Expression.Null;
 
456
//              }
 
457
//              
 
458
//              public CastExpression(TypeReference castTo, Expression expression, CastType castType) {
 
459
//                      CastTo = castTo;
 
460
//                      Expression = expression;
 
461
//                      CastType = castType;
 
462
//              }
 
463
//              
 
464
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
465
//                      return visitor.VisitCastExpression(this, data);
 
466
//              }
 
467
//              
 
468
//              public override string ToString() {
 
469
//                      return string.Format("[CastExpression CastTo={0} Expression={1} CastType={2}]", CastTo, Expression, CastType);
 
470
//              }
 
471
//      }
 
472
//      
 
473
//      public class CatchClause : AbstractNode {
 
474
//              
 
475
//              TypeReference typeReference;
 
476
//              
 
477
//              string variableName;
 
478
//              
 
479
//              Statement statementBlock;
 
480
//              
 
481
//              Expression condition;
 
482
//              
 
483
//              public TypeReference TypeReference {
 
484
//                      get {
 
485
//                              return typeReference;
 
486
//                      }
 
487
//                      set {
 
488
//                              typeReference = value ?? TypeReference.Null;
 
489
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
490
//                      }
 
491
//              }
 
492
//              
 
493
//              public string VariableName {
 
494
//                      get {
 
495
//                              return variableName;
 
496
//                      }
 
497
//                      set {
 
498
//                              variableName = value ?? "";
 
499
//                      }
 
500
//              }
 
501
//              
 
502
//              public Statement StatementBlock {
 
503
//                      get {
 
504
//                              return statementBlock;
 
505
//                      }
 
506
//                      set {
 
507
//                              statementBlock = value ?? Statement.Null;
 
508
//                              if (!statementBlock.IsNull) statementBlock.Parent = this;
 
509
//                      }
 
510
//              }
 
511
//              
 
512
//              public Expression Condition {
 
513
//                      get {
 
514
//                              return condition;
 
515
//                      }
 
516
//                      set {
 
517
//                              condition = value ?? Expression.Null;
 
518
//                              if (!condition.IsNull) condition.Parent = this;
 
519
//                      }
 
520
//              }
 
521
//              
 
522
//              public CatchClause(TypeReference typeReference, string variableName, Statement statementBlock) {
 
523
//                      TypeReference = typeReference;
 
524
//                      VariableName = variableName;
 
525
//                      StatementBlock = statementBlock;
 
526
//                      condition = Expression.Null;
 
527
//              }
 
528
//              
 
529
//              public CatchClause(TypeReference typeReference, string variableName, Statement statementBlock, Expression condition) {
 
530
//                      TypeReference = typeReference;
 
531
//                      VariableName = variableName;
 
532
//                      StatementBlock = statementBlock;
 
533
//                      Condition = condition;
 
534
//              }
 
535
//              
 
536
//              public CatchClause(Statement statementBlock) {
 
537
//                      StatementBlock = statementBlock;
 
538
//                      typeReference = TypeReference.Null;
 
539
//                      variableName = "";
 
540
//                      condition = Expression.Null;
 
541
//              }
 
542
//              
 
543
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
544
//                      return visitor.VisitCatchClause(this, data);
 
545
//              }
 
546
//              
 
547
//              public override string ToString() {
 
548
//                      return string.Format("[CatchClause TypeReference={0} VariableName={1} StatementBlock={2} Condition={3}]" +
 
549
//                                           "", TypeReference, VariableName, StatementBlock, Condition);
 
550
//              }
 
551
//      }
 
552
//      
 
553
//      public class ClassReferenceExpression : Expression {
 
554
//              
 
555
//              public ClassReferenceExpression() {
 
556
//              }
 
557
//              
 
558
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
559
//                      return visitor.VisitClassReferenceExpression(this, data);
 
560
//              }
 
561
//              
 
562
//              public override string ToString() {
 
563
//                      return "[ClassReferenceExpression]";
 
564
//              }
 
565
//      }
 
566
//      
 
567
//      public class CollectionInitializerExpression : Expression {
 
568
//              
 
569
//              List<Expression> createExpressions;
 
570
//              
 
571
//              public List<Expression> CreateExpressions {
 
572
//                      get {
 
573
//                              return createExpressions;
 
574
//                      }
 
575
//                      set {
 
576
//                              createExpressions = value ?? new List<Expression>();
 
577
//                      }
 
578
//              }
 
579
//              
 
580
//              public CollectionInitializerExpression() {
 
581
//                      createExpressions = new List<Expression>();
 
582
//              }
 
583
//              
 
584
//              public CollectionInitializerExpression(List<Expression> createExpressions) {
 
585
//                      CreateExpressions = createExpressions;
 
586
//              }
 
587
//              
 
588
//              public new static CollectionInitializerExpression Null {
 
589
//                      get {
 
590
//                              return NullCollectionInitializerExpression.Instance;
 
591
//                      }
 
592
//              }
 
593
//              
 
594
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
595
//                      return visitor.VisitCollectionInitializerExpression(this, data);
 
596
//              }
 
597
//              
 
598
//              public override string ToString() {
 
599
//                      return string.Format("[CollectionInitializerExpression CreateExpressions={0}]", GetCollectionString(CreateExpressions));
 
600
//              }
 
601
//      }
 
602
//      
 
603
//      internal sealed class NullCollectionInitializerExpression : CollectionInitializerExpression {
 
604
//              
 
605
//              internal static NullCollectionInitializerExpression Instance = new NullCollectionInitializerExpression();
 
606
//              
 
607
//              public override bool IsNull {
 
608
//                      get {
 
609
//                              return true;
 
610
//                      }
 
611
//              }
 
612
//              
 
613
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
614
//                      return null;
 
615
//              }
 
616
//              
 
617
//              public override string ToString() {
 
618
//                      return "[NullCollectionInitializerExpression]";
 
619
//              }
 
620
//      }
 
621
//      
 
622
//      public class CollectionRangeVariable : AbstractNode, INullable {
 
623
//              
 
624
//              string identifier;
 
625
//              
 
626
//              Expression expression;
 
627
//              
 
628
//              TypeReference type;
 
629
//              
 
630
//              public string Identifier {
 
631
//                      get {
 
632
//                              return identifier;
 
633
//                      }
 
634
//                      set {
 
635
//                              identifier = value ?? "";
 
636
//                      }
 
637
//              }
 
638
//              
 
639
//              public Expression Expression {
 
640
//                      get {
 
641
//                              return expression;
 
642
//                      }
 
643
//                      set {
 
644
//                              expression = value ?? Expression.Null;
 
645
//                              if (!expression.IsNull) expression.Parent = this;
 
646
//                      }
 
647
//              }
 
648
//              
 
649
//              public TypeReference Type {
 
650
//                      get {
 
651
//                              return type;
 
652
//                      }
 
653
//                      set {
 
654
//                              type = value ?? TypeReference.Null;
 
655
//                              if (!type.IsNull) type.Parent = this;
 
656
//                      }
 
657
//              }
 
658
//              
 
659
//              public CollectionRangeVariable() {
 
660
//                      identifier = "";
 
661
//                      expression = Expression.Null;
 
662
//                      type = TypeReference.Null;
 
663
//              }
 
664
//              
 
665
//              public virtual bool IsNull {
 
666
//                      get {
 
667
//                              return false;
 
668
//                      }
 
669
//              }
 
670
//              
 
671
//              public static CollectionRangeVariable Null {
 
672
//                      get {
 
673
//                              return NullCollectionRangeVariable.Instance;
 
674
//                      }
 
675
//              }
 
676
//              
 
677
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
678
//                      return visitor.VisitCollectionRangeVariable(this, data);
 
679
//              }
 
680
//              
 
681
//              public override string ToString() {
 
682
//                      return string.Format("[CollectionRangeVariable Identifier={0} Expression={1} Type={2}]", Identifier, Expression, Type);
 
683
//              }
 
684
//      }
 
685
//      
 
686
//      internal sealed class NullCollectionRangeVariable : CollectionRangeVariable {
 
687
//              
 
688
//              internal static NullCollectionRangeVariable Instance = new NullCollectionRangeVariable();
 
689
//              
 
690
//              public override bool IsNull {
 
691
//                      get {
 
692
//                              return true;
 
693
//                      }
 
694
//              }
 
695
//              
 
696
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
697
//                      return null;
 
698
//              }
 
699
//              
 
700
//              public override string ToString() {
 
701
//                      return "[NullCollectionRangeVariable]";
 
702
//              }
 
703
//      }
 
704
//      
 
705
//      public class ConditionalExpression : Expression {
 
706
//              
 
707
//              Expression condition;
 
708
//              
 
709
//              Expression trueExpression;
 
710
//              
 
711
//              Expression falseExpression;
 
712
//              
 
713
//              public Expression Condition {
 
714
//                      get {
 
715
//                              return condition;
 
716
//                      }
 
717
//                      set {
 
718
//                              condition = value ?? Expression.Null;
 
719
//                              if (!condition.IsNull) condition.Parent = this;
 
720
//                      }
 
721
//              }
 
722
//              
 
723
//              public Expression TrueExpression {
 
724
//                      get {
 
725
//                              return trueExpression;
 
726
//                      }
 
727
//                      set {
 
728
//                              trueExpression = value ?? Expression.Null;
 
729
//                              if (!trueExpression.IsNull) trueExpression.Parent = this;
 
730
//                      }
 
731
//              }
 
732
//              
 
733
//              public Expression FalseExpression {
 
734
//                      get {
 
735
//                              return falseExpression;
 
736
//                      }
 
737
//                      set {
 
738
//                              falseExpression = value ?? Expression.Null;
 
739
//                              if (!falseExpression.IsNull) falseExpression.Parent = this;
 
740
//                      }
 
741
//              }
 
742
//              
 
743
//              public ConditionalExpression() {
 
744
//                      condition = Expression.Null;
 
745
//                      trueExpression = Expression.Null;
 
746
//                      falseExpression = Expression.Null;
 
747
//              }
 
748
//              
 
749
//              public ConditionalExpression(Expression condition, Expression trueExpression, Expression falseExpression) {
 
750
//                      Condition = condition;
 
751
//                      TrueExpression = trueExpression;
 
752
//                      FalseExpression = falseExpression;
 
753
//              }
 
754
//              
 
755
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
756
//                      return visitor.VisitConditionalExpression(this, data);
 
757
//              }
 
758
//              
 
759
//              public override string ToString() {
 
760
//                      return string.Format("[ConditionalExpression Condition={0} TrueExpression={1} FalseExpression={2}]", Condition, TrueExpression, FalseExpression);
 
761
//              }
 
762
//      }
 
763
//      
 
764
//      public class ConstructorDeclaration : ParametrizedNode {
 
765
//              
 
766
//              ConstructorInitializer constructorInitializer;
 
767
//              
 
768
//              BlockStatement body;
 
769
//              
 
770
//              public ConstructorInitializer ConstructorInitializer {
 
771
//                      get {
 
772
//                              return constructorInitializer;
 
773
//                      }
 
774
//                      set {
 
775
//                              constructorInitializer = value ?? ConstructorInitializer.Null;
 
776
//                              if (!constructorInitializer.IsNull) constructorInitializer.Parent = this;
 
777
//                      }
 
778
//              }
 
779
//              
 
780
//              public BlockStatement Body {
 
781
//                      get {
 
782
//                              return body;
 
783
//                      }
 
784
//                      set {
 
785
//                              body = value ?? BlockStatement.Null;
 
786
//                              if (!body.IsNull) body.Parent = this;
 
787
//                      }
 
788
//              }
 
789
//              
 
790
//              public ConstructorDeclaration(string name, Modifiers modifier, List<ParameterDeclarationExpression> parameters, List<AttributeSection> attributes) {
 
791
//                      Name = name;
 
792
//                      Modifier = modifier;
 
793
//                      Parameters = parameters;
 
794
//                      Attributes = attributes;
 
795
//                      constructorInitializer = ConstructorInitializer.Null;
 
796
//                      body = BlockStatement.Null;
 
797
//              }
 
798
//              
 
799
//              public ConstructorDeclaration(string name, Modifiers modifier, List<ParameterDeclarationExpression> parameters, ConstructorInitializer constructorInitializer, List<AttributeSection> attributes) {
 
800
//                      Name = name;
 
801
//                      Modifier = modifier;
 
802
//                      Parameters = parameters;
 
803
//                      ConstructorInitializer = constructorInitializer;
 
804
//                      Attributes = attributes;
 
805
//                      body = BlockStatement.Null;
 
806
//              }
 
807
//              
 
808
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
809
//                      return visitor.VisitConstructorDeclaration(this, data);
 
810
//              }
 
811
//              
 
812
//              public override string ToString() {
 
813
//                      return string.Format("[ConstructorDeclaration ConstructorInitializer={0} Body={1} Name={2} Parameters={" +
 
814
//                                           "3} Attributes={4} Modifier={5}]", ConstructorInitializer, Body, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
815
//              }
 
816
//      }
 
817
//      
 
818
//      public class ConstructorInitializer : AbstractNode, INullable {
 
819
//              
 
820
//              ConstructorInitializerType constructorInitializerType;
 
821
//              
 
822
//              List<Expression> arguments;
 
823
//              
 
824
//              public ConstructorInitializerType ConstructorInitializerType {
 
825
//                      get {
 
826
//                              return constructorInitializerType;
 
827
//                      }
 
828
//                      set {
 
829
//                              constructorInitializerType = value;
 
830
//                      }
 
831
//              }
 
832
//              
 
833
//              public List<Expression> Arguments {
 
834
//                      get {
 
835
//                              return arguments;
 
836
//                      }
 
837
//                      set {
 
838
//                              arguments = value ?? new List<Expression>();
 
839
//                      }
 
840
//              }
 
841
//              
 
842
//              public ConstructorInitializer() {
 
843
//                      arguments = new List<Expression>();
 
844
//              }
 
845
//              
 
846
//              public virtual bool IsNull {
 
847
//                      get {
 
848
//                              return false;
 
849
//                      }
 
850
//              }
 
851
//              
 
852
//              public static ConstructorInitializer Null {
 
853
//                      get {
 
854
//                              return NullConstructorInitializer.Instance;
 
855
//                      }
 
856
//              }
 
857
//              
 
858
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
859
//                      return visitor.VisitConstructorInitializer(this, data);
 
860
//              }
 
861
//              
 
862
//              public override string ToString() {
 
863
//                      return string.Format("[ConstructorInitializer ConstructorInitializerType={0} Arguments={1}]", ConstructorInitializerType, GetCollectionString(Arguments));
 
864
//              }
 
865
//      }
 
866
//      
 
867
//      internal sealed class NullConstructorInitializer : ConstructorInitializer {
 
868
//              
 
869
//              internal static NullConstructorInitializer Instance = new NullConstructorInitializer();
 
870
//              
 
871
//              public override bool IsNull {
 
872
//                      get {
 
873
//                              return true;
 
874
//                      }
 
875
//              }
 
876
//              
 
877
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
878
//                      return null;
 
879
//              }
 
880
//              
 
881
//              public override string ToString() {
 
882
//                      return "[NullConstructorInitializer]";
 
883
//              }
 
884
//      }
 
885
//      
 
886
//      public class ContinueStatement : Statement {
 
887
//              
 
888
//              ContinueType continueType;
 
889
//              
 
890
//              public ContinueType ContinueType {
 
891
//                      get {
 
892
//                              return continueType;
 
893
//                      }
 
894
//                      set {
 
895
//                              continueType = value;
 
896
//                      }
 
897
//              }
 
898
//              
 
899
//              public ContinueStatement() {
 
900
//              }
 
901
//              
 
902
//              public ContinueStatement(ContinueType continueType) {
 
903
//                      ContinueType = continueType;
 
904
//              }
 
905
//              
 
906
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
907
//                      return visitor.VisitContinueStatement(this, data);
 
908
//              }
 
909
//              
 
910
//              public override string ToString() {
 
911
//                      return string.Format("[ContinueStatement ContinueType={0}]", ContinueType);
 
912
//              }
 
913
//      }
 
914
//      
 
915
//      public class DeclareDeclaration : ParametrizedNode {
 
916
//              
 
917
//              string alias;
 
918
//              
 
919
//              string library;
 
920
//              
 
921
//              CharsetModifier charset;
 
922
//              
 
923
//              TypeReference typeReference;
 
924
//              
 
925
//              public string Alias {
 
926
//                      get {
 
927
//                              return alias;
 
928
//                      }
 
929
//                      set {
 
930
//                              alias = value ?? "";
 
931
//                      }
 
932
//              }
 
933
//              
 
934
//              public string Library {
 
935
//                      get {
 
936
//                              return library;
 
937
//                      }
 
938
//                      set {
 
939
//                              library = value ?? "";
 
940
//                      }
 
941
//              }
 
942
//              
 
943
//              public CharsetModifier Charset {
 
944
//                      get {
 
945
//                              return charset;
 
946
//                      }
 
947
//                      set {
 
948
//                              charset = value;
 
949
//                      }
 
950
//              }
 
951
//              
 
952
//              public TypeReference TypeReference {
 
953
//                      get {
 
954
//                              return typeReference;
 
955
//                      }
 
956
//                      set {
 
957
//                              typeReference = value ?? TypeReference.Null;
 
958
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
959
//                      }
 
960
//              }
 
961
//              
 
962
//              public DeclareDeclaration(string name, Modifiers modifier, TypeReference typeReference, List<ParameterDeclarationExpression> parameters, List<AttributeSection> attributes, string library, string alias, CharsetModifier charset) {
 
963
//                      Name = name;
 
964
//                      Modifier = modifier;
 
965
//                      TypeReference = typeReference;
 
966
//                      Parameters = parameters;
 
967
//                      Attributes = attributes;
 
968
//                      Library = library;
 
969
//                      Alias = alias;
 
970
//                      Charset = charset;
 
971
//              }
 
972
//              
 
973
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
974
//                      return visitor.VisitDeclareDeclaration(this, data);
 
975
//              }
 
976
//              
 
977
//              public override string ToString() {
 
978
//                      return string.Format("[DeclareDeclaration Alias={0} Library={1} Charset={2} TypeReference={3} Name={4} " +
 
979
//                                           "Parameters={5} Attributes={6} Modifier={7}]", Alias, Library, Charset, TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
980
//              }
 
981
//      }
 
982
//      
 
983
//      public class DefaultValueExpression : Expression {
 
984
//              
 
985
//              TypeReference typeReference;
 
986
//              
 
987
//              public TypeReference TypeReference {
 
988
//                      get {
 
989
//                              return typeReference;
 
990
//                      }
 
991
//                      set {
 
992
//                              typeReference = value ?? TypeReference.Null;
 
993
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
994
//                      }
 
995
//              }
 
996
//              
 
997
//              public DefaultValueExpression(TypeReference typeReference) {
 
998
//                      TypeReference = typeReference;
 
999
//              }
 
1000
//              
 
1001
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1002
//                      return visitor.VisitDefaultValueExpression(this, data);
 
1003
//              }
 
1004
//              
 
1005
//              public override string ToString() {
 
1006
//                      return string.Format("[DefaultValueExpression TypeReference={0}]", TypeReference);
 
1007
//              }
 
1008
//      }
 
1009
//      
 
1010
//      public class DelegateDeclaration : AttributedNode {
 
1011
//              
 
1012
//              string name;
 
1013
//              
 
1014
//              TypeReference returnType;
 
1015
//              
 
1016
//              List<ParameterDeclarationExpression> parameters;
 
1017
//              
 
1018
//              List<TemplateDefinition> templates;
 
1019
//              
 
1020
//              public string Name {
 
1021
//                      get {
 
1022
//                              return name;
 
1023
//                      }
 
1024
//                      set {
 
1025
//                              name = string.IsNullOrEmpty(value) ? "?" : value;
 
1026
//                      }
 
1027
//              }
 
1028
//              
 
1029
//              public TypeReference ReturnType {
 
1030
//                      get {
 
1031
//                              return returnType;
 
1032
//                      }
 
1033
//                      set {
 
1034
//                              returnType = value ?? TypeReference.Null;
 
1035
//                              if (!returnType.IsNull) returnType.Parent = this;
 
1036
//                      }
 
1037
//              }
 
1038
//              
 
1039
//              public List<ParameterDeclarationExpression> Parameters {
 
1040
//                      get {
 
1041
//                              return parameters;
 
1042
//                      }
 
1043
//                      set {
 
1044
//                              parameters = value ?? new List<ParameterDeclarationExpression>();
 
1045
//                      }
 
1046
//              }
 
1047
//              
 
1048
//              public List<TemplateDefinition> Templates {
 
1049
//                      get {
 
1050
//                              return templates;
 
1051
//                      }
 
1052
//                      set {
 
1053
//                              templates = value ?? new List<TemplateDefinition>();
 
1054
//                      }
 
1055
//              }
 
1056
//              
 
1057
//              public DelegateDeclaration(Modifiers modifier, List<AttributeSection> attributes) {
 
1058
//                      Modifier = modifier;
 
1059
//                      Attributes = attributes;
 
1060
//                      name = "?";
 
1061
//                      returnType = TypeReference.Null;
 
1062
//                      parameters = new List<ParameterDeclarationExpression>();
 
1063
//                      templates = new List<TemplateDefinition>();
 
1064
//              }
 
1065
//              
 
1066
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1067
//                      return visitor.VisitDelegateDeclaration(this, data);
 
1068
//              }
 
1069
//              
 
1070
//              public override string ToString() {
 
1071
//                      return string.Format("[DelegateDeclaration Name={0} ReturnType={1} Parameters={2} Templates={3} Attribu" +
 
1072
//                                           "tes={4} Modifier={5}]", Name, ReturnType, GetCollectionString(Parameters), GetCollectionString(Templates), GetCollectionString(Attributes), Modifier);
 
1073
//              }
 
1074
//      }
 
1075
//      
 
1076
//      public class DirectionExpression : Expression {
 
1077
//              
 
1078
//              FieldDirection fieldDirection;
 
1079
//              
 
1080
//              Expression expression;
 
1081
//              
 
1082
//              public FieldDirection FieldDirection {
 
1083
//                      get {
 
1084
//                              return fieldDirection;
 
1085
//                      }
 
1086
//                      set {
 
1087
//                              fieldDirection = value;
 
1088
//                      }
 
1089
//              }
 
1090
//              
 
1091
//              public Expression Expression {
 
1092
//                      get {
 
1093
//                              return expression;
 
1094
//                      }
 
1095
//                      set {
 
1096
//                              expression = value ?? Expression.Null;
 
1097
//                              if (!expression.IsNull) expression.Parent = this;
 
1098
//                      }
 
1099
//              }
 
1100
//              
 
1101
//              public DirectionExpression(FieldDirection fieldDirection, Expression expression) {
 
1102
//                      FieldDirection = fieldDirection;
 
1103
//                      Expression = expression;
 
1104
//              }
 
1105
//              
 
1106
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1107
//                      return visitor.VisitDirectionExpression(this, data);
 
1108
//              }
 
1109
//              
 
1110
//              public override string ToString() {
 
1111
//                      return string.Format("[DirectionExpression FieldDirection={0} Expression={1}]", FieldDirection, Expression);
 
1112
//              }
 
1113
//      }
 
1114
//      
 
1115
//      public class DoLoopStatement : StatementWithEmbeddedStatement {
 
1116
//              
 
1117
//              Expression condition;
 
1118
//              
 
1119
//              ConditionType conditionType;
 
1120
//              
 
1121
//              ConditionPosition conditionPosition;
 
1122
//              
 
1123
//              public Expression Condition {
 
1124
//                      get {
 
1125
//                              return condition;
 
1126
//                      }
 
1127
//                      set {
 
1128
//                              condition = value ?? Expression.Null;
 
1129
//                              if (!condition.IsNull) condition.Parent = this;
 
1130
//                      }
 
1131
//              }
 
1132
//              
 
1133
//              public ConditionType ConditionType {
 
1134
//                      get {
 
1135
//                              return conditionType;
 
1136
//                      }
 
1137
//                      set {
 
1138
//                              conditionType = value;
 
1139
//                      }
 
1140
//              }
 
1141
//              
 
1142
//              public ConditionPosition ConditionPosition {
 
1143
//                      get {
 
1144
//                              return conditionPosition;
 
1145
//                      }
 
1146
//                      set {
 
1147
//                              conditionPosition = value;
 
1148
//                      }
 
1149
//              }
 
1150
//              
 
1151
//              public DoLoopStatement(Expression condition, Statement embeddedStatement, ConditionType conditionType, ConditionPosition conditionPosition) {
 
1152
//                      Condition = condition;
 
1153
//                      EmbeddedStatement = embeddedStatement;
 
1154
//                      ConditionType = conditionType;
 
1155
//                      ConditionPosition = conditionPosition;
 
1156
//              }
 
1157
//              
 
1158
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1159
//                      return visitor.VisitDoLoopStatement(this, data);
 
1160
//              }
 
1161
//              
 
1162
//              public override string ToString() {
 
1163
//                      return string.Format("[DoLoopStatement Condition={0} ConditionType={1} ConditionPosition={2} EmbeddedSt" +
 
1164
//                                           "atement={3}]", Condition, ConditionType, ConditionPosition, EmbeddedStatement);
 
1165
//              }
 
1166
//      }
 
1167
//      
 
1168
//      public class ElseIfSection : StatementWithEmbeddedStatement {
 
1169
//              
 
1170
//              Expression condition;
 
1171
//              
 
1172
//              public Expression Condition {
 
1173
//                      get {
 
1174
//                              return condition;
 
1175
//                      }
 
1176
//                      set {
 
1177
//                              condition = value ?? Expression.Null;
 
1178
//                              if (!condition.IsNull) condition.Parent = this;
 
1179
//                      }
 
1180
//              }
 
1181
//              
 
1182
//              public ElseIfSection(Expression condition, Statement embeddedStatement) {
 
1183
//                      Condition = condition;
 
1184
//                      EmbeddedStatement = embeddedStatement;
 
1185
//              }
 
1186
//              
 
1187
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1188
//                      return visitor.VisitElseIfSection(this, data);
 
1189
//              }
 
1190
//              
 
1191
//              public override string ToString() {
 
1192
//                      return string.Format("[ElseIfSection Condition={0} EmbeddedStatement={1}]", Condition, EmbeddedStatement);
 
1193
//              }
 
1194
//      }
 
1195
//      
 
1196
//      public class EndStatement : Statement {
 
1197
//              
 
1198
//              public EndStatement() {
 
1199
//              }
 
1200
//              
 
1201
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1202
//                      return visitor.VisitEndStatement(this, data);
 
1203
//              }
 
1204
//              
 
1205
//              public override string ToString() {
 
1206
//                      return "[EndStatement]";
 
1207
//              }
 
1208
//      }
 
1209
//      
 
1210
//      public class EraseStatement : Statement {
 
1211
//              
 
1212
//              List<Expression> expressions;
 
1213
//              
 
1214
//              public List<Expression> Expressions {
 
1215
//                      get {
 
1216
//                              return expressions;
 
1217
//                      }
 
1218
//                      set {
 
1219
//                              expressions = value ?? new List<Expression>();
 
1220
//                      }
 
1221
//              }
 
1222
//              
 
1223
//              public EraseStatement() {
 
1224
//                      expressions = new List<Expression>();
 
1225
//              }
 
1226
//              
 
1227
//              public EraseStatement(List<Expression> expressions) {
 
1228
//                      Expressions = expressions;
 
1229
//              }
 
1230
//              
 
1231
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1232
//                      return visitor.VisitEraseStatement(this, data);
 
1233
//              }
 
1234
//              
 
1235
//              public override string ToString() {
 
1236
//                      return string.Format("[EraseStatement Expressions={0}]", GetCollectionString(Expressions));
 
1237
//              }
 
1238
//      }
 
1239
//      
 
1240
//      public class ErrorStatement : Statement {
 
1241
//              
 
1242
//              Expression expression;
 
1243
//              
 
1244
//              public Expression Expression {
 
1245
//                      get {
 
1246
//                              return expression;
 
1247
//                      }
 
1248
//                      set {
 
1249
//                              expression = value ?? Expression.Null;
 
1250
//                              if (!expression.IsNull) expression.Parent = this;
 
1251
//                      }
 
1252
//              }
 
1253
//              
 
1254
//              public ErrorStatement(Expression expression) {
 
1255
//                      Expression = expression;
 
1256
//              }
 
1257
//              
 
1258
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1259
//                      return visitor.VisitErrorStatement(this, data);
 
1260
//              }
 
1261
//              
 
1262
//              public override string ToString() {
 
1263
//                      return string.Format("[ErrorStatement Expression={0}]", Expression);
 
1264
//              }
 
1265
//      }
 
1266
//      
 
1267
//      public class EventAddRegion : EventAddRemoveRegion {
 
1268
//              
 
1269
//              public EventAddRegion(List<AttributeSection> attributes) :
 
1270
//                      base(attributes) {
 
1271
//              }
 
1272
//              
 
1273
//              public static EventAddRegion Null {
 
1274
//                      get {
 
1275
//                              return NullEventAddRegion.Instance;
 
1276
//                      }
 
1277
//              }
 
1278
//              
 
1279
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1280
//                      return visitor.VisitEventAddRegion(this, data);
 
1281
//              }
 
1282
//              
 
1283
//              public override string ToString() {
 
1284
//                      return string.Format("[EventAddRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
1285
//              }
 
1286
//      }
 
1287
//      
 
1288
//      internal sealed class NullEventAddRegion : EventAddRegion {
 
1289
//              
 
1290
//              private NullEventAddRegion() :
 
1291
//                      base(null) {
 
1292
//              }
 
1293
//              
 
1294
//              internal static NullEventAddRegion Instance = new NullEventAddRegion();
 
1295
//              
 
1296
//              public override bool IsNull {
 
1297
//                      get {
 
1298
//                              return true;
 
1299
//                      }
 
1300
//              }
 
1301
//              
 
1302
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1303
//                      return null;
 
1304
//              }
 
1305
//              
 
1306
//              public override string ToString() {
 
1307
//                      return "[NullEventAddRegion]";
 
1308
//              }
 
1309
//      }
 
1310
//      
 
1311
//      public abstract class EventAddRemoveRegion : AttributedNode, INullable {
 
1312
//              
 
1313
//              BlockStatement block;
 
1314
//              
 
1315
//              List<ParameterDeclarationExpression> parameters;
 
1316
//              
 
1317
//              public BlockStatement Block {
 
1318
//                      get {
 
1319
//                              return block;
 
1320
//                      }
 
1321
//                      set {
 
1322
//                              block = value ?? BlockStatement.Null;
 
1323
//                              if (!block.IsNull) block.Parent = this;
 
1324
//                      }
 
1325
//              }
 
1326
//              
 
1327
//              public List<ParameterDeclarationExpression> Parameters {
 
1328
//                      get {
 
1329
//                              return parameters;
 
1330
//                      }
 
1331
//                      set {
 
1332
//                              parameters = value ?? new List<ParameterDeclarationExpression>();
 
1333
//                      }
 
1334
//              }
 
1335
//              
 
1336
//              protected EventAddRemoveRegion(List<AttributeSection> attributes) {
 
1337
//                      Attributes = attributes;
 
1338
//                      block = BlockStatement.Null;
 
1339
//                      parameters = new List<ParameterDeclarationExpression>();
 
1340
//              }
 
1341
//              
 
1342
//              public virtual bool IsNull {
 
1343
//                      get {
 
1344
//                              return false;
 
1345
//                      }
 
1346
//              }
 
1347
//      }
 
1348
//      
 
1349
//      public class EventDeclaration : MemberNode {
 
1350
//              
 
1351
//              EventAddRegion addRegion;
 
1352
//              
 
1353
//              EventRemoveRegion removeRegion;
 
1354
//              
 
1355
//              EventRaiseRegion raiseRegion;
 
1356
//              
 
1357
//              Location bodyStart;
 
1358
//              
 
1359
//              Location bodyEnd;
 
1360
//              
 
1361
//              Expression initializer;
 
1362
//              
 
1363
//              public EventAddRegion AddRegion {
 
1364
//                      get {
 
1365
//                              return addRegion;
 
1366
//                      }
 
1367
//                      set {
 
1368
//                              addRegion = value ?? EventAddRegion.Null;
 
1369
//                              if (!addRegion.IsNull) addRegion.Parent = this;
 
1370
//                      }
 
1371
//              }
 
1372
//              
 
1373
//              public EventRemoveRegion RemoveRegion {
 
1374
//                      get {
 
1375
//                              return removeRegion;
 
1376
//                      }
 
1377
//                      set {
 
1378
//                              removeRegion = value ?? EventRemoveRegion.Null;
 
1379
//                              if (!removeRegion.IsNull) removeRegion.Parent = this;
 
1380
//                      }
 
1381
//              }
 
1382
//              
 
1383
//              public EventRaiseRegion RaiseRegion {
 
1384
//                      get {
 
1385
//                              return raiseRegion;
 
1386
//                      }
 
1387
//                      set {
 
1388
//                              raiseRegion = value ?? EventRaiseRegion.Null;
 
1389
//                              if (!raiseRegion.IsNull) raiseRegion.Parent = this;
 
1390
//                      }
 
1391
//              }
 
1392
//              
 
1393
//              public Location BodyStart {
 
1394
//                      get {
 
1395
//                              return bodyStart;
 
1396
//                      }
 
1397
//                      set {
 
1398
//                              bodyStart = value;
 
1399
//                      }
 
1400
//              }
 
1401
//              
 
1402
//              public Location BodyEnd {
 
1403
//                      get {
 
1404
//                              return bodyEnd;
 
1405
//                      }
 
1406
//                      set {
 
1407
//                              bodyEnd = value;
 
1408
//                      }
 
1409
//              }
 
1410
//              
 
1411
//              public Expression Initializer {
 
1412
//                      get {
 
1413
//                              return initializer;
 
1414
//                      }
 
1415
//                      set {
 
1416
//                              initializer = value ?? Expression.Null;
 
1417
//                              if (!initializer.IsNull) initializer.Parent = this;
 
1418
//                      }
 
1419
//              }
 
1420
//              
 
1421
//              public EventDeclaration() {
 
1422
//                      addRegion = EventAddRegion.Null;
 
1423
//                      removeRegion = EventRemoveRegion.Null;
 
1424
//                      raiseRegion = EventRaiseRegion.Null;
 
1425
//                      bodyStart = Location.Empty;
 
1426
//                      bodyEnd = Location.Empty;
 
1427
//                      initializer = Expression.Null;
 
1428
//              }
 
1429
//              
 
1430
//              public bool HasAddRegion {
 
1431
//                      get {
 
1432
//                              return !addRegion.IsNull;
 
1433
//                      }
 
1434
//              }
 
1435
//              
 
1436
//              public bool HasRemoveRegion {
 
1437
//                      get {
 
1438
//                              return !removeRegion.IsNull;
 
1439
//                      }
 
1440
//              }
 
1441
//              
 
1442
//              public bool HasRaiseRegion {
 
1443
//                      get {
 
1444
//                              return !raiseRegion.IsNull;
 
1445
//                      }
 
1446
//              }
 
1447
//              
 
1448
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1449
//                      return visitor.VisitEventDeclaration(this, data);
 
1450
//              }
 
1451
//              
 
1452
//              public override string ToString() {
 
1453
//                      return string.Format("[EventDeclaration AddRegion={0} RemoveRegion={1} RaiseRegion={2} BodyStart={3} Bo" +
 
1454
//                                           "dyEnd={4} Initializer={5} InterfaceImplementations={6} TypeReference={7} Name={8" +
 
1455
//                                           "} Parameters={9} Attributes={10} Modifier={11}]", AddRegion, RemoveRegion, RaiseRegion, BodyStart, BodyEnd, Initializer, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
1456
//              }
 
1457
//      }
 
1458
//      
 
1459
//      public class EventRaiseRegion : EventAddRemoveRegion {
 
1460
//              
 
1461
//              public EventRaiseRegion(List<AttributeSection> attributes) :
 
1462
//                      base(attributes) {
 
1463
//              }
 
1464
//              
 
1465
//              public static EventRaiseRegion Null {
 
1466
//                      get {
 
1467
//                              return NullEventRaiseRegion.Instance;
 
1468
//                      }
 
1469
//              }
 
1470
//              
 
1471
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1472
//                      return visitor.VisitEventRaiseRegion(this, data);
 
1473
//              }
 
1474
//              
 
1475
//              public override string ToString() {
 
1476
//                      return string.Format("[EventRaiseRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
1477
//              }
 
1478
//      }
 
1479
//      
 
1480
//      internal sealed class NullEventRaiseRegion : EventRaiseRegion {
 
1481
//              
 
1482
//              private NullEventRaiseRegion() :
 
1483
//                      base(null) {
 
1484
//              }
 
1485
//              
 
1486
//              internal static NullEventRaiseRegion Instance = new NullEventRaiseRegion();
 
1487
//              
 
1488
//              public override bool IsNull {
 
1489
//                      get {
 
1490
//                              return true;
 
1491
//                      }
 
1492
//              }
 
1493
//              
 
1494
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1495
//                      return null;
 
1496
//              }
 
1497
//              
 
1498
//              public override string ToString() {
 
1499
//                      return "[NullEventRaiseRegion]";
 
1500
//              }
 
1501
//      }
 
1502
//      
 
1503
//      public class EventRemoveRegion : EventAddRemoveRegion {
 
1504
//              
 
1505
//              public EventRemoveRegion(List<AttributeSection> attributes) :
 
1506
//                      base(attributes) {
 
1507
//              }
 
1508
//              
 
1509
//              public static EventRemoveRegion Null {
 
1510
//                      get {
 
1511
//                              return NullEventRemoveRegion.Instance;
 
1512
//                      }
 
1513
//              }
 
1514
//              
 
1515
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1516
//                      return visitor.VisitEventRemoveRegion(this, data);
 
1517
//              }
 
1518
//              
 
1519
//              public override string ToString() {
 
1520
//                      return string.Format("[EventRemoveRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
1521
//              }
 
1522
//      }
 
1523
//      
 
1524
//      internal sealed class NullEventRemoveRegion : EventRemoveRegion {
 
1525
//              
 
1526
//              private NullEventRemoveRegion() :
 
1527
//                      base(null) {
 
1528
//              }
 
1529
//              
 
1530
//              internal static NullEventRemoveRegion Instance = new NullEventRemoveRegion();
 
1531
//              
 
1532
//              public override bool IsNull {
 
1533
//                      get {
 
1534
//                              return true;
 
1535
//                      }
 
1536
//              }
 
1537
//              
 
1538
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1539
//                      return null;
 
1540
//              }
 
1541
//              
 
1542
//              public override string ToString() {
 
1543
//                      return "[NullEventRemoveRegion]";
 
1544
//              }
 
1545
//      }
 
1546
//      
 
1547
//      public class ExitStatement : Statement {
 
1548
//              
 
1549
//              ExitType exitType;
 
1550
//              
 
1551
//              public ExitType ExitType {
 
1552
//                      get {
 
1553
//                              return exitType;
 
1554
//                      }
 
1555
//                      set {
 
1556
//                              exitType = value;
 
1557
//                      }
 
1558
//              }
 
1559
//              
 
1560
//              public ExitStatement(ExitType exitType) {
 
1561
//                      ExitType = exitType;
 
1562
//              }
 
1563
//              
 
1564
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1565
//                      return visitor.VisitExitStatement(this, data);
 
1566
//              }
 
1567
//              
 
1568
//              public override string ToString() {
 
1569
//                      return string.Format("[ExitStatement ExitType={0}]", ExitType);
 
1570
//              }
 
1571
//      }
 
1572
//      
 
1573
//      public class ExpressionRangeVariable : AbstractNode, INullable {
 
1574
//              
 
1575
//              string identifier;
 
1576
//              
 
1577
//              Expression expression;
 
1578
//              
 
1579
//              TypeReference type;
 
1580
//              
 
1581
//              public string Identifier {
 
1582
//                      get {
 
1583
//                              return identifier;
 
1584
//                      }
 
1585
//                      set {
 
1586
//                              identifier = value ?? "";
 
1587
//                      }
 
1588
//              }
 
1589
//              
 
1590
//              public Expression Expression {
 
1591
//                      get {
 
1592
//                              return expression;
 
1593
//                      }
 
1594
//                      set {
 
1595
//                              expression = value ?? Expression.Null;
 
1596
//                              if (!expression.IsNull) expression.Parent = this;
 
1597
//                      }
 
1598
//              }
 
1599
//              
 
1600
//              public TypeReference Type {
 
1601
//                      get {
 
1602
//                              return type;
 
1603
//                      }
 
1604
//                      set {
 
1605
//                              type = value ?? TypeReference.Null;
 
1606
//                              if (!type.IsNull) type.Parent = this;
 
1607
//                      }
 
1608
//              }
 
1609
//              
 
1610
//              public ExpressionRangeVariable() {
 
1611
//                      identifier = "";
 
1612
//                      expression = Expression.Null;
 
1613
//                      type = TypeReference.Null;
 
1614
//              }
 
1615
//              
 
1616
//              public virtual bool IsNull {
 
1617
//                      get {
 
1618
//                              return false;
 
1619
//                      }
 
1620
//              }
 
1621
//              
 
1622
//              public static ExpressionRangeVariable Null {
 
1623
//                      get {
 
1624
//                              return NullExpressionRangeVariable.Instance;
 
1625
//                      }
 
1626
//              }
 
1627
//              
 
1628
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1629
//                      return visitor.VisitExpressionRangeVariable(this, data);
 
1630
//              }
 
1631
//              
 
1632
//              public override string ToString() {
 
1633
//                      return string.Format("[ExpressionRangeVariable Identifier={0} Expression={1} Type={2}]", Identifier, Expression, Type);
 
1634
//              }
 
1635
//      }
 
1636
//      
 
1637
//      internal sealed class NullExpressionRangeVariable : ExpressionRangeVariable {
 
1638
//              
 
1639
//              internal static NullExpressionRangeVariable Instance = new NullExpressionRangeVariable();
 
1640
//              
 
1641
//              public override bool IsNull {
 
1642
//                      get {
 
1643
//                              return true;
 
1644
//                      }
 
1645
//              }
 
1646
//              
 
1647
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1648
//                      return null;
 
1649
//              }
 
1650
//              
 
1651
//              public override string ToString() {
 
1652
//                      return "[NullExpressionRangeVariable]";
 
1653
//              }
 
1654
//      }
 
1655
//      
 
1656
//      public class ExpressionStatement : Statement {
 
1657
//              
 
1658
//              Expression expression;
 
1659
//              
 
1660
//              public Expression Expression {
 
1661
//                      get {
 
1662
//                              return expression;
 
1663
//                      }
 
1664
//                      set {
 
1665
//                              expression = value ?? Expression.Null;
 
1666
//                              if (!expression.IsNull) expression.Parent = this;
 
1667
//                      }
 
1668
//              }
 
1669
//              
 
1670
//              public ExpressionStatement(Expression expression) {
 
1671
//                      Expression = expression;
 
1672
//              }
 
1673
//              
 
1674
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1675
//                      return visitor.VisitExpressionStatement(this, data);
 
1676
//              }
 
1677
//              
 
1678
//              public override string ToString() {
 
1679
//                      return string.Format("[ExpressionStatement Expression={0}]", Expression);
 
1680
//              }
 
1681
//      }
 
1682
//      
 
1683
//      public class ExternAliasDirective : AbstractNode {
 
1684
//              
 
1685
//              string name;
 
1686
//              
 
1687
//              public string Name {
 
1688
//                      get {
 
1689
//                              return name;
 
1690
//                      }
 
1691
//                      set {
 
1692
//                              name = value ?? "";
 
1693
//                      }
 
1694
//              }
 
1695
//              
 
1696
//              public ExternAliasDirective() {
 
1697
//                      name = "";
 
1698
//              }
 
1699
//              
 
1700
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1701
//                      return visitor.VisitExternAliasDirective(this, data);
 
1702
//              }
 
1703
//              
 
1704
//              public override string ToString() {
 
1705
//                      return string.Format("[ExternAliasDirective Name={0}]", Name);
 
1706
//              }
 
1707
//      }
 
1708
//      
 
1709
//      public class FieldDeclaration : AttributedNode {
 
1710
//              
 
1711
//              TypeReference typeReference;
 
1712
//              
 
1713
//              List<VariableDeclaration> fields;
 
1714
//              
 
1715
//              public TypeReference TypeReference {
 
1716
//                      get {
 
1717
//                              return typeReference;
 
1718
//                      }
 
1719
//                      set {
 
1720
//                              typeReference = value ?? TypeReference.Null;
 
1721
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
1722
//                      }
 
1723
//              }
 
1724
//              
 
1725
//              public List<VariableDeclaration> Fields {
 
1726
//                      get {
 
1727
//                              return fields;
 
1728
//                      }
 
1729
//                      set {
 
1730
//                              fields = value ?? new List<VariableDeclaration>();
 
1731
//                      }
 
1732
//              }
 
1733
//              
 
1734
//              public FieldDeclaration(List<AttributeSection> attributes) {
 
1735
//                      Attributes = attributes;
 
1736
//                      typeReference = TypeReference.Null;
 
1737
//                      fields = new List<VariableDeclaration>();
 
1738
//              }
 
1739
//              
 
1740
//              public FieldDeclaration(List<AttributeSection> attributes, TypeReference typeReference, Modifiers modifier) {
 
1741
//                      Attributes = attributes;
 
1742
//                      TypeReference = typeReference;
 
1743
//                      Modifier = modifier;
 
1744
//                      fields = new List<VariableDeclaration>();
 
1745
//              }
 
1746
//              
 
1747
//
 
1748
//              public TypeReference GetTypeForField(int fieldIndex)
 
1749
//              {
 
1750
//                      if (!typeReference.IsNull) {
 
1751
//                              return typeReference;
 
1752
//                      }
 
1753
//                      return ((VariableDeclaration)Fields[fieldIndex]).TypeReference;
 
1754
//              }
 
1755
//              
 
1756
//
 
1757
//              public VariableDeclaration GetVariableDeclaration(string variableName)
 
1758
//              {
 
1759
//                      foreach (VariableDeclaration variableDeclaration in Fields) {
 
1760
//                              if (variableDeclaration.Name == variableName) {
 
1761
//                                      return variableDeclaration;
 
1762
//                              }
 
1763
//                      }
 
1764
//                      return null;
 
1765
//              }
 
1766
//              
 
1767
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1768
//                      return visitor.VisitFieldDeclaration(this, data);
 
1769
//              }
 
1770
//              
 
1771
//              public override string ToString() {
 
1772
//                      return string.Format("[FieldDeclaration TypeReference={0} Fields={1} Attributes={2} Modifier={3}]", TypeReference, GetCollectionString(Fields), GetCollectionString(Attributes), Modifier);
 
1773
//              }
 
1774
//      }
 
1775
//      
 
1776
//      public class ForeachStatement : StatementWithEmbeddedStatement {
 
1777
//              
 
1778
//              TypeReference typeReference;
 
1779
//              
 
1780
//              string variableName;
 
1781
//              
 
1782
//              Expression expression;
 
1783
//              
 
1784
//              Expression nextExpression;
 
1785
//              
 
1786
//              public TypeReference TypeReference {
 
1787
//                      get {
 
1788
//                              return typeReference;
 
1789
//                      }
 
1790
//                      set {
 
1791
//                              typeReference = value ?? TypeReference.Null;
 
1792
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
1793
//                      }
 
1794
//              }
 
1795
//              
 
1796
//              public string VariableName {
 
1797
//                      get {
 
1798
//                              return variableName;
 
1799
//                      }
 
1800
//                      set {
 
1801
//                              variableName = value ?? "";
 
1802
//                      }
 
1803
//              }
 
1804
//              
 
1805
//              public Expression Expression {
 
1806
//                      get {
 
1807
//                              return expression;
 
1808
//                      }
 
1809
//                      set {
 
1810
//                              expression = value ?? Expression.Null;
 
1811
//                              if (!expression.IsNull) expression.Parent = this;
 
1812
//                      }
 
1813
//              }
 
1814
//              
 
1815
//              public Expression NextExpression {
 
1816
//                      get {
 
1817
//                              return nextExpression;
 
1818
//                      }
 
1819
//                      set {
 
1820
//                              nextExpression = value ?? Expression.Null;
 
1821
//                              if (!nextExpression.IsNull) nextExpression.Parent = this;
 
1822
//                      }
 
1823
//              }
 
1824
//              
 
1825
//              public ForeachStatement(TypeReference typeReference, string variableName, Expression expression, Statement embeddedStatement) {
 
1826
//                      TypeReference = typeReference;
 
1827
//                      VariableName = variableName;
 
1828
//                      Expression = expression;
 
1829
//                      EmbeddedStatement = embeddedStatement;
 
1830
//                      nextExpression = Expression.Null;
 
1831
//              }
 
1832
//              
 
1833
//              public ForeachStatement(TypeReference typeReference, string variableName, Expression expression, Statement embeddedStatement, Expression nextExpression) {
 
1834
//                      TypeReference = typeReference;
 
1835
//                      VariableName = variableName;
 
1836
//                      Expression = expression;
 
1837
//                      EmbeddedStatement = embeddedStatement;
 
1838
//                      NextExpression = nextExpression;
 
1839
//              }
 
1840
//              
 
1841
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1842
//                      return visitor.VisitForeachStatement(this, data);
 
1843
//              }
 
1844
//              
 
1845
//              public override string ToString() {
 
1846
//                      return string.Format("[ForeachStatement TypeReference={0} VariableName={1} Expression={2} NextExpressio" +
 
1847
//                                           "n={3} EmbeddedStatement={4}]", TypeReference, VariableName, Expression, NextExpression, EmbeddedStatement);
 
1848
//              }
 
1849
//      }
 
1850
//      
 
1851
//      public class ForNextStatement : StatementWithEmbeddedStatement {
 
1852
//              
 
1853
//              Expression start;
 
1854
//              
 
1855
//              Expression end;
 
1856
//              
 
1857
//              Expression step;
 
1858
//              
 
1859
//              List<Expression> nextExpressions;
 
1860
//              
 
1861
//              TypeReference typeReference;
 
1862
//              
 
1863
//              string variableName;
 
1864
//              
 
1865
//              Expression loopVariableExpression;
 
1866
//              
 
1867
//              public Expression Start {
 
1868
//                      get {
 
1869
//                              return start;
 
1870
//                      }
 
1871
//                      set {
 
1872
//                              start = value ?? Expression.Null;
 
1873
//                              if (!start.IsNull) start.Parent = this;
 
1874
//                      }
 
1875
//              }
 
1876
//              
 
1877
//              public Expression End {
 
1878
//                      get {
 
1879
//                              return end;
 
1880
//                      }
 
1881
//                      set {
 
1882
//                              end = value ?? Expression.Null;
 
1883
//                              if (!end.IsNull) end.Parent = this;
 
1884
//                      }
 
1885
//              }
 
1886
//              
 
1887
//              public Expression Step {
 
1888
//                      get {
 
1889
//                              return step;
 
1890
//                      }
 
1891
//                      set {
 
1892
//                              step = value ?? Expression.Null;
 
1893
//                              if (!step.IsNull) step.Parent = this;
 
1894
//                      }
 
1895
//              }
 
1896
//              
 
1897
//              public List<Expression> NextExpressions {
 
1898
//                      get {
 
1899
//                              return nextExpressions;
 
1900
//                      }
 
1901
//                      set {
 
1902
//                              nextExpressions = value ?? new List<Expression>();
 
1903
//                      }
 
1904
//              }
 
1905
//              
 
1906
//              public TypeReference TypeReference {
 
1907
//                      get {
 
1908
//                              return typeReference;
 
1909
//                      }
 
1910
//                      set {
 
1911
//                              typeReference = value ?? TypeReference.Null;
 
1912
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
1913
//                      }
 
1914
//              }
 
1915
//              
 
1916
//              public string VariableName {
 
1917
//                      get {
 
1918
//                              return variableName;
 
1919
//                      }
 
1920
//                      set {
 
1921
//                              variableName = value ?? "";
 
1922
//                      }
 
1923
//              }
 
1924
//              
 
1925
//              public Expression LoopVariableExpression {
 
1926
//                      get {
 
1927
//                              return loopVariableExpression;
 
1928
//                      }
 
1929
//                      set {
 
1930
//                              loopVariableExpression = value ?? Expression.Null;
 
1931
//                              if (!loopVariableExpression.IsNull) loopVariableExpression.Parent = this;
 
1932
//                      }
 
1933
//              }
 
1934
//              
 
1935
//              public ForNextStatement() {
 
1936
//                      start = Expression.Null;
 
1937
//                      end = Expression.Null;
 
1938
//                      step = Expression.Null;
 
1939
//                      nextExpressions = new List<Expression>();
 
1940
//                      typeReference = TypeReference.Null;
 
1941
//                      variableName = "";
 
1942
//                      loopVariableExpression = Expression.Null;
 
1943
//              }
 
1944
//              
 
1945
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1946
//                      return visitor.VisitForNextStatement(this, data);
 
1947
//              }
 
1948
//              
 
1949
//              public override string ToString() {
 
1950
//                      return string.Format("[ForNextStatement Start={0} End={1} Step={2} NextExpressions={3} TypeReference={4" +
 
1951
//                                           "} VariableName={5} LoopVariableExpression={6} EmbeddedStatement={7}]", Start, End, Step, GetCollectionString(NextExpressions), TypeReference, VariableName, LoopVariableExpression, EmbeddedStatement);
 
1952
//              }
 
1953
//      }
 
1954
//      
 
1955
//      public class GotoStatement : Statement {
 
1956
//              
 
1957
//              string label;
 
1958
//              
 
1959
//              public string Label {
 
1960
//                      get {
 
1961
//                              return label;
 
1962
//                      }
 
1963
//                      set {
 
1964
//                              label = value ?? "";
 
1965
//                      }
 
1966
//              }
 
1967
//              
 
1968
//              public GotoStatement(string label) {
 
1969
//                      Label = label;
 
1970
//              }
 
1971
//              
 
1972
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
1973
//                      return visitor.VisitGotoStatement(this, data);
 
1974
//              }
 
1975
//              
 
1976
//              public override string ToString() {
 
1977
//                      return string.Format("[GotoStatement Label={0}]", Label);
 
1978
//              }
 
1979
//      }
 
1980
//      
 
1981
//      public class IfElseStatement : Statement {
 
1982
//              
 
1983
//              Expression condition;
 
1984
//              
 
1985
//              List<Statement> trueStatement;
 
1986
//              
 
1987
//              List<Statement> falseStatement;
 
1988
//              
 
1989
//              List<ElseIfSection> elseIfSections;
 
1990
//              
 
1991
//              public Expression Condition {
 
1992
//                      get {
 
1993
//                              return condition;
 
1994
//                      }
 
1995
//                      set {
 
1996
//                              condition = value ?? Expression.Null;
 
1997
//                              if (!condition.IsNull) condition.Parent = this;
 
1998
//                      }
 
1999
//              }
 
2000
//              
 
2001
//              public List<Statement> TrueStatement {
 
2002
//                      get {
 
2003
//                              return trueStatement;
 
2004
//                      }
 
2005
//                      set {
 
2006
//                              trueStatement = value ?? new List<Statement>();
 
2007
//                      }
 
2008
//              }
 
2009
//              
 
2010
//              public List<Statement> FalseStatement {
 
2011
//                      get {
 
2012
//                              return falseStatement;
 
2013
//                      }
 
2014
//                      set {
 
2015
//                              falseStatement = value ?? new List<Statement>();
 
2016
//                      }
 
2017
//              }
 
2018
//              
 
2019
//              public List<ElseIfSection> ElseIfSections {
 
2020
//                      get {
 
2021
//                              return elseIfSections;
 
2022
//                      }
 
2023
//                      set {
 
2024
//                              elseIfSections = value ?? new List<ElseIfSection>();
 
2025
//                      }
 
2026
//              }
 
2027
//              
 
2028
//              public IfElseStatement(Expression condition) {
 
2029
//                      Condition = condition;
 
2030
//                      trueStatement = new List<Statement>();
 
2031
//                      falseStatement = new List<Statement>();
 
2032
//                      elseIfSections = new List<ElseIfSection>();
 
2033
//              }
 
2034
//              
 
2035
//
 
2036
//              public IfElseStatement(Expression condition, Statement trueStatement)
 
2037
//                      : this(condition) {
 
2038
//                      this.trueStatement.Add(Statement.CheckNull(trueStatement));
 
2039
//                      if (trueStatement != null) trueStatement.Parent = this;
 
2040
//              }
 
2041
//              
 
2042
//              public bool HasElseStatements {
 
2043
//                      get {
 
2044
//                              return falseStatement.Count > 0;
 
2045
//                      }
 
2046
//              }
 
2047
//              
 
2048
//              public bool HasElseIfSections {
 
2049
//                      get {
 
2050
//                              return elseIfSections.Count > 0;
 
2051
//                      }
 
2052
//              }
 
2053
//              
 
2054
//
 
2055
//              public IfElseStatement(Expression condition, Statement trueStatement, Statement falseStatement)
 
2056
//                      : this(condition) {
 
2057
//                      this.trueStatement.Add(Statement.CheckNull(trueStatement));
 
2058
//                      this.falseStatement.Add(Statement.CheckNull(falseStatement));
 
2059
//                      if (trueStatement != null) trueStatement.Parent = this;
 
2060
//                      if (falseStatement != null) falseStatement.Parent = this;
 
2061
//              }
 
2062
//              
 
2063
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2064
//                      return visitor.VisitIfElseStatement(this, data);
 
2065
//              }
 
2066
//              
 
2067
//              public override string ToString() {
 
2068
//                      return string.Format("[IfElseStatement Condition={0} TrueStatement={1} FalseStatement={2} ElseIfSection" +
 
2069
//                                           "s={3}]", Condition, GetCollectionString(TrueStatement), GetCollectionString(FalseStatement), GetCollectionString(ElseIfSections));
 
2070
//              }
 
2071
//      }
 
2072
//      
 
2073
//      public class InterfaceImplementation : AbstractNode {
 
2074
//              
 
2075
//              TypeReference interfaceType;
 
2076
//              
 
2077
//              string memberName;
 
2078
//              
 
2079
//              public TypeReference InterfaceType {
 
2080
//                      get {
 
2081
//                              return interfaceType;
 
2082
//                      }
 
2083
//                      set {
 
2084
//                              interfaceType = value ?? TypeReference.Null;
 
2085
//                              if (!interfaceType.IsNull) interfaceType.Parent = this;
 
2086
//                      }
 
2087
//              }
 
2088
//              
 
2089
//              public string MemberName {
 
2090
//                      get {
 
2091
//                              return memberName;
 
2092
//                      }
 
2093
//                      set {
 
2094
//                              memberName = string.IsNullOrEmpty(value) ? "?" : value;
 
2095
//                      }
 
2096
//              }
 
2097
//              
 
2098
//              public InterfaceImplementation(TypeReference interfaceType, string memberName) {
 
2099
//                      InterfaceType = interfaceType;
 
2100
//                      MemberName = memberName;
 
2101
//              }
 
2102
//              
 
2103
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2104
//                      return visitor.VisitInterfaceImplementation(this, data);
 
2105
//              }
 
2106
//              
 
2107
//              public override string ToString() {
 
2108
//                      return string.Format("[InterfaceImplementation InterfaceType={0} MemberName={1}]", InterfaceType, MemberName);
 
2109
//              }
 
2110
//      }
 
2111
//      
 
2112
//      public class InvocationExpression : Expression {
 
2113
//              
 
2114
//              Expression targetObject;
 
2115
//              
 
2116
//              List<Expression> arguments;
 
2117
//              
 
2118
//              public Expression TargetObject {
 
2119
//                      get {
 
2120
//                              return targetObject;
 
2121
//                      }
 
2122
//                      set {
 
2123
//                              targetObject = value ?? Expression.Null;
 
2124
//                              if (!targetObject.IsNull) targetObject.Parent = this;
 
2125
//                      }
 
2126
//              }
 
2127
//              
 
2128
//              public List<Expression> Arguments {
 
2129
//                      get {
 
2130
//                              return arguments;
 
2131
//                      }
 
2132
//                      set {
 
2133
//                              arguments = value ?? new List<Expression>();
 
2134
//                      }
 
2135
//              }
 
2136
//              
 
2137
//              public InvocationExpression(Expression targetObject) {
 
2138
//                      TargetObject = targetObject;
 
2139
//                      arguments = new List<Expression>();
 
2140
//              }
 
2141
//              
 
2142
//              public InvocationExpression(Expression targetObject, List<Expression> arguments) {
 
2143
//                      TargetObject = targetObject;
 
2144
//                      Arguments = arguments;
 
2145
//              }
 
2146
//              
 
2147
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2148
//                      return visitor.VisitInvocationExpression(this, data);
 
2149
//              }
 
2150
//              
 
2151
//              public override string ToString() {
 
2152
//                      return string.Format("[InvocationExpression TargetObject={0} Arguments={1}]", TargetObject, GetCollectionString(Arguments));
 
2153
//              }
 
2154
//      }
 
2155
//      
 
2156
//      public class LabelStatement : Statement {
 
2157
//              
 
2158
//              string label;
 
2159
//              
 
2160
//              public string Label {
 
2161
//                      get {
 
2162
//                              return label;
 
2163
//                      }
 
2164
//                      set {
 
2165
//                              label = value ?? "";
 
2166
//                      }
 
2167
//              }
 
2168
//              
 
2169
//              public LabelStatement(string label) {
 
2170
//                      Label = label;
 
2171
//              }
 
2172
//              
 
2173
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2174
//                      return visitor.VisitLabelStatement(this, data);
 
2175
//              }
 
2176
//              
 
2177
//              public override string ToString() {
 
2178
//                      return string.Format("[LabelStatement Label={0}]", Label);
 
2179
//              }
 
2180
//      }
 
2181
//      
 
2182
//      public class LambdaExpression : Expression {
 
2183
//              
 
2184
//              List<ParameterDeclarationExpression> parameters;
 
2185
//              
 
2186
//              Statement statementBody;
 
2187
//              
 
2188
//              Expression expressionBody;
 
2189
//              
 
2190
//              TypeReference returnType;
 
2191
//              
 
2192
//              public List<ParameterDeclarationExpression> Parameters {
 
2193
//                      get {
 
2194
//                              return parameters;
 
2195
//                      }
 
2196
//                      set {
 
2197
//                              parameters = value ?? new List<ParameterDeclarationExpression>();
 
2198
//                      }
 
2199
//              }
 
2200
//              
 
2201
//              public Statement StatementBody {
 
2202
//                      get {
 
2203
//                              return statementBody;
 
2204
//                      }
 
2205
//                      set {
 
2206
//                              statementBody = value ?? Statement.Null;
 
2207
//                              if (!statementBody.IsNull) statementBody.Parent = this;
 
2208
//                      }
 
2209
//              }
 
2210
//              
 
2211
//              public Expression ExpressionBody {
 
2212
//                      get {
 
2213
//                              return expressionBody;
 
2214
//                      }
 
2215
//                      set {
 
2216
//                              expressionBody = value ?? Expression.Null;
 
2217
//                              if (!expressionBody.IsNull) expressionBody.Parent = this;
 
2218
//                      }
 
2219
//              }
 
2220
//              
 
2221
//              public TypeReference ReturnType {
 
2222
//                      get {
 
2223
//                              return returnType;
 
2224
//                      }
 
2225
//                      set {
 
2226
//                              returnType = value ?? TypeReference.Null;
 
2227
//                              if (!returnType.IsNull) returnType.Parent = this;
 
2228
//                      }
 
2229
//              }
 
2230
//              
 
2231
//              public LambdaExpression() {
 
2232
//                      parameters = new List<ParameterDeclarationExpression>();
 
2233
//                      statementBody = Statement.Null;
 
2234
//                      expressionBody = Expression.Null;
 
2235
//                      returnType = TypeReference.Null;
 
2236
//              }
 
2237
//              
 
2238
//              public Location ExtendedEndLocation { get; set; }
 
2239
//              
 
2240
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2241
//                      return visitor.VisitLambdaExpression(this, data);
 
2242
//              }
 
2243
//              
 
2244
//              public override string ToString() {
 
2245
//                      return string.Format("[LambdaExpression Parameters={0} StatementBody={1} ExpressionBody={2} ReturnType=" +
 
2246
//                                           "{3}]", GetCollectionString(Parameters), StatementBody, ExpressionBody, ReturnType);
 
2247
//              }
 
2248
//      }
 
2249
//      
 
2250
//      public class LockStatement : StatementWithEmbeddedStatement {
 
2251
//              
 
2252
//              Expression lockExpression;
 
2253
//              
 
2254
//              public Expression LockExpression {
 
2255
//                      get {
 
2256
//                              return lockExpression;
 
2257
//                      }
 
2258
//                      set {
 
2259
//                              lockExpression = value ?? Expression.Null;
 
2260
//                              if (!lockExpression.IsNull) lockExpression.Parent = this;
 
2261
//                      }
 
2262
//              }
 
2263
//              
 
2264
//              public LockStatement(Expression lockExpression, Statement embeddedStatement) {
 
2265
//                      LockExpression = lockExpression;
 
2266
//                      EmbeddedStatement = embeddedStatement;
 
2267
//              }
 
2268
//              
 
2269
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2270
//                      return visitor.VisitLockStatement(this, data);
 
2271
//              }
 
2272
//              
 
2273
//              public override string ToString() {
 
2274
//                      return string.Format("[LockStatement LockExpression={0} EmbeddedStatement={1}]", LockExpression, EmbeddedStatement);
 
2275
//              }
 
2276
//      }
 
2277
//      
 
2278
//      public class MemberInitializerExpression : Expression {
 
2279
//              
 
2280
//              string name;
 
2281
//              
 
2282
//              bool isKey;
 
2283
//              
 
2284
//              Expression expression;
 
2285
//              
 
2286
//              public string Name {
 
2287
//                      get {
 
2288
//                              return name;
 
2289
//                      }
 
2290
//                      set {
 
2291
//                              name = value ?? "";
 
2292
//                      }
 
2293
//              }
 
2294
//              
 
2295
//              public bool IsKey {
 
2296
//                      get {
 
2297
//                              return isKey;
 
2298
//                      }
 
2299
//                      set {
 
2300
//                              isKey = value;
 
2301
//                      }
 
2302
//              }
 
2303
//              
 
2304
//              public Expression Expression {
 
2305
//                      get {
 
2306
//                              return expression;
 
2307
//                      }
 
2308
//                      set {
 
2309
//                              expression = value ?? Expression.Null;
 
2310
//                              if (!expression.IsNull) expression.Parent = this;
 
2311
//                      }
 
2312
//              }
 
2313
//              
 
2314
//              public MemberInitializerExpression() {
 
2315
//                      name = "";
 
2316
//                      expression = Expression.Null;
 
2317
//              }
 
2318
//              
 
2319
//              public MemberInitializerExpression(string name, Expression expression) {
 
2320
//                      Name = name;
 
2321
//                      Expression = expression;
 
2322
//              }
 
2323
//              
 
2324
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2325
//                      return visitor.VisitMemberInitializerExpression(this, data);
 
2326
//              }
 
2327
//              
 
2328
//              public override string ToString() {
 
2329
//                      return string.Format("[MemberInitializerExpression Name={0} IsKey={1} Expression={2}]", Name, IsKey, Expression);
 
2330
//              }
 
2331
//      }
 
2332
//      
 
2333
//      public abstract class MemberNode : ParametrizedNode {
 
2334
//              
 
2335
//              List<InterfaceImplementation> interfaceImplementations;
 
2336
//              
 
2337
//              TypeReference typeReference;
 
2338
//              
 
2339
//              public List<InterfaceImplementation> InterfaceImplementations {
 
2340
//                      get {
 
2341
//                              return interfaceImplementations;
 
2342
//                      }
 
2343
//                      set {
 
2344
//                              interfaceImplementations = value ?? new List<InterfaceImplementation>();
 
2345
//                      }
 
2346
//              }
 
2347
//              
 
2348
//              public TypeReference TypeReference {
 
2349
//                      get {
 
2350
//                              return typeReference;
 
2351
//                      }
 
2352
//                      set {
 
2353
//                              typeReference = value ?? TypeReference.Null;
 
2354
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
2355
//                      }
 
2356
//              }
 
2357
//              
 
2358
//              protected MemberNode() {
 
2359
//                      interfaceImplementations = new List<InterfaceImplementation>();
 
2360
//                      typeReference = TypeReference.Null;
 
2361
//              }
 
2362
//              
 
2363
//              protected MemberNode(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
 
2364
//                      Modifier = modifier;
 
2365
//                      Attributes = attributes;
 
2366
//                      Name = name;
 
2367
//                      Parameters = parameters;
 
2368
//                      interfaceImplementations = new List<InterfaceImplementation>();
 
2369
//                      typeReference = TypeReference.Null;
 
2370
//              }
 
2371
//      }
 
2372
//      
 
2373
//      public class MemberReferenceExpression : Expression {
 
2374
//              
 
2375
//              Expression targetObject;
 
2376
//              
 
2377
//              string memberName;
 
2378
//              
 
2379
//              List<TypeReference> typeArguments;
 
2380
//              
 
2381
//              public Expression TargetObject {
 
2382
//                      get {
 
2383
//                              return targetObject;
 
2384
//                      }
 
2385
//                      set {
 
2386
//                              targetObject = value ?? Expression.Null;
 
2387
//                              if (!targetObject.IsNull) targetObject.Parent = this;
 
2388
//                      }
 
2389
//              }
 
2390
//              
 
2391
//              public string MemberName {
 
2392
//                      get {
 
2393
//                              return memberName;
 
2394
//                      }
 
2395
//                      set {
 
2396
//                              memberName = value ?? "";
 
2397
//                      }
 
2398
//              }
 
2399
//              
 
2400
//              public List<TypeReference> TypeArguments {
 
2401
//                      get {
 
2402
//                              return typeArguments;
 
2403
//                      }
 
2404
//                      set {
 
2405
//                              typeArguments = value ?? new List<TypeReference>();
 
2406
//                      }
 
2407
//              }
 
2408
//              
 
2409
//              public MemberReferenceExpression(Expression targetObject, string memberName) {
 
2410
//                      TargetObject = targetObject;
 
2411
//                      MemberName = memberName;
 
2412
//                      typeArguments = new List<TypeReference>();
 
2413
//              }
 
2414
//              
 
2415
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2416
//                      return visitor.VisitMemberReferenceExpression(this, data);
 
2417
//              }
 
2418
//              
 
2419
//              public override string ToString() {
 
2420
//                      return string.Format("[MemberReferenceExpression TargetObject={0} MemberName={1} TypeArguments={2}]", TargetObject, MemberName, GetCollectionString(TypeArguments));
 
2421
//              }
 
2422
//      }
 
2423
//      
 
2424
//      public class MethodDeclaration : MemberNode {
 
2425
//              
 
2426
//              BlockStatement body;
 
2427
//              
 
2428
//              List<string> handlesClause;
 
2429
//              
 
2430
//              List<TemplateDefinition> templates;
 
2431
//              
 
2432
//              bool isExtensionMethod;
 
2433
//              
 
2434
//              public BlockStatement Body {
 
2435
//                      get {
 
2436
//                              return body;
 
2437
//                      }
 
2438
//                      set {
 
2439
//                              body = value ?? BlockStatement.Null;
 
2440
//                              if (!body.IsNull) body.Parent = this;
 
2441
//                      }
 
2442
//              }
 
2443
//              
 
2444
//              public List<string> HandlesClause {
 
2445
//                      get {
 
2446
//                              return handlesClause;
 
2447
//                      }
 
2448
//                      set {
 
2449
//                              handlesClause = value ?? new List<String>();
 
2450
//                      }
 
2451
//              }
 
2452
//              
 
2453
//              public List<TemplateDefinition> Templates {
 
2454
//                      get {
 
2455
//                              return templates;
 
2456
//                      }
 
2457
//                      set {
 
2458
//                              templates = value ?? new List<TemplateDefinition>();
 
2459
//                      }
 
2460
//              }
 
2461
//              
 
2462
//              public bool IsExtensionMethod {
 
2463
//                      get {
 
2464
//                              return isExtensionMethod;
 
2465
//                      }
 
2466
//                      set {
 
2467
//                              isExtensionMethod = value;
 
2468
//                      }
 
2469
//              }
 
2470
//              
 
2471
//              public MethodDeclaration() {
 
2472
//                      body = BlockStatement.Null;
 
2473
//                      handlesClause = new List<String>();
 
2474
//                      templates = new List<TemplateDefinition>();
 
2475
//              }
 
2476
//              
 
2477
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2478
//                      return visitor.VisitMethodDeclaration(this, data);
 
2479
//              }
 
2480
//              
 
2481
//              public override string ToString() {
 
2482
//                      return string.Format("[MethodDeclaration Body={0} HandlesClause={1} Templates={2} IsExtensionMethod={3}" +
 
2483
//                                           " InterfaceImplementations={4} TypeReference={5} Name={6} Parameters={7} Attribut" +
 
2484
//                                           "es={8} Modifier={9}]", Body, GetCollectionString(HandlesClause), GetCollectionString(Templates), IsExtensionMethod, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
2485
//              }
 
2486
//      }
 
2487
//      
 
2488
//      public class NamedArgumentExpression : Expression {
 
2489
//              
 
2490
//              string name;
 
2491
//              
 
2492
//              Expression expression;
 
2493
//              
 
2494
//              public string Name {
 
2495
//                      get {
 
2496
//                              return name;
 
2497
//                      }
 
2498
//                      set {
 
2499
//                              name = value ?? "";
 
2500
//                      }
 
2501
//              }
 
2502
//              
 
2503
//              public Expression Expression {
 
2504
//                      get {
 
2505
//                              return expression;
 
2506
//                      }
 
2507
//                      set {
 
2508
//                              expression = value ?? Expression.Null;
 
2509
//                              if (!expression.IsNull) expression.Parent = this;
 
2510
//                      }
 
2511
//              }
 
2512
//              
 
2513
//              public NamedArgumentExpression() {
 
2514
//                      name = "";
 
2515
//                      expression = Expression.Null;
 
2516
//              }
 
2517
//              
 
2518
//              public NamedArgumentExpression(string name, Expression expression) {
 
2519
//                      Name = name;
 
2520
//                      Expression = expression;
 
2521
//              }
 
2522
//              
 
2523
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2524
//                      return visitor.VisitNamedArgumentExpression(this, data);
 
2525
//              }
 
2526
//              
 
2527
//              public override string ToString() {
 
2528
//                      return string.Format("[NamedArgumentExpression Name={0} Expression={1}]", Name, Expression);
 
2529
//              }
 
2530
//      }
 
2531
//      
 
2532
//      public class NamespaceDeclaration : AbstractNode {
 
2533
//              
 
2534
//              string name;
 
2535
//              
 
2536
//              public string Name {
 
2537
//                      get {
 
2538
//                              return name;
 
2539
//                      }
 
2540
//                      set {
 
2541
//                              name = value ?? "";
 
2542
//                      }
 
2543
//              }
 
2544
//              
 
2545
//              public NamespaceDeclaration(string name) {
 
2546
//                      Name = name;
 
2547
//              }
 
2548
//              
 
2549
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2550
//                      return visitor.VisitNamespaceDeclaration(this, data);
 
2551
//              }
 
2552
//              
 
2553
//              public override string ToString() {
 
2554
//                      return string.Format("[NamespaceDeclaration Name={0}]", Name);
 
2555
//              }
 
2556
//      }
 
2557
//      
 
2558
//      public class ObjectCreateExpression : Expression {
 
2559
//              
 
2560
//              TypeReference createType;
 
2561
//              
 
2562
//              List<Expression> parameters;
 
2563
//              
 
2564
//              CollectionInitializerExpression objectInitializer;
 
2565
//              
 
2566
//              public TypeReference CreateType {
 
2567
//                      get {
 
2568
//                              return createType;
 
2569
//                      }
 
2570
//                      set {
 
2571
//                              createType = value ?? TypeReference.Null;
 
2572
//                              if (!createType.IsNull) createType.Parent = this;
 
2573
//                      }
 
2574
//              }
 
2575
//              
 
2576
//              public List<Expression> Parameters {
 
2577
//                      get {
 
2578
//                              return parameters;
 
2579
//                      }
 
2580
//                      set {
 
2581
//                              parameters = value ?? new List<Expression>();
 
2582
//                      }
 
2583
//              }
 
2584
//              
 
2585
//              public CollectionInitializerExpression ObjectInitializer {
 
2586
//                      get {
 
2587
//                              return objectInitializer;
 
2588
//                      }
 
2589
//                      set {
 
2590
//                              objectInitializer = value ?? CollectionInitializerExpression.Null;
 
2591
//                              if (!objectInitializer.IsNull) objectInitializer.Parent = this;
 
2592
//                      }
 
2593
//              }
 
2594
//              
 
2595
//              public ObjectCreateExpression(TypeReference createType, List<Expression> parameters) {
 
2596
//                      CreateType = createType;
 
2597
//                      Parameters = parameters;
 
2598
//                      objectInitializer = CollectionInitializerExpression.Null;
 
2599
//              }
 
2600
//              
 
2601
//              public bool IsAnonymousType {
 
2602
//                      get {
 
2603
//                              return createType.IsNull || string.IsNullOrEmpty(createType.Type);
 
2604
//                      }
 
2605
//              }
 
2606
//              
 
2607
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2608
//                      return visitor.VisitObjectCreateExpression(this, data);
 
2609
//              }
 
2610
//              
 
2611
//              public override string ToString() {
 
2612
//                      return string.Format("[ObjectCreateExpression CreateType={0} Parameters={1} ObjectInitializer={2}]", CreateType, GetCollectionString(Parameters), ObjectInitializer);
 
2613
//              }
 
2614
//      }
 
2615
//      
 
2616
//      public class OnErrorStatement : StatementWithEmbeddedStatement {
 
2617
//              
 
2618
//              public OnErrorStatement(Statement embeddedStatement) {
 
2619
//                      EmbeddedStatement = embeddedStatement;
 
2620
//              }
 
2621
//              
 
2622
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2623
//                      return visitor.VisitOnErrorStatement(this, data);
 
2624
//              }
 
2625
//              
 
2626
//              public override string ToString() {
 
2627
//                      return string.Format("[OnErrorStatement EmbeddedStatement={0}]", EmbeddedStatement);
 
2628
//              }
 
2629
//      }
 
2630
//      
 
2631
//      public class OperatorDeclaration : MethodDeclaration {
 
2632
//              
 
2633
//              ConversionType conversionType;
 
2634
//              
 
2635
//              OverloadableOperatorType overloadableOperator;
 
2636
//              
 
2637
//              public ConversionType ConversionType {
 
2638
//                      get {
 
2639
//                              return conversionType;
 
2640
//                      }
 
2641
//                      set {
 
2642
//                              conversionType = value;
 
2643
//                      }
 
2644
//              }
 
2645
//              
 
2646
//              public OverloadableOperatorType OverloadableOperator {
 
2647
//                      get {
 
2648
//                              return overloadableOperator;
 
2649
//                      }
 
2650
//                      set {
 
2651
//                              overloadableOperator = value;
 
2652
//                      }
 
2653
//              }
 
2654
//              
 
2655
//              public OperatorDeclaration() {
 
2656
//              }
 
2657
//              
 
2658
//              public bool IsConversionOperator {
 
2659
//                      get {
 
2660
//                              return conversionType != ConversionType.None;
 
2661
//                      }
 
2662
//              }
 
2663
//              
 
2664
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2665
//                      return visitor.VisitOperatorDeclaration(this, data);
 
2666
//              }
 
2667
//              
 
2668
//              public override string ToString() {
 
2669
//                      return string.Format("[OperatorDeclaration ConversionType={0} OverloadableOperator={1} Body={2} Handles" +
 
2670
//                                           "Clause={3} Templates={4} IsExtensionMethod={5} InterfaceImplementations={6} Type" +
 
2671
//                                           "Reference={7} Name={8} Parameters={9} Attributes={10} Modifier={11}]", ConversionType, OverloadableOperator, Body, GetCollectionString(HandlesClause), GetCollectionString(Templates), IsExtensionMethod, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
2672
//              }
 
2673
//      }
 
2674
//      
 
2675
//      public class ParameterDeclarationExpression : Expression {
 
2676
//              
 
2677
//              List<AttributeSection> attributes;
 
2678
//              
 
2679
//              string parameterName;
 
2680
//              
 
2681
//              TypeReference typeReference;
 
2682
//              
 
2683
//              ParameterModifiers paramModifier;
 
2684
//              
 
2685
//              Expression defaultValue;
 
2686
//              
 
2687
//              public List<AttributeSection> Attributes {
 
2688
//                      get {
 
2689
//                              return attributes;
 
2690
//                      }
 
2691
//                      set {
 
2692
//                              attributes = value ?? new List<AttributeSection>();
 
2693
//                      }
 
2694
//              }
 
2695
//              
 
2696
//              public string ParameterName {
 
2697
//                      get {
 
2698
//                              return parameterName;
 
2699
//                      }
 
2700
//                      set {
 
2701
//                              parameterName = string.IsNullOrEmpty(value) ? "?" : value;
 
2702
//                      }
 
2703
//              }
 
2704
//              
 
2705
//              public TypeReference TypeReference {
 
2706
//                      get {
 
2707
//                              return typeReference;
 
2708
//                      }
 
2709
//                      set {
 
2710
//                              typeReference = value ?? TypeReference.Null;
 
2711
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
2712
//                      }
 
2713
//              }
 
2714
//              
 
2715
//              public ParameterModifiers ParamModifier {
 
2716
//                      get {
 
2717
//                              return paramModifier;
 
2718
//                      }
 
2719
//                      set {
 
2720
//                              paramModifier = value;
 
2721
//                      }
 
2722
//              }
 
2723
//              
 
2724
//              public Expression DefaultValue {
 
2725
//                      get {
 
2726
//                              return defaultValue;
 
2727
//                      }
 
2728
//                      set {
 
2729
//                              defaultValue = value ?? Expression.Null;
 
2730
//                              if (!defaultValue.IsNull) defaultValue.Parent = this;
 
2731
//                      }
 
2732
//              }
 
2733
//              
 
2734
//              public ParameterDeclarationExpression(TypeReference typeReference, string parameterName) {
 
2735
//                      TypeReference = typeReference;
 
2736
//                      ParameterName = parameterName;
 
2737
//                      attributes = new List<AttributeSection>();
 
2738
//                      defaultValue = Expression.Null;
 
2739
//              }
 
2740
//              
 
2741
//              public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier) {
 
2742
//                      TypeReference = typeReference;
 
2743
//                      ParameterName = parameterName;
 
2744
//                      ParamModifier = paramModifier;
 
2745
//                      attributes = new List<AttributeSection>();
 
2746
//                      defaultValue = Expression.Null;
 
2747
//              }
 
2748
//              
 
2749
//              public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier, Expression defaultValue) {
 
2750
//                      TypeReference = typeReference;
 
2751
//                      ParameterName = parameterName;
 
2752
//                      ParamModifier = paramModifier;
 
2753
//                      DefaultValue = defaultValue;
 
2754
//                      attributes = new List<AttributeSection>();
 
2755
//              }
 
2756
//              
 
2757
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2758
//                      return visitor.VisitParameterDeclarationExpression(this, data);
 
2759
//              }
 
2760
//              
 
2761
//              public override string ToString() {
 
2762
//                      return string.Format("[ParameterDeclarationExpression Attributes={0} ParameterName={1} TypeReference={2" +
 
2763
//                                           "} ParamModifier={3} DefaultValue={4}]", GetCollectionString(Attributes), ParameterName, TypeReference, ParamModifier, DefaultValue);
 
2764
//              }
 
2765
//      }
 
2766
//      
 
2767
//      public abstract class ParametrizedNode : AttributedNode {
 
2768
//              
 
2769
//              string name;
 
2770
//              
 
2771
//              List<ParameterDeclarationExpression> parameters;
 
2772
//              
 
2773
//              public string Name {
 
2774
//                      get {
 
2775
//                              return name;
 
2776
//                      }
 
2777
//                      set {
 
2778
//                              name = value ?? "";
 
2779
//                      }
 
2780
//              }
 
2781
//              
 
2782
//              public List<ParameterDeclarationExpression> Parameters {
 
2783
//                      get {
 
2784
//                              return parameters;
 
2785
//                      }
 
2786
//                      set {
 
2787
//                              parameters = value ?? new List<ParameterDeclarationExpression>();
 
2788
//                      }
 
2789
//              }
 
2790
//              
 
2791
//              protected ParametrizedNode() {
 
2792
//                      name = "";
 
2793
//                      parameters = new List<ParameterDeclarationExpression>();
 
2794
//              }
 
2795
//              
 
2796
//              protected ParametrizedNode(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
 
2797
//                      Modifier = modifier;
 
2798
//                      Attributes = attributes;
 
2799
//                      Name = name;
 
2800
//                      Parameters = parameters;
 
2801
//              }
 
2802
//      }
 
2803
//      
 
2804
//      public class ParenthesizedExpression : Expression {
 
2805
//              
 
2806
//              Expression expression;
 
2807
//              
 
2808
//              public Expression Expression {
 
2809
//                      get {
 
2810
//                              return expression;
 
2811
//                      }
 
2812
//                      set {
 
2813
//                              expression = value ?? Expression.Null;
 
2814
//                              if (!expression.IsNull) expression.Parent = this;
 
2815
//                      }
 
2816
//              }
 
2817
//              
 
2818
//              public ParenthesizedExpression(Expression expression) {
 
2819
//                      Expression = expression;
 
2820
//              }
 
2821
//              
 
2822
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2823
//                      return visitor.VisitParenthesizedExpression(this, data);
 
2824
//              }
 
2825
//              
 
2826
//              public override string ToString() {
 
2827
//                      return string.Format("[ParenthesizedExpression Expression={0}]", Expression);
 
2828
//              }
 
2829
//      }
 
2830
//      
 
2831
//      public class PropertyDeclaration : MemberNode {
 
2832
//              
 
2833
//              Location bodyStart;
 
2834
//              
 
2835
//              Location bodyEnd;
 
2836
//              
 
2837
//              PropertyGetRegion getRegion;
 
2838
//              
 
2839
//              PropertySetRegion setRegion;
 
2840
//              
 
2841
//              Expression initializer;
 
2842
//              
 
2843
//              public Location BodyStart {
 
2844
//                      get {
 
2845
//                              return bodyStart;
 
2846
//                      }
 
2847
//                      set {
 
2848
//                              bodyStart = value;
 
2849
//                      }
 
2850
//              }
 
2851
//              
 
2852
//              public Location BodyEnd {
 
2853
//                      get {
 
2854
//                              return bodyEnd;
 
2855
//                      }
 
2856
//                      set {
 
2857
//                              bodyEnd = value;
 
2858
//                      }
 
2859
//              }
 
2860
//              
 
2861
//              public PropertyGetRegion GetRegion {
 
2862
//                      get {
 
2863
//                              return getRegion;
 
2864
//                      }
 
2865
//                      set {
 
2866
//                              getRegion = value ?? PropertyGetRegion.Null;
 
2867
//                              if (!getRegion.IsNull) getRegion.Parent = this;
 
2868
//                      }
 
2869
//              }
 
2870
//              
 
2871
//              public PropertySetRegion SetRegion {
 
2872
//                      get {
 
2873
//                              return setRegion;
 
2874
//                      }
 
2875
//                      set {
 
2876
//                              setRegion = value ?? PropertySetRegion.Null;
 
2877
//                              if (!setRegion.IsNull) setRegion.Parent = this;
 
2878
//                      }
 
2879
//              }
 
2880
//              
 
2881
//              public Expression Initializer {
 
2882
//                      get {
 
2883
//                              return initializer;
 
2884
//                      }
 
2885
//                      set {
 
2886
//                              initializer = value ?? Expression.Null;
 
2887
//                              if (!initializer.IsNull) initializer.Parent = this;
 
2888
//                      }
 
2889
//              }
 
2890
//              
 
2891
//              public PropertyDeclaration(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
 
2892
//                      Modifier = modifier;
 
2893
//                      Attributes = attributes;
 
2894
//                      Name = name;
 
2895
//                      Parameters = parameters;
 
2896
//                      bodyStart = Location.Empty;
 
2897
//                      bodyEnd = Location.Empty;
 
2898
//                      getRegion = PropertyGetRegion.Null;
 
2899
//                      setRegion = PropertySetRegion.Null;
 
2900
//                      initializer = Expression.Null;
 
2901
//              }
 
2902
//              
 
2903
//              public bool IsReadOnly {
 
2904
//                      get {
 
2905
//                              return HasGetRegion && !HasSetRegion;
 
2906
//                      }
 
2907
//              }
 
2908
//              
 
2909
//              public bool HasGetRegion {
 
2910
//                      get {
 
2911
//                              return !getRegion.IsNull;
 
2912
//                      }
 
2913
//              }
 
2914
//              
 
2915
//              public bool IsWriteOnly {
 
2916
//                      get {
 
2917
//                              return !HasGetRegion && HasSetRegion;
 
2918
//                      }
 
2919
//              }
 
2920
//              
 
2921
//              public bool IsIndexer {
 
2922
//                      get {
 
2923
//                              return (Modifier & Modifiers.Default) != 0;
 
2924
//                      }
 
2925
//              }
 
2926
//              
 
2927
//
 
2928
//              internal PropertyDeclaration(string name, TypeReference typeReference, Modifiers modifier, List<AttributeSection> attributes) : this(modifier, attributes, name, null)
 
2929
//              {
 
2930
//                      this.TypeReference = typeReference;
 
2931
//                      if ((modifier & Modifiers.ReadOnly) != Modifiers.ReadOnly) {
 
2932
//                              this.SetRegion = new PropertySetRegion(null, null);
 
2933
//                      }
 
2934
//                      if ((modifier & Modifiers.WriteOnly) != Modifiers.WriteOnly) {
 
2935
//                              this.GetRegion = new PropertyGetRegion(null, null);
 
2936
//                      }
 
2937
//              }
 
2938
//              
 
2939
//              public bool HasSetRegion {
 
2940
//                      get {
 
2941
//                              return !setRegion.IsNull;
 
2942
//                      }
 
2943
//              }
 
2944
//              
 
2945
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2946
//                      return visitor.VisitPropertyDeclaration(this, data);
 
2947
//              }
 
2948
//              
 
2949
//              public override string ToString() {
 
2950
//                      return string.Format("[PropertyDeclaration BodyStart={0} BodyEnd={1} GetRegion={2} SetRegion={3} Initia" +
 
2951
//                                           "lizer={4} InterfaceImplementations={5} TypeReference={6} Name={7} Parameters={8}" +
 
2952
//                                           " Attributes={9} Modifier={10}]", BodyStart, BodyEnd, GetRegion, SetRegion, Initializer, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
 
2953
//              }
 
2954
//      }
 
2955
//      
 
2956
//      public class PropertyGetRegion : PropertyGetSetRegion {
 
2957
//              
 
2958
//              public PropertyGetRegion(BlockStatement block, List<AttributeSection> attributes) :
 
2959
//                      base(block, attributes) {
 
2960
//              }
 
2961
//              
 
2962
//              public static PropertyGetRegion Null {
 
2963
//                      get {
 
2964
//                              return NullPropertyGetRegion.Instance;
 
2965
//                      }
 
2966
//              }
 
2967
//              
 
2968
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2969
//                      return visitor.VisitPropertyGetRegion(this, data);
 
2970
//              }
 
2971
//              
 
2972
//              public override string ToString() {
 
2973
//                      return string.Format("[PropertyGetRegion Block={0} Attributes={1} Modifier={2}]", Block, GetCollectionString(Attributes), Modifier);
 
2974
//              }
 
2975
//      }
 
2976
//      
 
2977
//      internal sealed class NullPropertyGetRegion : PropertyGetRegion {
 
2978
//              
 
2979
//              private NullPropertyGetRegion() :
 
2980
//                      base(null, null) {
 
2981
//              }
 
2982
//              
 
2983
//              internal static NullPropertyGetRegion Instance = new NullPropertyGetRegion();
 
2984
//              
 
2985
//              public override bool IsNull {
 
2986
//                      get {
 
2987
//                              return true;
 
2988
//                      }
 
2989
//              }
 
2990
//              
 
2991
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
2992
//                      return null;
 
2993
//              }
 
2994
//              
 
2995
//              public override string ToString() {
 
2996
//                      return "[NullPropertyGetRegion]";
 
2997
//              }
 
2998
//      }
 
2999
//      
 
3000
//      public abstract class PropertyGetSetRegion : AttributedNode, INullable {
 
3001
//              
 
3002
//              BlockStatement block;
 
3003
//              
 
3004
//              public BlockStatement Block {
 
3005
//                      get {
 
3006
//                              return block;
 
3007
//                      }
 
3008
//                      set {
 
3009
//                              block = value ?? BlockStatement.Null;
 
3010
//                              if (!block.IsNull) block.Parent = this;
 
3011
//                      }
 
3012
//              }
 
3013
//              
 
3014
//              protected PropertyGetSetRegion(BlockStatement block, List<AttributeSection> attributes) {
 
3015
//                      Block = block;
 
3016
//                      Attributes = attributes;
 
3017
//              }
 
3018
//              
 
3019
//              public virtual bool IsNull {
 
3020
//                      get {
 
3021
//                              return false;
 
3022
//                      }
 
3023
//              }
 
3024
//      }
 
3025
//      
 
3026
//      public class PropertySetRegion : PropertyGetSetRegion {
 
3027
//              
 
3028
//              List<ParameterDeclarationExpression> parameters;
 
3029
//              
 
3030
//              public List<ParameterDeclarationExpression> Parameters {
 
3031
//                      get {
 
3032
//                              return parameters;
 
3033
//                      }
 
3034
//                      set {
 
3035
//                              parameters = value ?? new List<ParameterDeclarationExpression>();
 
3036
//                      }
 
3037
//              }
 
3038
//              
 
3039
//              public PropertySetRegion(BlockStatement block, List<AttributeSection> attributes) :
 
3040
//                      base(block, attributes) {
 
3041
//                      parameters = new List<ParameterDeclarationExpression>();
 
3042
//              }
 
3043
//              
 
3044
//              public static PropertySetRegion Null {
 
3045
//                      get {
 
3046
//                              return NullPropertySetRegion.Instance;
 
3047
//                      }
 
3048
//              }
 
3049
//              
 
3050
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3051
//                      return visitor.VisitPropertySetRegion(this, data);
 
3052
//              }
 
3053
//              
 
3054
//              public override string ToString() {
 
3055
//                      return string.Format("[PropertySetRegion Parameters={0} Block={1} Attributes={2} Modifier={3}]", GetCollectionString(Parameters), Block, GetCollectionString(Attributes), Modifier);
 
3056
//              }
 
3057
//      }
 
3058
//      
 
3059
//      internal sealed class NullPropertySetRegion : PropertySetRegion {
 
3060
//              
 
3061
//              private NullPropertySetRegion() :
 
3062
//                      base(null, null) {
 
3063
//              }
 
3064
//              
 
3065
//              internal static NullPropertySetRegion Instance = new NullPropertySetRegion();
 
3066
//              
 
3067
//              public override bool IsNull {
 
3068
//                      get {
 
3069
//                              return true;
 
3070
//                      }
 
3071
//              }
 
3072
//              
 
3073
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3074
//                      return null;
 
3075
//              }
 
3076
//              
 
3077
//              public override string ToString() {
 
3078
//                      return "[NullPropertySetRegion]";
 
3079
//              }
 
3080
//      }
 
3081
//      
 
3082
//      public class QueryExpression : Expression {
 
3083
//              
 
3084
//              List<QueryExpressionClause> clauses;
 
3085
//              
 
3086
//              public List<QueryExpressionClause> Clauses {
 
3087
//                      get {
 
3088
//                              return clauses;
 
3089
//                      }
 
3090
//                      set {
 
3091
//                              clauses = value ?? new List<QueryExpressionClause>();
 
3092
//                      }
 
3093
//              }
 
3094
//              
 
3095
//              public QueryExpression() {
 
3096
//                      clauses = new List<QueryExpressionClause>();
 
3097
//              }
 
3098
//              
 
3099
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3100
//                      return visitor.VisitQueryExpression(this, data);
 
3101
//              }
 
3102
//              
 
3103
//              public override string ToString() {
 
3104
//                      return string.Format("[QueryExpression Clauses={0}]", GetCollectionString(Clauses));
 
3105
//              }
 
3106
//      }
 
3107
//      
 
3108
//      public class QueryExpressionAggregateClause : QueryExpressionClause {
 
3109
//              
 
3110
//              CollectionRangeVariable source;
 
3111
//              
 
3112
//              List<QueryExpressionClause> middleClauses;
 
3113
//              
 
3114
//              List<ExpressionRangeVariable> intoVariables;
 
3115
//              
 
3116
//              public CollectionRangeVariable Source {
 
3117
//                      get {
 
3118
//                              return source;
 
3119
//                      }
 
3120
//                      set {
 
3121
//                              source = value ?? CollectionRangeVariable.Null;
 
3122
//                              if (!source.IsNull) source.Parent = this;
 
3123
//                      }
 
3124
//              }
 
3125
//              
 
3126
//              public List<QueryExpressionClause> MiddleClauses {
 
3127
//                      get {
 
3128
//                              return middleClauses;
 
3129
//                      }
 
3130
//                      set {
 
3131
//                              middleClauses = value ?? new List<QueryExpressionClause>();
 
3132
//                      }
 
3133
//              }
 
3134
//              
 
3135
//              public List<ExpressionRangeVariable> IntoVariables {
 
3136
//                      get {
 
3137
//                              return intoVariables;
 
3138
//                      }
 
3139
//                      set {
 
3140
//                              intoVariables = value ?? new List<ExpressionRangeVariable>();
 
3141
//                      }
 
3142
//              }
 
3143
//              
 
3144
//              public QueryExpressionAggregateClause() {
 
3145
//                      source = CollectionRangeVariable.Null;
 
3146
//                      middleClauses = new List<QueryExpressionClause>();
 
3147
//                      intoVariables = new List<ExpressionRangeVariable>();
 
3148
//              }
 
3149
//              
 
3150
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3151
//                      return visitor.VisitQueryExpressionAggregateClause(this, data);
 
3152
//              }
 
3153
//              
 
3154
//              public override string ToString() {
 
3155
//                      return string.Format("[QueryExpressionAggregateClause Source={0} MiddleClauses={1} IntoVariables={2}]", Source, GetCollectionString(MiddleClauses), GetCollectionString(IntoVariables));
 
3156
//              }
 
3157
//      }
 
3158
//      
 
3159
//      public abstract class QueryExpressionClause : AbstractNode, INullable {
 
3160
//              
 
3161
//              protected QueryExpressionClause() {
 
3162
//              }
 
3163
//              
 
3164
//              public virtual bool IsNull {
 
3165
//                      get {
 
3166
//                              return false;
 
3167
//                      }
 
3168
//              }
 
3169
//              
 
3170
//              public static QueryExpressionClause Null {
 
3171
//                      get {
 
3172
//                              return NullQueryExpressionClause.Instance;
 
3173
//                      }
 
3174
//              }
 
3175
//      }
 
3176
//      
 
3177
//      internal sealed class NullQueryExpressionClause : QueryExpressionClause {
 
3178
//              
 
3179
//              internal static NullQueryExpressionClause Instance = new NullQueryExpressionClause();
 
3180
//              
 
3181
//              public override bool IsNull {
 
3182
//                      get {
 
3183
//                              return true;
 
3184
//                      }
 
3185
//              }
 
3186
//              
 
3187
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3188
//                      return null;
 
3189
//              }
 
3190
//              
 
3191
//              public override string ToString() {
 
3192
//                      return "[NullQueryExpressionClause]";
 
3193
//              }
 
3194
//      }
 
3195
//      
 
3196
//      public class QueryExpressionDistinctClause : QueryExpressionClause {
 
3197
//              
 
3198
//              public QueryExpressionDistinctClause() {
 
3199
//              }
 
3200
//              
 
3201
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3202
//                      return visitor.VisitQueryExpressionDistinctClause(this, data);
 
3203
//              }
 
3204
//              
 
3205
//              public override string ToString() {
 
3206
//                      return "[QueryExpressionDistinctClause]";
 
3207
//              }
 
3208
//      }
 
3209
//      
 
3210
//      public class QueryExpressionFromClause : QueryExpressionClause {
 
3211
//              
 
3212
//              List<CollectionRangeVariable> sources;
 
3213
//              
 
3214
//              public List<CollectionRangeVariable> Sources {
 
3215
//                      get {
 
3216
//                              return sources;
 
3217
//                      }
 
3218
//                      set {
 
3219
//                              sources = value ?? new List<CollectionRangeVariable>();
 
3220
//                      }
 
3221
//              }
 
3222
//              
 
3223
//              public QueryExpressionFromClause() {
 
3224
//                      sources = new List<CollectionRangeVariable>();
 
3225
//              }
 
3226
//              
 
3227
//              public new static QueryExpressionFromClause Null {
 
3228
//                      get {
 
3229
//                              return NullQueryExpressionFromClause.Instance;
 
3230
//                      }
 
3231
//              }
 
3232
//              
 
3233
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3234
//                      return visitor.VisitQueryExpressionFromClause(this, data);
 
3235
//              }
 
3236
//              
 
3237
//              public override string ToString() {
 
3238
//                      return string.Format("[QueryExpressionFromClause Sources={0}]", GetCollectionString(Sources));
 
3239
//              }
 
3240
//      }
 
3241
//      
 
3242
//      internal sealed class NullQueryExpressionFromClause : QueryExpressionFromClause {
 
3243
//              
 
3244
//              internal static NullQueryExpressionFromClause Instance = new NullQueryExpressionFromClause();
 
3245
//              
 
3246
//              public override bool IsNull {
 
3247
//                      get {
 
3248
//                              return true;
 
3249
//                      }
 
3250
//              }
 
3251
//              
 
3252
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3253
//                      return null;
 
3254
//              }
 
3255
//              
 
3256
//              public override string ToString() {
 
3257
//                      return "[NullQueryExpressionFromClause]";
 
3258
//              }
 
3259
//      }
 
3260
//      
 
3261
//      public class QueryExpressionGroupClause : QueryExpressionClause {
 
3262
//              
 
3263
//              Expression projection;
 
3264
//              
 
3265
//              Expression groupBy;
 
3266
//              
 
3267
//              public Expression Projection {
 
3268
//                      get {
 
3269
//                              return projection;
 
3270
//                      }
 
3271
//                      set {
 
3272
//                              projection = value ?? Expression.Null;
 
3273
//                              if (!projection.IsNull) projection.Parent = this;
 
3274
//                      }
 
3275
//              }
 
3276
//              
 
3277
//              public Expression GroupBy {
 
3278
//                      get {
 
3279
//                              return groupBy;
 
3280
//                      }
 
3281
//                      set {
 
3282
//                              groupBy = value ?? Expression.Null;
 
3283
//                              if (!groupBy.IsNull) groupBy.Parent = this;
 
3284
//                      }
 
3285
//              }
 
3286
//              
 
3287
//              public QueryExpressionGroupClause() {
 
3288
//                      projection = Expression.Null;
 
3289
//                      groupBy = Expression.Null;
 
3290
//              }
 
3291
//              
 
3292
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3293
//                      return visitor.VisitQueryExpressionGroupClause(this, data);
 
3294
//              }
 
3295
//              
 
3296
//              public override string ToString() {
 
3297
//                      return string.Format("[QueryExpressionGroupClause Projection={0} GroupBy={1}]", Projection, GroupBy);
 
3298
//              }
 
3299
//      }
 
3300
//      
 
3301
//      public class QueryExpressionGroupJoinVBClause : QueryExpressionClause {
 
3302
//              
 
3303
//              QueryExpressionJoinVBClause joinClause;
 
3304
//              
 
3305
//              List<ExpressionRangeVariable> intoVariables;
 
3306
//              
 
3307
//              public QueryExpressionJoinVBClause JoinClause {
 
3308
//                      get {
 
3309
//                              return joinClause;
 
3310
//                      }
 
3311
//                      set {
 
3312
//                              joinClause = value ?? QueryExpressionJoinVBClause.Null;
 
3313
//                              if (!joinClause.IsNull) joinClause.Parent = this;
 
3314
//                      }
 
3315
//              }
 
3316
//              
 
3317
//              public List<ExpressionRangeVariable> IntoVariables {
 
3318
//                      get {
 
3319
//                              return intoVariables;
 
3320
//                      }
 
3321
//                      set {
 
3322
//                              intoVariables = value ?? new List<ExpressionRangeVariable>();
 
3323
//                      }
 
3324
//              }
 
3325
//              
 
3326
//              public QueryExpressionGroupJoinVBClause() {
 
3327
//                      joinClause = QueryExpressionJoinVBClause.Null;
 
3328
//                      intoVariables = new List<ExpressionRangeVariable>();
 
3329
//              }
 
3330
//              
 
3331
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3332
//                      return visitor.VisitQueryExpressionGroupJoinVBClause(this, data);
 
3333
//              }
 
3334
//              
 
3335
//              public override string ToString() {
 
3336
//                      return string.Format("[QueryExpressionGroupJoinVBClause JoinClause={0} IntoVariables={1}]", JoinClause, GetCollectionString(IntoVariables));
 
3337
//              }
 
3338
//      }
 
3339
//      
 
3340
//      public class QueryExpressionGroupVBClause : QueryExpressionClause {
 
3341
//              
 
3342
//              List<ExpressionRangeVariable> groupVariables;
 
3343
//              
 
3344
//              List<ExpressionRangeVariable> byVariables;
 
3345
//              
 
3346
//              List<ExpressionRangeVariable> intoVariables;
 
3347
//              
 
3348
//              public List<ExpressionRangeVariable> GroupVariables {
 
3349
//                      get {
 
3350
//                              return groupVariables;
 
3351
//                      }
 
3352
//                      set {
 
3353
//                              groupVariables = value ?? new List<ExpressionRangeVariable>();
 
3354
//                      }
 
3355
//              }
 
3356
//              
 
3357
//              public List<ExpressionRangeVariable> ByVariables {
 
3358
//                      get {
 
3359
//                              return byVariables;
 
3360
//                      }
 
3361
//                      set {
 
3362
//                              byVariables = value ?? new List<ExpressionRangeVariable>();
 
3363
//                      }
 
3364
//              }
 
3365
//              
 
3366
//              public List<ExpressionRangeVariable> IntoVariables {
 
3367
//                      get {
 
3368
//                              return intoVariables;
 
3369
//                      }
 
3370
//                      set {
 
3371
//                              intoVariables = value ?? new List<ExpressionRangeVariable>();
 
3372
//                      }
 
3373
//              }
 
3374
//              
 
3375
//              public QueryExpressionGroupVBClause() {
 
3376
//                      groupVariables = new List<ExpressionRangeVariable>();
 
3377
//                      byVariables = new List<ExpressionRangeVariable>();
 
3378
//                      intoVariables = new List<ExpressionRangeVariable>();
 
3379
//              }
 
3380
//              
 
3381
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3382
//                      return visitor.VisitQueryExpressionGroupVBClause(this, data);
 
3383
//              }
 
3384
//              
 
3385
//              public override string ToString() {
 
3386
//                      return string.Format("[QueryExpressionGroupVBClause GroupVariables={0} ByVariables={1} IntoVariables={2" +
 
3387
//                                           "}]", GetCollectionString(GroupVariables), GetCollectionString(ByVariables), GetCollectionString(IntoVariables));
 
3388
//              }
 
3389
//      }
 
3390
//      
 
3391
//      public class QueryExpressionJoinClause : QueryExpressionClause {
 
3392
//              
 
3393
//              Expression onExpression;
 
3394
//              
 
3395
//              Expression equalsExpression;
 
3396
//              
 
3397
//              CollectionRangeVariable source;
 
3398
//              
 
3399
//              string intoIdentifier;
 
3400
//              
 
3401
//              public Expression OnExpression {
 
3402
//                      get {
 
3403
//                              return onExpression;
 
3404
//                      }
 
3405
//                      set {
 
3406
//                              onExpression = value ?? Expression.Null;
 
3407
//                              if (!onExpression.IsNull) onExpression.Parent = this;
 
3408
//                      }
 
3409
//              }
 
3410
//              
 
3411
//              public Expression EqualsExpression {
 
3412
//                      get {
 
3413
//                              return equalsExpression;
 
3414
//                      }
 
3415
//                      set {
 
3416
//                              equalsExpression = value ?? Expression.Null;
 
3417
//                              if (!equalsExpression.IsNull) equalsExpression.Parent = this;
 
3418
//                      }
 
3419
//              }
 
3420
//              
 
3421
//              public CollectionRangeVariable Source {
 
3422
//                      get {
 
3423
//                              return source;
 
3424
//                      }
 
3425
//                      set {
 
3426
//                              source = value ?? CollectionRangeVariable.Null;
 
3427
//                              if (!source.IsNull) source.Parent = this;
 
3428
//                      }
 
3429
//              }
 
3430
//              
 
3431
//              public string IntoIdentifier {
 
3432
//                      get {
 
3433
//                              return intoIdentifier;
 
3434
//                      }
 
3435
//                      set {
 
3436
//                              intoIdentifier = value ?? "";
 
3437
//                      }
 
3438
//              }
 
3439
//              
 
3440
//              public QueryExpressionJoinClause() {
 
3441
//                      onExpression = Expression.Null;
 
3442
//                      equalsExpression = Expression.Null;
 
3443
//                      source = CollectionRangeVariable.Null;
 
3444
//                      intoIdentifier = "";
 
3445
//              }
 
3446
//              
 
3447
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3448
//                      return visitor.VisitQueryExpressionJoinClause(this, data);
 
3449
//              }
 
3450
//              
 
3451
//              public override string ToString() {
 
3452
//                      return string.Format("[QueryExpressionJoinClause OnExpression={0} EqualsExpression={1} Source={2} IntoI" +
 
3453
//                                           "dentifier={3}]", OnExpression, EqualsExpression, Source, IntoIdentifier);
 
3454
//              }
 
3455
//      }
 
3456
//      
 
3457
//      public class QueryExpressionJoinConditionVB : AbstractNode {
 
3458
//              
 
3459
//              Expression leftSide;
 
3460
//              
 
3461
//              Expression rightSide;
 
3462
//              
 
3463
//              public Expression LeftSide {
 
3464
//                      get {
 
3465
//                              return leftSide;
 
3466
//                      }
 
3467
//                      set {
 
3468
//                              leftSide = value ?? Expression.Null;
 
3469
//                              if (!leftSide.IsNull) leftSide.Parent = this;
 
3470
//                      }
 
3471
//              }
 
3472
//              
 
3473
//              public Expression RightSide {
 
3474
//                      get {
 
3475
//                              return rightSide;
 
3476
//                      }
 
3477
//                      set {
 
3478
//                              rightSide = value ?? Expression.Null;
 
3479
//                              if (!rightSide.IsNull) rightSide.Parent = this;
 
3480
//                      }
 
3481
//              }
 
3482
//              
 
3483
//              public QueryExpressionJoinConditionVB() {
 
3484
//                      leftSide = Expression.Null;
 
3485
//                      rightSide = Expression.Null;
 
3486
//              }
 
3487
//              
 
3488
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3489
//                      return visitor.VisitQueryExpressionJoinConditionVB(this, data);
 
3490
//              }
 
3491
//              
 
3492
//              public override string ToString() {
 
3493
//                      return string.Format("[QueryExpressionJoinConditionVB LeftSide={0} RightSide={1}]", LeftSide, RightSide);
 
3494
//              }
 
3495
//      }
 
3496
//      
 
3497
//      public class QueryExpressionJoinVBClause : QueryExpressionClause {
 
3498
//              
 
3499
//              CollectionRangeVariable joinVariable;
 
3500
//              
 
3501
//              QueryExpressionJoinVBClause subJoin;
 
3502
//              
 
3503
//              List<QueryExpressionJoinConditionVB> conditions;
 
3504
//              
 
3505
//              public CollectionRangeVariable JoinVariable {
 
3506
//                      get {
 
3507
//                              return joinVariable;
 
3508
//                      }
 
3509
//                      set {
 
3510
//                              joinVariable = value ?? CollectionRangeVariable.Null;
 
3511
//                              if (!joinVariable.IsNull) joinVariable.Parent = this;
 
3512
//                      }
 
3513
//              }
 
3514
//              
 
3515
//              public QueryExpressionJoinVBClause SubJoin {
 
3516
//                      get {
 
3517
//                              return subJoin;
 
3518
//                      }
 
3519
//                      set {
 
3520
//                              subJoin = value ?? QueryExpressionJoinVBClause.Null;
 
3521
//                              if (!subJoin.IsNull) subJoin.Parent = this;
 
3522
//                      }
 
3523
//              }
 
3524
//              
 
3525
//              public List<QueryExpressionJoinConditionVB> Conditions {
 
3526
//                      get {
 
3527
//                              return conditions;
 
3528
//                      }
 
3529
//                      set {
 
3530
//                              conditions = value ?? new List<QueryExpressionJoinConditionVB>();
 
3531
//                      }
 
3532
//              }
 
3533
//              
 
3534
//              public QueryExpressionJoinVBClause() {
 
3535
//                      joinVariable = CollectionRangeVariable.Null;
 
3536
//                      subJoin = QueryExpressionJoinVBClause.Null;
 
3537
//                      conditions = new List<QueryExpressionJoinConditionVB>();
 
3538
//              }
 
3539
//              
 
3540
//              public new static QueryExpressionJoinVBClause Null {
 
3541
//                      get {
 
3542
//                              return NullQueryExpressionJoinVBClause.Instance;
 
3543
//                      }
 
3544
//              }
 
3545
//              
 
3546
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3547
//                      return visitor.VisitQueryExpressionJoinVBClause(this, data);
 
3548
//              }
 
3549
//              
 
3550
//              public override string ToString() {
 
3551
//                      return string.Format("[QueryExpressionJoinVBClause JoinVariable={0} SubJoin={1} Conditions={2}]", JoinVariable, SubJoin, GetCollectionString(Conditions));
 
3552
//              }
 
3553
//      }
 
3554
//      
 
3555
//      internal sealed class NullQueryExpressionJoinVBClause : QueryExpressionJoinVBClause {
 
3556
//              
 
3557
//              internal static NullQueryExpressionJoinVBClause Instance = new NullQueryExpressionJoinVBClause();
 
3558
//              
 
3559
//              public override bool IsNull {
 
3560
//                      get {
 
3561
//                              return true;
 
3562
//                      }
 
3563
//              }
 
3564
//              
 
3565
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3566
//                      return null;
 
3567
//              }
 
3568
//              
 
3569
//              public override string ToString() {
 
3570
//                      return "[NullQueryExpressionJoinVBClause]";
 
3571
//              }
 
3572
//      }
 
3573
//      
 
3574
//      public class QueryExpressionLetClause : QueryExpressionClause {
 
3575
//              
 
3576
//              List<ExpressionRangeVariable> variables;
 
3577
//              
 
3578
//              public List<ExpressionRangeVariable> Variables {
 
3579
//                      get {
 
3580
//                              return variables;
 
3581
//                      }
 
3582
//                      set {
 
3583
//                              variables = value ?? new List<ExpressionRangeVariable>();
 
3584
//                      }
 
3585
//              }
 
3586
//              
 
3587
//              public QueryExpressionLetClause() {
 
3588
//                      variables = new List<ExpressionRangeVariable>();
 
3589
//              }
 
3590
//              
 
3591
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3592
//                      return visitor.VisitQueryExpressionLetVBClause(this, data);
 
3593
//              }
 
3594
//              
 
3595
//              public override string ToString() {
 
3596
//                      return string.Format("[QueryExpressionLetVBClause Variables={0}]", GetCollectionString(Variables));
 
3597
//              }
 
3598
//      }
 
3599
//      
 
3600
//      public class QueryExpressionOrderClause : QueryExpressionClause {
 
3601
//              
 
3602
//              List<QueryExpressionOrdering> orderings;
 
3603
//              
 
3604
//              public List<QueryExpressionOrdering> Orderings {
 
3605
//                      get {
 
3606
//                              return orderings;
 
3607
//                      }
 
3608
//                      set {
 
3609
//                              orderings = value ?? new List<QueryExpressionOrdering>();
 
3610
//                      }
 
3611
//              }
 
3612
//              
 
3613
//              public QueryExpressionOrderClause() {
 
3614
//                      orderings = new List<QueryExpressionOrdering>();
 
3615
//              }
 
3616
//              
 
3617
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3618
//                      return visitor.VisitQueryExpressionOrderClause(this, data);
 
3619
//              }
 
3620
//              
 
3621
//              public override string ToString() {
 
3622
//                      return string.Format("[QueryExpressionOrderClause Orderings={0}]", GetCollectionString(Orderings));
 
3623
//              }
 
3624
//      }
 
3625
//      
 
3626
//      public class QueryExpressionOrdering : AbstractNode {
 
3627
//              
 
3628
//              Expression criteria;
 
3629
//              
 
3630
//              QueryExpressionOrderingDirection direction;
 
3631
//              
 
3632
//              public Expression Criteria {
 
3633
//                      get {
 
3634
//                              return criteria;
 
3635
//                      }
 
3636
//                      set {
 
3637
//                              criteria = value ?? Expression.Null;
 
3638
//                              if (!criteria.IsNull) criteria.Parent = this;
 
3639
//                      }
 
3640
//              }
 
3641
//              
 
3642
//              public QueryExpressionOrderingDirection Direction {
 
3643
//                      get {
 
3644
//                              return direction;
 
3645
//                      }
 
3646
//                      set {
 
3647
//                              direction = value;
 
3648
//                      }
 
3649
//              }
 
3650
//              
 
3651
//              public QueryExpressionOrdering() {
 
3652
//                      criteria = Expression.Null;
 
3653
//              }
 
3654
//              
 
3655
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3656
//                      return visitor.VisitQueryExpressionOrdering(this, data);
 
3657
//              }
 
3658
//              
 
3659
//              public override string ToString() {
 
3660
//                      return string.Format("[QueryExpressionOrdering Criteria={0} Direction={1}]", Criteria, Direction);
 
3661
//              }
 
3662
//      }
 
3663
//      
 
3664
//      public class QueryExpressionPartitionVBClause : QueryExpressionClause {
 
3665
//              
 
3666
//              Expression expression;
 
3667
//              
 
3668
//              QueryExpressionPartitionType partitionType;
 
3669
//              
 
3670
//              public Expression Expression {
 
3671
//                      get {
 
3672
//                              return expression;
 
3673
//                      }
 
3674
//                      set {
 
3675
//                              expression = value ?? Expression.Null;
 
3676
//                              if (!expression.IsNull) expression.Parent = this;
 
3677
//                      }
 
3678
//              }
 
3679
//              
 
3680
//              public QueryExpressionPartitionType PartitionType {
 
3681
//                      get {
 
3682
//                              return partitionType;
 
3683
//                      }
 
3684
//                      set {
 
3685
//                              partitionType = value;
 
3686
//                      }
 
3687
//              }
 
3688
//              
 
3689
//              public QueryExpressionPartitionVBClause() {
 
3690
//                      expression = Expression.Null;
 
3691
//              }
 
3692
//              
 
3693
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3694
//                      return visitor.VisitQueryExpressionPartitionVBClause(this, data);
 
3695
//              }
 
3696
//              
 
3697
//              public override string ToString() {
 
3698
//                      return string.Format("[QueryExpressionPartitionVBClause Expression={0} PartitionType={1}]", Expression, PartitionType);
 
3699
//              }
 
3700
//      }
 
3701
//      
 
3702
//      public class QueryExpressionSelectClause : QueryExpressionClause {
 
3703
//              
 
3704
//              Expression projection;
 
3705
//              
 
3706
//              public Expression Projection {
 
3707
//                      get {
 
3708
//                              return projection;
 
3709
//                      }
 
3710
//                      set {
 
3711
//                              projection = value ?? Expression.Null;
 
3712
//                              if (!projection.IsNull) projection.Parent = this;
 
3713
//                      }
 
3714
//              }
 
3715
//              
 
3716
//              public QueryExpressionSelectClause() {
 
3717
//                      projection = Expression.Null;
 
3718
//              }
 
3719
//              
 
3720
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3721
//                      return visitor.VisitQueryExpressionSelectClause(this, data);
 
3722
//              }
 
3723
//              
 
3724
//              public override string ToString() {
 
3725
//                      return string.Format("[QueryExpressionSelectClause Projection={0}]", Projection);
 
3726
//              }
 
3727
//      }
 
3728
//      
 
3729
//      public class QueryExpressionSelectVBClause : QueryExpressionClause {
 
3730
//              
 
3731
//              List<ExpressionRangeVariable> variables;
 
3732
//              
 
3733
//              public List<ExpressionRangeVariable> Variables {
 
3734
//                      get {
 
3735
//                              return variables;
 
3736
//                      }
 
3737
//                      set {
 
3738
//                              variables = value ?? new List<ExpressionRangeVariable>();
 
3739
//                      }
 
3740
//              }
 
3741
//              
 
3742
//              public QueryExpressionSelectVBClause() {
 
3743
//                      variables = new List<ExpressionRangeVariable>();
 
3744
//              }
 
3745
//              
 
3746
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3747
//                      return visitor.VisitQueryExpressionSelectVBClause(this, data);
 
3748
//              }
 
3749
//              
 
3750
//              public override string ToString() {
 
3751
//                      return string.Format("[QueryExpressionSelectVBClause Variables={0}]", GetCollectionString(Variables));
 
3752
//              }
 
3753
//      }
 
3754
//      
 
3755
//      public class QueryExpressionWhereClause : QueryExpressionClause {
 
3756
//              
 
3757
//              Expression condition;
 
3758
//              
 
3759
//              public Expression Condition {
 
3760
//                      get {
 
3761
//                              return condition;
 
3762
//                      }
 
3763
//                      set {
 
3764
//                              condition = value ?? Expression.Null;
 
3765
//                              if (!condition.IsNull) condition.Parent = this;
 
3766
//                      }
 
3767
//              }
 
3768
//              
 
3769
//              public QueryExpressionWhereClause() {
 
3770
//                      condition = Expression.Null;
 
3771
//              }
 
3772
//              
 
3773
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3774
//                      return visitor.VisitQueryExpressionWhereClause(this, data);
 
3775
//              }
 
3776
//              
 
3777
//              public override string ToString() {
 
3778
//                      return string.Format("[QueryExpressionWhereClause Condition={0}]", Condition);
 
3779
//              }
 
3780
//      }
 
3781
//      
 
3782
//      public class RaiseEventStatement : Statement {
 
3783
//              
 
3784
//              string eventName;
 
3785
//              
 
3786
//              List<Expression> arguments;
 
3787
//              
 
3788
//              public string EventName {
 
3789
//                      get {
 
3790
//                              return eventName;
 
3791
//                      }
 
3792
//                      set {
 
3793
//                              eventName = value ?? "";
 
3794
//                      }
 
3795
//              }
 
3796
//              
 
3797
//              public List<Expression> Arguments {
 
3798
//                      get {
 
3799
//                              return arguments;
 
3800
//                      }
 
3801
//                      set {
 
3802
//                              arguments = value ?? new List<Expression>();
 
3803
//                      }
 
3804
//              }
 
3805
//              
 
3806
//              public RaiseEventStatement(string eventName, List<Expression> arguments) {
 
3807
//                      EventName = eventName;
 
3808
//                      Arguments = arguments;
 
3809
//              }
 
3810
//              
 
3811
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3812
//                      return visitor.VisitRaiseEventStatement(this, data);
 
3813
//              }
 
3814
//              
 
3815
//              public override string ToString() {
 
3816
//                      return string.Format("[RaiseEventStatement EventName={0} Arguments={1}]", EventName, GetCollectionString(Arguments));
 
3817
//              }
 
3818
//      }
 
3819
//      
 
3820
//      public class ReDimStatement : Statement {
 
3821
//              
 
3822
//              List<InvocationExpression> reDimClauses;
 
3823
//              
 
3824
//              bool isPreserve;
 
3825
//              
 
3826
//              public List<InvocationExpression> ReDimClauses {
 
3827
//                      get {
 
3828
//                              return reDimClauses;
 
3829
//                      }
 
3830
//                      set {
 
3831
//                              reDimClauses = value ?? new List<InvocationExpression>();
 
3832
//                      }
 
3833
//              }
 
3834
//              
 
3835
//              public bool IsPreserve {
 
3836
//                      get {
 
3837
//                              return isPreserve;
 
3838
//                      }
 
3839
//                      set {
 
3840
//                              isPreserve = value;
 
3841
//                      }
 
3842
//              }
 
3843
//              
 
3844
//              public ReDimStatement(bool isPreserve) {
 
3845
//                      IsPreserve = isPreserve;
 
3846
//                      reDimClauses = new List<InvocationExpression>();
 
3847
//              }
 
3848
//              
 
3849
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3850
//                      return visitor.VisitReDimStatement(this, data);
 
3851
//              }
 
3852
//              
 
3853
//              public override string ToString() {
 
3854
//                      return string.Format("[ReDimStatement ReDimClauses={0} IsPreserve={1}]", GetCollectionString(ReDimClauses), IsPreserve);
 
3855
//              }
 
3856
//      }
 
3857
//      
 
3858
//      public class RemoveHandlerStatement : Statement {
 
3859
//              
 
3860
//              Expression eventExpression;
 
3861
//              
 
3862
//              Expression handlerExpression;
 
3863
//              
 
3864
//              public Expression EventExpression {
 
3865
//                      get {
 
3866
//                              return eventExpression;
 
3867
//                      }
 
3868
//                      set {
 
3869
//                              eventExpression = value ?? Expression.Null;
 
3870
//                              if (!eventExpression.IsNull) eventExpression.Parent = this;
 
3871
//                      }
 
3872
//              }
 
3873
//              
 
3874
//              public Expression HandlerExpression {
 
3875
//                      get {
 
3876
//                              return handlerExpression;
 
3877
//                      }
 
3878
//                      set {
 
3879
//                              handlerExpression = value ?? Expression.Null;
 
3880
//                              if (!handlerExpression.IsNull) handlerExpression.Parent = this;
 
3881
//                      }
 
3882
//              }
 
3883
//              
 
3884
//              public RemoveHandlerStatement(Expression eventExpression, Expression handlerExpression) {
 
3885
//                      EventExpression = eventExpression;
 
3886
//                      HandlerExpression = handlerExpression;
 
3887
//              }
 
3888
//              
 
3889
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3890
//                      return visitor.VisitRemoveHandlerStatement(this, data);
 
3891
//              }
 
3892
//              
 
3893
//              public override string ToString() {
 
3894
//                      return string.Format("[RemoveHandlerStatement EventExpression={0} HandlerExpression={1}]", EventExpression, HandlerExpression);
 
3895
//              }
 
3896
//      }
 
3897
//      
 
3898
//      public class ResumeStatement : Statement {
 
3899
//              
 
3900
//              string labelName;
 
3901
//              
 
3902
//              bool isResumeNext;
 
3903
//              
 
3904
//              public string LabelName {
 
3905
//                      get {
 
3906
//                              return labelName;
 
3907
//                      }
 
3908
//                      set {
 
3909
//                              labelName = value ?? "";
 
3910
//                      }
 
3911
//              }
 
3912
//              
 
3913
//              public bool IsResumeNext {
 
3914
//                      get {
 
3915
//                              return isResumeNext;
 
3916
//                      }
 
3917
//                      set {
 
3918
//                              isResumeNext = value;
 
3919
//                      }
 
3920
//              }
 
3921
//              
 
3922
//              public ResumeStatement(bool isResumeNext) {
 
3923
//                      IsResumeNext = isResumeNext;
 
3924
//                      labelName = "";
 
3925
//              }
 
3926
//              
 
3927
//              public ResumeStatement(string labelName) {
 
3928
//                      LabelName = labelName;
 
3929
//              }
 
3930
//              
 
3931
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3932
//                      return visitor.VisitResumeStatement(this, data);
 
3933
//              }
 
3934
//              
 
3935
//              public override string ToString() {
 
3936
//                      return string.Format("[ResumeStatement LabelName={0} IsResumeNext={1}]", LabelName, IsResumeNext);
 
3937
//              }
 
3938
//      }
 
3939
//      
 
3940
//      public class ReturnStatement : Statement {
 
3941
//              
 
3942
//              Expression expression;
 
3943
//              
 
3944
//              public Expression Expression {
 
3945
//                      get {
 
3946
//                              return expression;
 
3947
//                      }
 
3948
//                      set {
 
3949
//                              expression = value ?? Expression.Null;
 
3950
//                              if (!expression.IsNull) expression.Parent = this;
 
3951
//                      }
 
3952
//              }
 
3953
//              
 
3954
//              public ReturnStatement(Expression expression) {
 
3955
//                      Expression = expression;
 
3956
//              }
 
3957
//              
 
3958
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3959
//                      return visitor.VisitReturnStatement(this, data);
 
3960
//              }
 
3961
//              
 
3962
//              public override string ToString() {
 
3963
//                      return string.Format("[ReturnStatement Expression={0}]", Expression);
 
3964
//              }
 
3965
//      }
 
3966
//      
 
3967
//      public class StopStatement : Statement {
 
3968
//              
 
3969
//              public StopStatement() {
 
3970
//              }
 
3971
//              
 
3972
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
3973
//                      return visitor.VisitStopStatement(this, data);
 
3974
//              }
 
3975
//              
 
3976
//              public override string ToString() {
 
3977
//                      return "[StopStatement]";
 
3978
//              }
 
3979
//      }
 
3980
//      
 
3981
//      public class SwitchSection : BlockStatement {
 
3982
//              
 
3983
//              List<CaseLabel> switchLabels;
 
3984
//              
 
3985
//              public List<CaseLabel> SwitchLabels {
 
3986
//                      get {
 
3987
//                              return switchLabels;
 
3988
//                      }
 
3989
//                      set {
 
3990
//                              switchLabels = value ?? new List<CaseLabel>();
 
3991
//                      }
 
3992
//              }
 
3993
//              
 
3994
//              public SwitchSection() {
 
3995
//                      switchLabels = new List<CaseLabel>();
 
3996
//              }
 
3997
//              
 
3998
//              public SwitchSection(List<CaseLabel> switchLabels) {
 
3999
//                      SwitchLabels = switchLabels;
 
4000
//              }
 
4001
//              
 
4002
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4003
//                      return visitor.VisitSwitchSection(this, data);
 
4004
//              }
 
4005
//              
 
4006
//              public override string ToString() {
 
4007
//                      return string.Format("[SwitchSection SwitchLabels={0}]", GetCollectionString(SwitchLabels));
 
4008
//              }
 
4009
//      }
 
4010
//      
 
4011
//      public class SwitchStatement : Statement {
 
4012
//              
 
4013
//              Expression switchExpression;
 
4014
//              
 
4015
//              List<SwitchSection> switchSections;
 
4016
//              
 
4017
//              public Expression SwitchExpression {
 
4018
//                      get {
 
4019
//                              return switchExpression;
 
4020
//                      }
 
4021
//                      set {
 
4022
//                              switchExpression = value ?? Expression.Null;
 
4023
//                              if (!switchExpression.IsNull) switchExpression.Parent = this;
 
4024
//                      }
 
4025
//              }
 
4026
//              
 
4027
//              public List<SwitchSection> SwitchSections {
 
4028
//                      get {
 
4029
//                              return switchSections;
 
4030
//                      }
 
4031
//                      set {
 
4032
//                              switchSections = value ?? new List<SwitchSection>();
 
4033
//                      }
 
4034
//              }
 
4035
//              
 
4036
//              public SwitchStatement(Expression switchExpression, List<SwitchSection> switchSections) {
 
4037
//                      SwitchExpression = switchExpression;
 
4038
//                      SwitchSections = switchSections;
 
4039
//              }
 
4040
//              
 
4041
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4042
//                      return visitor.VisitSwitchStatement(this, data);
 
4043
//              }
 
4044
//              
 
4045
//              public override string ToString() {
 
4046
//                      return string.Format("[SwitchStatement SwitchExpression={0} SwitchSections={1}]", SwitchExpression, GetCollectionString(SwitchSections));
 
4047
//              }
 
4048
//      }
 
4049
//      
 
4050
//      public class TemplateDefinition : AttributedNode {
 
4051
//              
 
4052
//              string name;
 
4053
//              
 
4054
//              VarianceModifier varianceModifier;
 
4055
//              
 
4056
//              List<TypeReference> bases;
 
4057
//              
 
4058
//              public string Name {
 
4059
//                      get {
 
4060
//                              return name;
 
4061
//                      }
 
4062
//                      set {
 
4063
//                              name = string.IsNullOrEmpty(value) ? "?" : value;
 
4064
//                      }
 
4065
//              }
 
4066
//              
 
4067
//              public VarianceModifier VarianceModifier {
 
4068
//                      get {
 
4069
//                              return varianceModifier;
 
4070
//                      }
 
4071
//                      set {
 
4072
//                              varianceModifier = value;
 
4073
//                      }
 
4074
//              }
 
4075
//              
 
4076
//              public List<TypeReference> Bases {
 
4077
//                      get {
 
4078
//                              return bases;
 
4079
//                      }
 
4080
//                      set {
 
4081
//                              bases = value ?? new List<TypeReference>();
 
4082
//                      }
 
4083
//              }
 
4084
//              
 
4085
//              public TemplateDefinition() {
 
4086
//                      name = "?";
 
4087
//                      bases = new List<TypeReference>();
 
4088
//              }
 
4089
//              
 
4090
//              public TemplateDefinition(string name, List<AttributeSection> attributes) {
 
4091
//                      Name = name;
 
4092
//                      Attributes = attributes;
 
4093
//                      bases = new List<TypeReference>();
 
4094
//              }
 
4095
//              
 
4096
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4097
//                      return visitor.VisitTemplateDefinition(this, data);
 
4098
//              }
 
4099
//              
 
4100
//              public override string ToString() {
 
4101
//                      return string.Format("[TemplateDefinition Name={0} VarianceModifier={1} Bases={2} Attributes={3} Modifi" +
 
4102
//                                           "er={4}]", Name, VarianceModifier, GetCollectionString(Bases), GetCollectionString(Attributes), Modifier);
 
4103
//              }
 
4104
//      }
 
4105
//      
 
4106
//      public class ThisReferenceExpression : Expression {
 
4107
//              
 
4108
//              public ThisReferenceExpression() {
 
4109
//              }
 
4110
//              
 
4111
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4112
//                      return visitor.VisitThisReferenceExpression(this, data);
 
4113
//              }
 
4114
//              
 
4115
//              public override string ToString() {
 
4116
//                      return "[ThisReferenceExpression]";
 
4117
//              }
 
4118
//      }
 
4119
//      
 
4120
//      public class ThrowStatement : Statement {
 
4121
//              
 
4122
//              Expression expression;
 
4123
//              
 
4124
//              public Expression Expression {
 
4125
//                      get {
 
4126
//                              return expression;
 
4127
//                      }
 
4128
//                      set {
 
4129
//                              expression = value ?? Expression.Null;
 
4130
//                              if (!expression.IsNull) expression.Parent = this;
 
4131
//                      }
 
4132
//              }
 
4133
//              
 
4134
//              public ThrowStatement(Expression expression) {
 
4135
//                      Expression = expression;
 
4136
//              }
 
4137
//              
 
4138
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4139
//                      return visitor.VisitThrowStatement(this, data);
 
4140
//              }
 
4141
//              
 
4142
//              public override string ToString() {
 
4143
//                      return string.Format("[ThrowStatement Expression={0}]", Expression);
 
4144
//              }
 
4145
//      }
 
4146
//      
 
4147
//      public class TryCatchStatement : Statement {
 
4148
//              
 
4149
//              Statement statementBlock;
 
4150
//              
 
4151
//              List<CatchClause> catchClauses;
 
4152
//              
 
4153
//              Statement finallyBlock;
 
4154
//              
 
4155
//              public Statement StatementBlock {
 
4156
//                      get {
 
4157
//                              return statementBlock;
 
4158
//                      }
 
4159
//                      set {
 
4160
//                              statementBlock = value ?? Statement.Null;
 
4161
//                              if (!statementBlock.IsNull) statementBlock.Parent = this;
 
4162
//                      }
 
4163
//              }
 
4164
//              
 
4165
//              public List<CatchClause> CatchClauses {
 
4166
//                      get {
 
4167
//                              return catchClauses;
 
4168
//                      }
 
4169
//                      set {
 
4170
//                              catchClauses = value ?? new List<CatchClause>();
 
4171
//                      }
 
4172
//              }
 
4173
//              
 
4174
//              public Statement FinallyBlock {
 
4175
//                      get {
 
4176
//                              return finallyBlock;
 
4177
//                      }
 
4178
//                      set {
 
4179
//                              finallyBlock = value ?? Statement.Null;
 
4180
//                              if (!finallyBlock.IsNull) finallyBlock.Parent = this;
 
4181
//                      }
 
4182
//              }
 
4183
//              
 
4184
//              public TryCatchStatement(Statement statementBlock, List<CatchClause> catchClauses, Statement finallyBlock) {
 
4185
//                      StatementBlock = statementBlock;
 
4186
//                      CatchClauses = catchClauses;
 
4187
//                      FinallyBlock = finallyBlock;
 
4188
//              }
 
4189
//              
 
4190
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4191
//                      return visitor.VisitTryCatchStatement(this, data);
 
4192
//              }
 
4193
//              
 
4194
//              public override string ToString() {
 
4195
//                      return string.Format("[TryCatchStatement StatementBlock={0} CatchClauses={1} FinallyBlock={2}]", StatementBlock, GetCollectionString(CatchClauses), FinallyBlock);
 
4196
//              }
 
4197
//      }
 
4198
//      
 
4199
//      public class TypeDeclaration : AttributedNode {
 
4200
//              
 
4201
//              string name;
 
4202
//              
 
4203
//              ClassType type;
 
4204
//              
 
4205
//              List<TypeReference> baseTypes;
 
4206
//              
 
4207
//              List<TemplateDefinition> templates;
 
4208
//              
 
4209
//              Location bodyStartLocation;
 
4210
//              
 
4211
//              public string Name {
 
4212
//                      get {
 
4213
//                              return name;
 
4214
//                      }
 
4215
//                      set {
 
4216
//                              name = value ?? "";
 
4217
//                      }
 
4218
//              }
 
4219
//              
 
4220
//              public ClassType Type {
 
4221
//                      get {
 
4222
//                              return type;
 
4223
//                      }
 
4224
//                      set {
 
4225
//                              type = value;
 
4226
//                      }
 
4227
//              }
 
4228
//              
 
4229
//              public List<TypeReference> BaseTypes {
 
4230
//                      get {
 
4231
//                              return baseTypes;
 
4232
//                      }
 
4233
//                      set {
 
4234
//                              baseTypes = value ?? new List<TypeReference>();
 
4235
//                      }
 
4236
//              }
 
4237
//              
 
4238
//              public List<TemplateDefinition> Templates {
 
4239
//                      get {
 
4240
//                              return templates;
 
4241
//                      }
 
4242
//                      set {
 
4243
//                              templates = value ?? new List<TemplateDefinition>();
 
4244
//                      }
 
4245
//              }
 
4246
//              
 
4247
//              public Location BodyStartLocation {
 
4248
//                      get {
 
4249
//                              return bodyStartLocation;
 
4250
//                      }
 
4251
//                      set {
 
4252
//                              bodyStartLocation = value;
 
4253
//                      }
 
4254
//              }
 
4255
//              
 
4256
//              public TypeDeclaration(Modifiers modifier, List<AttributeSection> attributes) {
 
4257
//                      Modifier = modifier;
 
4258
//                      Attributes = attributes;
 
4259
//                      name = "";
 
4260
//                      baseTypes = new List<TypeReference>();
 
4261
//                      templates = new List<TemplateDefinition>();
 
4262
//                      bodyStartLocation = Location.Empty;
 
4263
//              }
 
4264
//              
 
4265
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4266
//                      return visitor.VisitTypeDeclaration(this, data);
 
4267
//              }
 
4268
//              
 
4269
//              public override string ToString() {
 
4270
//                      return string.Format("[TypeDeclaration Name={0} Type={1} BaseTypes={2} Templates={3} BodyStartLocation=" +
 
4271
//                                           "{4} Attributes={5} Modifier={6}]", Name, Type, GetCollectionString(BaseTypes), GetCollectionString(Templates), BodyStartLocation, GetCollectionString(Attributes), Modifier);
 
4272
//              }
 
4273
//      }
 
4274
//      
 
4275
//      public class TypeOfExpression : Expression {
 
4276
//              
 
4277
//              TypeReference typeReference;
 
4278
//              
 
4279
//              public TypeReference TypeReference {
 
4280
//                      get {
 
4281
//                              return typeReference;
 
4282
//                      }
 
4283
//                      set {
 
4284
//                              typeReference = value ?? TypeReference.Null;
 
4285
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
4286
//                      }
 
4287
//              }
 
4288
//              
 
4289
//              public TypeOfExpression(TypeReference typeReference) {
 
4290
//                      TypeReference = typeReference;
 
4291
//              }
 
4292
//              
 
4293
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4294
//                      return visitor.VisitTypeOfExpression(this, data);
 
4295
//              }
 
4296
//              
 
4297
//              public override string ToString() {
 
4298
//                      return string.Format("[TypeOfExpression TypeReference={0}]", TypeReference);
 
4299
//              }
 
4300
//      }
 
4301
//      
 
4302
//      public class TypeOfIsExpression : Expression {
 
4303
//              
 
4304
//              Expression expression;
 
4305
//              
 
4306
//              TypeReference typeReference;
 
4307
//              
 
4308
//              public Expression Expression {
 
4309
//                      get {
 
4310
//                              return expression;
 
4311
//                      }
 
4312
//                      set {
 
4313
//                              expression = value ?? Expression.Null;
 
4314
//                              if (!expression.IsNull) expression.Parent = this;
 
4315
//                      }
 
4316
//              }
 
4317
//              
 
4318
//              public TypeReference TypeReference {
 
4319
//                      get {
 
4320
//                              return typeReference;
 
4321
//                      }
 
4322
//                      set {
 
4323
//                              typeReference = value ?? TypeReference.Null;
 
4324
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
4325
//                      }
 
4326
//              }
 
4327
//              
 
4328
//              public TypeOfIsExpression(Expression expression, TypeReference typeReference) {
 
4329
//                      Expression = expression;
 
4330
//                      TypeReference = typeReference;
 
4331
//              }
 
4332
//              
 
4333
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4334
//                      return visitor.VisitTypeOfIsExpression(this, data);
 
4335
//              }
 
4336
//              
 
4337
//              public override string ToString() {
 
4338
//                      return string.Format("[TypeOfIsExpression Expression={0} TypeReference={1}]", Expression, TypeReference);
 
4339
//              }
 
4340
//      }
 
4341
//      
 
4342
//      public class TypeReferenceExpression : Expression {
 
4343
//              
 
4344
//              TypeReference typeReference;
 
4345
//              
 
4346
//              public TypeReference TypeReference {
 
4347
//                      get {
 
4348
//                              return typeReference;
 
4349
//                      }
 
4350
//                      set {
 
4351
//                              typeReference = value ?? TypeReference.Null;
 
4352
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
4353
//                      }
 
4354
//              }
 
4355
//              
 
4356
//              public TypeReferenceExpression(TypeReference typeReference) {
 
4357
//                      TypeReference = typeReference;
 
4358
//              }
 
4359
//              
 
4360
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4361
//                      return visitor.VisitTypeReferenceExpression(this, data);
 
4362
//              }
 
4363
//              
 
4364
//              public override string ToString() {
 
4365
//                      return string.Format("[TypeReferenceExpression TypeReference={0}]", TypeReference);
 
4366
//              }
 
4367
//      }
 
4368
//      
 
4369
//      public class UnaryOperatorExpression : Expression {
 
4370
//              
 
4371
//              UnaryOperatorType op;
 
4372
//              
 
4373
//              Expression expression;
 
4374
//              
 
4375
//              public UnaryOperatorType Op {
 
4376
//                      get {
 
4377
//                              return op;
 
4378
//                      }
 
4379
//                      set {
 
4380
//                              op = value;
 
4381
//                      }
 
4382
//              }
 
4383
//              
 
4384
//              public Expression Expression {
 
4385
//                      get {
 
4386
//                              return expression;
 
4387
//                      }
 
4388
//                      set {
 
4389
//                              expression = value ?? Expression.Null;
 
4390
//                              if (!expression.IsNull) expression.Parent = this;
 
4391
//                      }
 
4392
//              }
 
4393
//              
 
4394
//              public UnaryOperatorExpression(UnaryOperatorType op) {
 
4395
//                      Op = op;
 
4396
//                      expression = Expression.Null;
 
4397
//              }
 
4398
//              
 
4399
//              public UnaryOperatorExpression(Expression expression, UnaryOperatorType op) {
 
4400
//                      Expression = expression;
 
4401
//                      Op = op;
 
4402
//              }
 
4403
//              
 
4404
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4405
//                      return visitor.VisitUnaryOperatorExpression(this, data);
 
4406
//              }
 
4407
//              
 
4408
//              public override string ToString() {
 
4409
//                      return string.Format("[UnaryOperatorExpression Op={0} Expression={1}]", Op, Expression);
 
4410
//              }
 
4411
//      }
 
4412
//      
 
4413
//      public class UsingStatement : StatementWithEmbeddedStatement {
 
4414
//              
 
4415
//              Statement resourceAcquisition;
 
4416
//              
 
4417
//              public Statement ResourceAcquisition {
 
4418
//                      get {
 
4419
//                              return resourceAcquisition;
 
4420
//                      }
 
4421
//                      set {
 
4422
//                              resourceAcquisition = value ?? Statement.Null;
 
4423
//                              if (!resourceAcquisition.IsNull) resourceAcquisition.Parent = this;
 
4424
//                      }
 
4425
//              }
 
4426
//              
 
4427
//              public UsingStatement(Statement resourceAcquisition, Statement embeddedStatement) {
 
4428
//                      ResourceAcquisition = resourceAcquisition;
 
4429
//                      EmbeddedStatement = embeddedStatement;
 
4430
//              }
 
4431
//              
 
4432
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4433
//                      return visitor.VisitUsingStatement(this, data);
 
4434
//              }
 
4435
//              
 
4436
//              public override string ToString() {
 
4437
//                      return string.Format("[UsingStatement ResourceAcquisition={0} EmbeddedStatement={1}]", ResourceAcquisition, EmbeddedStatement);
 
4438
//              }
 
4439
//      }
 
4440
//      
 
4441
//      public class VariableDeclaration : AbstractNode {
 
4442
//              
 
4443
//              string name;
 
4444
//              
 
4445
//              Expression initializer;
 
4446
//              
 
4447
//              TypeReference typeReference;
 
4448
//              
 
4449
//              Expression fixedArrayInitialization;
 
4450
//              
 
4451
//              public string Name {
 
4452
//                      get {
 
4453
//                              return name;
 
4454
//                      }
 
4455
//                      set {
 
4456
//                              name = value ?? "";
 
4457
//                      }
 
4458
//              }
 
4459
//              
 
4460
//              public Expression Initializer {
 
4461
//                      get {
 
4462
//                              return initializer;
 
4463
//                      }
 
4464
//                      set {
 
4465
//                              initializer = value ?? Expression.Null;
 
4466
//                              if (!initializer.IsNull) initializer.Parent = this;
 
4467
//                      }
 
4468
//              }
 
4469
//              
 
4470
//              public TypeReference TypeReference {
 
4471
//                      get {
 
4472
//                              return typeReference;
 
4473
//                      }
 
4474
//                      set {
 
4475
//                              typeReference = value ?? TypeReference.Null;
 
4476
//                              if (!typeReference.IsNull) typeReference.Parent = this;
 
4477
//                      }
 
4478
//              }
 
4479
//              
 
4480
//              public Expression FixedArrayInitialization {
 
4481
//                      get {
 
4482
//                              return fixedArrayInitialization;
 
4483
//                      }
 
4484
//                      set {
 
4485
//                              fixedArrayInitialization = value ?? Expression.Null;
 
4486
//                              if (!fixedArrayInitialization.IsNull) fixedArrayInitialization.Parent = this;
 
4487
//                      }
 
4488
//              }
 
4489
//              
 
4490
//              public VariableDeclaration(string name) {
 
4491
//                      Name = name;
 
4492
//                      initializer = Expression.Null;
 
4493
//                      typeReference = TypeReference.Null;
 
4494
//                      fixedArrayInitialization = Expression.Null;
 
4495
//              }
 
4496
//              
 
4497
//              public VariableDeclaration(string name, Expression initializer) {
 
4498
//                      Name = name;
 
4499
//                      Initializer = initializer;
 
4500
//                      typeReference = TypeReference.Null;
 
4501
//                      fixedArrayInitialization = Expression.Null;
 
4502
//              }
 
4503
//              
 
4504
//              public VariableDeclaration(string name, Expression initializer, TypeReference typeReference) {
 
4505
//                      Name = name;
 
4506
//                      Initializer = initializer;
 
4507
//                      TypeReference = typeReference;
 
4508
//                      fixedArrayInitialization = Expression.Null;
 
4509
//              }
 
4510
//              
 
4511
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4512
//                      return visitor.VisitVariableDeclaration(this, data);
 
4513
//              }
 
4514
//              
 
4515
//              public override string ToString() {
 
4516
//                      return string.Format("[VariableDeclaration Name={0} Initializer={1} TypeReference={2} FixedArrayInitial" +
 
4517
//                                           "ization={3}]", Name, Initializer, TypeReference, FixedArrayInitialization);
 
4518
//              }
 
4519
//      }
 
4520
//      
 
4521
//      public class WithStatement : Statement {
 
4522
//              
 
4523
//              Expression expression;
 
4524
//              
 
4525
//              BlockStatement body;
 
4526
//              
 
4527
//              public Expression Expression {
 
4528
//                      get {
 
4529
//                              return expression;
 
4530
//                      }
 
4531
//                      set {
 
4532
//                              expression = value ?? Expression.Null;
 
4533
//                              if (!expression.IsNull) expression.Parent = this;
 
4534
//                      }
 
4535
//              }
 
4536
//              
 
4537
//              public BlockStatement Body {
 
4538
//                      get {
 
4539
//                              return body;
 
4540
//                      }
 
4541
//                      set {
 
4542
//                              body = value ?? BlockStatement.Null;
 
4543
//                              if (!body.IsNull) body.Parent = this;
 
4544
//                      }
 
4545
//              }
 
4546
//              
 
4547
//              public WithStatement(Expression expression) {
 
4548
//                      Expression = expression;
 
4549
//                      body = BlockStatement.Null;
 
4550
//              }
 
4551
//              
 
4552
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4553
//                      return visitor.VisitWithStatement(this, data);
 
4554
//              }
 
4555
//              
 
4556
//              public override string ToString() {
 
4557
//                      return string.Format("[WithStatement Expression={0} Body={1}]", Expression, Body);
 
4558
//              }
 
4559
//      }
 
4560
//      
 
4561
//      public class XmlAttributeExpression : XmlExpression {
 
4562
//              
 
4563
//              string name;
 
4564
//              
 
4565
//              string literalValue;
 
4566
//              
 
4567
//              bool useDoubleQuotes;
 
4568
//              
 
4569
//              Expression expressionValue;
 
4570
//              
 
4571
//              public string Name {
 
4572
//                      get {
 
4573
//                              return name;
 
4574
//                      }
 
4575
//                      set {
 
4576
//                              name = value ?? "";
 
4577
//                      }
 
4578
//              }
 
4579
//              
 
4580
//              public string LiteralValue {
 
4581
//                      get {
 
4582
//                              return literalValue;
 
4583
//                      }
 
4584
//                      set {
 
4585
//                              literalValue = value ?? "";
 
4586
//                      }
 
4587
//              }
 
4588
//              
 
4589
//              public bool UseDoubleQuotes {
 
4590
//                      get {
 
4591
//                              return useDoubleQuotes;
 
4592
//                      }
 
4593
//                      set {
 
4594
//                              useDoubleQuotes = value;
 
4595
//                      }
 
4596
//              }
 
4597
//              
 
4598
//              public Expression ExpressionValue {
 
4599
//                      get {
 
4600
//                              return expressionValue;
 
4601
//                      }
 
4602
//                      set {
 
4603
//                              expressionValue = value ?? Expression.Null;
 
4604
//                              if (!expressionValue.IsNull) expressionValue.Parent = this;
 
4605
//                      }
 
4606
//              }
 
4607
//              
 
4608
//              public XmlAttributeExpression() {
 
4609
//                      name = "";
 
4610
//                      literalValue = "";
 
4611
//                      expressionValue = Expression.Null;
 
4612
//              }
 
4613
//              
 
4614
//              public bool IsLiteralValue {
 
4615
//                      get {
 
4616
//                              return expressionValue.IsNull;
 
4617
//                      }
 
4618
//              }
 
4619
//              
 
4620
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4621
//                      return visitor.VisitXmlAttributeExpression(this, data);
 
4622
//              }
 
4623
//              
 
4624
//              public override string ToString() {
 
4625
//                      return string.Format("[XmlAttributeExpression Name={0} LiteralValue={1} UseDoubleQuotes={2} ExpressionV" +
 
4626
//                                           "alue={3}]", Name, LiteralValue, UseDoubleQuotes, ExpressionValue);
 
4627
//              }
 
4628
//      }
 
4629
//      
 
4630
//      public class XmlContentExpression : XmlExpression {
 
4631
//              
 
4632
//              string content;
 
4633
//              
 
4634
//              XmlContentType type;
 
4635
//              
 
4636
//              public string Content {
 
4637
//                      get {
 
4638
//                              return content;
 
4639
//                      }
 
4640
//                      set {
 
4641
//                              content = value ?? "";
 
4642
//                      }
 
4643
//              }
 
4644
//              
 
4645
//              public XmlContentType Type {
 
4646
//                      get {
 
4647
//                              return type;
 
4648
//                      }
 
4649
//                      set {
 
4650
//                              type = value;
 
4651
//                      }
 
4652
//              }
 
4653
//              
 
4654
//              public XmlContentExpression(string content, XmlContentType type) {
 
4655
//                      Content = content;
 
4656
//                      Type = type;
 
4657
//              }
 
4658
//              
 
4659
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4660
//                      return visitor.VisitXmlContentExpression(this, data);
 
4661
//              }
 
4662
//              
 
4663
//              public override string ToString() {
 
4664
//                      return string.Format("[XmlContentExpression Content={0} Type={1}]", Content, Type);
 
4665
//              }
 
4666
//      }
 
4667
//      
 
4668
//      public class XmlDocumentExpression : XmlExpression {
 
4669
//              
 
4670
//              List<XmlExpression> expressions;
 
4671
//              
 
4672
//              public List<XmlExpression> Expressions {
 
4673
//                      get {
 
4674
//                              return expressions;
 
4675
//                      }
 
4676
//                      set {
 
4677
//                              expressions = value ?? new List<XmlExpression>();
 
4678
//                      }
 
4679
//              }
 
4680
//              
 
4681
//              public XmlDocumentExpression() {
 
4682
//                      expressions = new List<XmlExpression>();
 
4683
//              }
 
4684
//              
 
4685
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4686
//                      return visitor.VisitXmlDocumentExpression(this, data);
 
4687
//              }
 
4688
//              
 
4689
//              public override string ToString() {
 
4690
//                      return string.Format("[XmlDocumentExpression Expressions={0}]", GetCollectionString(Expressions));
 
4691
//              }
 
4692
//      }
 
4693
//      
 
4694
//      public class XmlElementExpression : XmlExpression {
 
4695
//              
 
4696
//              Expression content;
 
4697
//              
 
4698
//              Expression nameExpression;
 
4699
//              
 
4700
//              string xmlName;
 
4701
//              
 
4702
//              List<XmlExpression> attributes;
 
4703
//              
 
4704
//              public Expression Content {
 
4705
//                      get {
 
4706
//                              return content;
 
4707
//                      }
 
4708
//                      set {
 
4709
//                              content = value ?? Expression.Null;
 
4710
//                              if (!content.IsNull) content.Parent = this;
 
4711
//                      }
 
4712
//              }
 
4713
//              
 
4714
//              public Expression NameExpression {
 
4715
//                      get {
 
4716
//                              return nameExpression;
 
4717
//                      }
 
4718
//                      set {
 
4719
//                              nameExpression = value ?? Expression.Null;
 
4720
//                              if (!nameExpression.IsNull) nameExpression.Parent = this;
 
4721
//                      }
 
4722
//              }
 
4723
//              
 
4724
//              public string XmlName {
 
4725
//                      get {
 
4726
//                              return xmlName;
 
4727
//                      }
 
4728
//                      set {
 
4729
//                              xmlName = value ?? "";
 
4730
//                      }
 
4731
//              }
 
4732
//              
 
4733
//              public List<XmlExpression> Attributes {
 
4734
//                      get {
 
4735
//                              return attributes;
 
4736
//                      }
 
4737
//                      set {
 
4738
//                              attributes = value ?? new List<XmlExpression>();
 
4739
//                      }
 
4740
//              }
 
4741
//              
 
4742
//              public XmlElementExpression() {
 
4743
//                      content = Expression.Null;
 
4744
//                      nameExpression = Expression.Null;
 
4745
//                      xmlName = "";
 
4746
//                      attributes = new List<XmlExpression>();
 
4747
//              }
 
4748
//              
 
4749
//              public bool IsExpression {
 
4750
//                      get {
 
4751
//                              return !content.IsNull;
 
4752
//                      }
 
4753
//              }
 
4754
//              
 
4755
//              public bool NameIsExpression {
 
4756
//                      get {
 
4757
//                              return !nameExpression.IsNull;
 
4758
//                      }
 
4759
//              }
 
4760
//              
 
4761
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4762
//                      return visitor.VisitXmlElementExpression(this, data);
 
4763
//              }
 
4764
//              
 
4765
//              public override string ToString() {
 
4766
//                      return string.Format("[XmlElementExpression Content={0} NameExpression={1} XmlName={2} Attributes={3}]", Content, NameExpression, XmlName, GetCollectionString(Attributes));
 
4767
//              }
 
4768
//      }
 
4769
//      
 
4770
//      public class XmlEmbeddedExpression : XmlExpression {
 
4771
//              
 
4772
//              Expression inlineVBExpression;
 
4773
//              
 
4774
//              public Expression InlineVBExpression {
 
4775
//                      get {
 
4776
//                              return inlineVBExpression;
 
4777
//                      }
 
4778
//                      set {
 
4779
//                              inlineVBExpression = value ?? Expression.Null;
 
4780
//                              if (!inlineVBExpression.IsNull) inlineVBExpression.Parent = this;
 
4781
//                      }
 
4782
//              }
 
4783
//              
 
4784
//              public XmlEmbeddedExpression() {
 
4785
//                      inlineVBExpression = Expression.Null;
 
4786
//              }
 
4787
//              
 
4788
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4789
//                      return visitor.VisitXmlEmbeddedExpression(this, data);
 
4790
//              }
 
4791
//              
 
4792
//              public override string ToString() {
 
4793
//                      return string.Format("[XmlEmbeddedExpression InlineVBExpression={0}]", InlineVBExpression);
 
4794
//              }
 
4795
//      }
 
4796
//      
 
4797
//      public abstract class XmlExpression : Expression {
 
4798
//              
 
4799
//              protected XmlExpression() {
 
4800
//              }
 
4801
//      }
 
4802
//      
 
4803
//      public class XmlMemberAccessExpression : Expression {
 
4804
//              
 
4805
//              Expression targetObject;
 
4806
//              
 
4807
//              XmlAxisType axisType;
 
4808
//              
 
4809
//              bool isXmlIdentifier;
 
4810
//              
 
4811
//              string identifier;
 
4812
//              
 
4813
//              public Expression TargetObject {
 
4814
//                      get {
 
4815
//                              return targetObject;
 
4816
//                      }
 
4817
//                      set {
 
4818
//                              targetObject = value ?? Expression.Null;
 
4819
//                              if (!targetObject.IsNull) targetObject.Parent = this;
 
4820
//                      }
 
4821
//              }
 
4822
//              
 
4823
//              public XmlAxisType AxisType {
 
4824
//                      get {
 
4825
//                              return axisType;
 
4826
//                      }
 
4827
//                      set {
 
4828
//                              axisType = value;
 
4829
//                      }
 
4830
//              }
 
4831
//              
 
4832
//              public bool IsXmlIdentifier {
 
4833
//                      get {
 
4834
//                              return isXmlIdentifier;
 
4835
//                      }
 
4836
//                      set {
 
4837
//                              isXmlIdentifier = value;
 
4838
//                      }
 
4839
//              }
 
4840
//              
 
4841
//              public string Identifier {
 
4842
//                      get {
 
4843
//                              return identifier;
 
4844
//                      }
 
4845
//                      set {
 
4846
//                              identifier = value ?? "";
 
4847
//                      }
 
4848
//              }
 
4849
//              
 
4850
//              public XmlMemberAccessExpression(Expression targetObject, XmlAxisType axisType, string identifier, bool isXmlIdentifier) {
 
4851
//                      TargetObject = targetObject;
 
4852
//                      AxisType = axisType;
 
4853
//                      Identifier = identifier;
 
4854
//                      IsXmlIdentifier = isXmlIdentifier;
 
4855
//              }
 
4856
//              
 
4857
//              public override object AcceptVisitor(IAstVisitor visitor, object data) {
 
4858
//                      return visitor.VisitXmlMemberAccessExpression(this, data);
 
4859
//              }
 
4860
//              
 
4861
//              public override string ToString() {
 
4862
//                      return string.Format("[XmlMemberAccessExpression TargetObject={0} AxisType={1} IsXmlIdentifier={2} Iden" +
 
4863
//                                           "tifier={3}]", TargetObject, AxisType, IsXmlIdentifier, Identifier);
 
4864
//              }
 
4865
//      }
 
4866
//}