1
//------------------------------------------------------------------------------
3
// This code was generated by a tool.
4
// Runtime Version:2.0.50727.3053
6
// Changes to this file may cause incorrect behavior and will be lost if
7
// the code is regenerated.
9
//------------------------------------------------------------------------------
11
namespace ICSharpCode.OldNRefactory.Ast {
13
using System.Collections.Generic;
16
public class AddHandlerStatement : Statement {
18
Expression eventExpression;
20
Expression handlerExpression;
22
public Expression EventExpression {
24
return eventExpression;
27
eventExpression = value ?? Expression.Null;
28
if (!eventExpression.IsNull) eventExpression.Parent = this;
32
public Expression HandlerExpression {
34
return handlerExpression;
37
handlerExpression = value ?? Expression.Null;
38
if (!handlerExpression.IsNull) handlerExpression.Parent = this;
42
public AddHandlerStatement(Expression eventExpression, Expression handlerExpression) {
43
EventExpression = eventExpression;
44
HandlerExpression = handlerExpression;
47
public override object AcceptVisitor(IAstVisitor visitor, object data) {
48
return visitor.VisitAddHandlerStatement(this, data);
51
public override string ToString() {
52
return string.Format("[AddHandlerStatement EventExpression={0} HandlerExpression={1}]", EventExpression, HandlerExpression);
56
public class AddressOfExpression : Expression {
58
Expression expression;
60
public Expression Expression {
65
expression = value ?? Expression.Null;
66
if (!expression.IsNull) expression.Parent = this;
70
public AddressOfExpression(Expression expression) {
71
Expression = expression;
74
public override object AcceptVisitor(IAstVisitor visitor, object data) {
75
return visitor.VisitAddressOfExpression(this, data);
78
public override string ToString() {
79
return string.Format("[AddressOfExpression Expression={0}]", Expression);
83
public class AnonymousMethodExpression : Expression {
85
List<ParameterDeclarationExpression> parameters;
89
bool hasParameterList;
91
public List<ParameterDeclarationExpression> Parameters {
96
parameters = value ?? new List<ParameterDeclarationExpression>();
100
public BlockStatement Body {
105
body = value ?? BlockStatement.Null;
106
if (!body.IsNull) body.Parent = this;
110
public bool HasParameterList {
112
return hasParameterList;
115
hasParameterList = value;
119
public AnonymousMethodExpression() {
120
parameters = new List<ParameterDeclarationExpression>();
121
body = BlockStatement.Null;
124
public override object AcceptVisitor(IAstVisitor visitor, object data) {
125
return visitor.VisitAnonymousMethodExpression(this, data);
128
public override string ToString() {
129
return string.Format("[AnonymousMethodExpression Parameters={0} Body={1} HasParameterList={2}]", GetCollectionString(Parameters), Body, HasParameterList);
133
public class ArrayCreateExpression : Expression {
135
TypeReference createType;
137
List<Expression> arguments;
139
CollectionInitializerExpression arrayInitializer;
141
public TypeReference CreateType {
146
createType = value ?? TypeReference.Null;
147
if (!createType.IsNull) createType.Parent = this;
151
public List<Expression> Arguments {
156
arguments = value ?? new List<Expression>();
160
public CollectionInitializerExpression ArrayInitializer {
162
return arrayInitializer;
165
arrayInitializer = value ?? CollectionInitializerExpression.Null;
166
if (!arrayInitializer.IsNull) arrayInitializer.Parent = this;
170
public ArrayCreateExpression(TypeReference createType) {
171
CreateType = createType;
172
arguments = new List<Expression>();
173
arrayInitializer = CollectionInitializerExpression.Null;
176
public ArrayCreateExpression(TypeReference createType, List<Expression> arguments) {
177
CreateType = createType;
178
Arguments = arguments;
179
arrayInitializer = CollectionInitializerExpression.Null;
182
public ArrayCreateExpression(TypeReference createType, CollectionInitializerExpression arrayInitializer) {
183
CreateType = createType;
184
ArrayInitializer = arrayInitializer;
185
arguments = new List<Expression>();
188
public bool IsImplicitlyTyped {
190
return createType.IsNull || string.IsNullOrEmpty(createType.Type);
194
public override object AcceptVisitor(IAstVisitor visitor, object data) {
195
return visitor.VisitArrayCreateExpression(this, data);
198
public override string ToString() {
199
return string.Format("[ArrayCreateExpression CreateType={0} Arguments={1} ArrayInitializer={2}]", CreateType, GetCollectionString(Arguments), ArrayInitializer);
203
public class AssignmentExpression : Expression {
207
AssignmentOperatorType op;
211
public Expression Left {
216
left = value ?? Expression.Null;
217
if (!left.IsNull) left.Parent = this;
221
public AssignmentOperatorType Op {
230
public Expression Right {
235
right = value ?? Expression.Null;
236
if (!right.IsNull) right.Parent = this;
240
public AssignmentExpression(Expression left, AssignmentOperatorType op, Expression right) {
246
public override object AcceptVisitor(IAstVisitor visitor, object data) {
247
return visitor.VisitAssignmentExpression(this, data);
250
public override string ToString() {
251
return string.Format("[AssignmentExpression Left={0} Op={1} Right={2}]", Left, Op, Right);
255
public class Attribute : AbstractNode {
259
List<Expression> positionalArguments;
261
List<NamedArgumentExpression> namedArguments;
262
public bool IsEmptyCall {
275
public List<Expression> PositionalArguments {
277
return positionalArguments;
280
positionalArguments = value ?? new List<Expression>();
284
public List<NamedArgumentExpression> NamedArguments {
286
return namedArguments;
289
namedArguments = value ?? new List<NamedArgumentExpression>();
295
positionalArguments = new List<Expression>();
296
namedArguments = new List<NamedArgumentExpression>();
299
public Attribute (string name, List<Expression> positionalArguments, List<NamedArgumentExpression> namedArguments)
302
IsEmptyCall = positionalArguments == null && namedArguments == null;
303
PositionalArguments = positionalArguments;
304
NamedArguments = namedArguments;
307
public override object AcceptVisitor(IAstVisitor visitor, object data) {
308
return visitor.VisitAttribute(this, data);
311
public override string ToString() {
312
return string.Format("[Attribute Name={0} PositionalArguments={1} NamedArguments={2}]", Name, GetCollectionString(PositionalArguments), GetCollectionString(NamedArguments));
316
public abstract class AttributedNode : AbstractNode {
318
List<AttributeSection> attributes;
322
public List<AttributeSection> Attributes {
327
attributes = value ?? new List<AttributeSection>();
331
public Modifiers Modifier {
340
protected AttributedNode() {
341
attributes = new List<AttributeSection>();
344
protected AttributedNode(List<AttributeSection> attributes) {
345
Attributes = attributes;
348
protected AttributedNode(Modifiers modifier, List<AttributeSection> attributes) {
350
Attributes = attributes;
354
public class AttributeSection : AbstractNode {
356
string attributeTarget;
358
List<ICSharpCode.OldNRefactory.Ast.Attribute> attributes;
360
public string AttributeTarget {
362
return attributeTarget;
365
attributeTarget = value ?? "";
369
public List<ICSharpCode.OldNRefactory.Ast.Attribute> Attributes {
374
attributes = value ?? new List<Attribute>();
378
public AttributeSection() {
379
attributeTarget = "";
380
attributes = new List<Attribute>();
383
public override object AcceptVisitor(IAstVisitor visitor, object data) {
384
return visitor.VisitAttributeSection(this, data);
387
public override string ToString() {
388
return string.Format("[AttributeSection AttributeTarget={0} Attributes={1}]", AttributeTarget, GetCollectionString(Attributes));
392
public class BaseReferenceExpression : Expression {
394
public BaseReferenceExpression() {
397
public override object AcceptVisitor(IAstVisitor visitor, object data) {
398
return visitor.VisitBaseReferenceExpression(this, data);
401
public override string ToString() {
402
return "[BaseReferenceExpression]";
406
public class BinaryOperatorExpression : Expression {
410
BinaryOperatorType op;
414
public Expression Left {
419
left = value ?? Expression.Null;
420
if (!left.IsNull) left.Parent = this;
424
public BinaryOperatorType Op {
433
public Expression Right {
438
right = value ?? Expression.Null;
439
if (!right.IsNull) right.Parent = this;
443
public BinaryOperatorExpression() {
444
left = Expression.Null;
445
right = Expression.Null;
448
public BinaryOperatorExpression(Expression left, BinaryOperatorType op, Expression right) {
454
public override object AcceptVisitor(IAstVisitor visitor, object data) {
455
return visitor.VisitBinaryOperatorExpression(this, data);
458
public override string ToString() {
459
return string.Format("[BinaryOperatorExpression Left={0} Op={1} Right={2}]", Left, Op, Right);
463
public class BreakStatement : Statement {
465
public BreakStatement() {
468
public override object AcceptVisitor(IAstVisitor visitor, object data) {
469
return visitor.VisitBreakStatement(this, data);
472
public override string ToString() {
473
return "[BreakStatement]";
477
public class CaseLabel : AbstractNode {
481
BinaryOperatorType binaryOperatorType;
483
Expression toExpression;
485
public Expression Label {
490
label = value ?? Expression.Null;
491
if (!label.IsNull) label.Parent = this;
495
public BinaryOperatorType BinaryOperatorType {
497
return binaryOperatorType;
500
binaryOperatorType = value;
504
public Expression ToExpression {
509
toExpression = value ?? Expression.Null;
510
if (!toExpression.IsNull) toExpression.Parent = this;
515
label = Expression.Null;
516
toExpression = Expression.Null;
519
public CaseLabel(Expression label) {
521
toExpression = Expression.Null;
524
public CaseLabel(Expression label, Expression toExpression) {
526
ToExpression = toExpression;
529
public CaseLabel(BinaryOperatorType binaryOperatorType, Expression label) {
530
BinaryOperatorType = binaryOperatorType;
532
toExpression = Expression.Null;
535
public bool IsDefault {
541
public override object AcceptVisitor(IAstVisitor visitor, object data) {
542
return visitor.VisitCaseLabel(this, data);
545
public override string ToString() {
546
return string.Format("[CaseLabel Label={0} BinaryOperatorType={1} ToExpression={2}]", Label, BinaryOperatorType, ToExpression);
550
public class CastExpression : Expression {
552
TypeReference castTo;
554
Expression expression;
558
public TypeReference CastTo {
563
castTo = value ?? TypeReference.Null;
564
if (!castTo.IsNull) castTo.Parent = this;
568
public Expression Expression {
573
expression = value ?? Expression.Null;
574
if (!expression.IsNull) expression.Parent = this;
578
public CastType CastType {
587
public CastExpression(TypeReference castTo) {
589
expression = Expression.Null;
592
public CastExpression(TypeReference castTo, Expression expression, CastType castType) {
594
Expression = expression;
598
public override object AcceptVisitor(IAstVisitor visitor, object data) {
599
return visitor.VisitCastExpression(this, data);
602
public override string ToString() {
603
return string.Format("[CastExpression CastTo={0} Expression={1} CastType={2}]", CastTo, Expression, CastType);
607
public class CatchClause : AbstractNode {
609
TypeReference typeReference;
613
Statement statementBlock;
615
Expression condition;
617
public TypeReference TypeReference {
619
return typeReference;
622
typeReference = value ?? TypeReference.Null;
623
if (!typeReference.IsNull) typeReference.Parent = this;
627
public string VariableName {
632
variableName = value ?? "";
636
public Statement StatementBlock {
638
return statementBlock;
641
statementBlock = value ?? Statement.Null;
642
if (!statementBlock.IsNull) statementBlock.Parent = this;
646
public Expression Condition {
651
condition = value ?? Expression.Null;
652
if (!condition.IsNull) condition.Parent = this;
656
public CatchClause(TypeReference typeReference, string variableName, Statement statementBlock) {
657
TypeReference = typeReference;
658
VariableName = variableName;
659
StatementBlock = statementBlock;
660
condition = Expression.Null;
663
public CatchClause(TypeReference typeReference, string variableName, Statement statementBlock, Expression condition) {
664
TypeReference = typeReference;
665
VariableName = variableName;
666
StatementBlock = statementBlock;
667
Condition = condition;
670
public CatchClause(Statement statementBlock) {
671
StatementBlock = statementBlock;
672
typeReference = TypeReference.Null;
674
condition = Expression.Null;
677
public override object AcceptVisitor(IAstVisitor visitor, object data) {
678
return visitor.VisitCatchClause(this, data);
681
public override string ToString() {
682
return string.Format("[CatchClause TypeReference={0} VariableName={1} StatementBlock={2} Condition={3}]" +
683
"", TypeReference, VariableName, StatementBlock, Condition);
687
public class CheckedExpression : Expression {
689
Expression expression;
691
public Expression Expression {
696
expression = value ?? Expression.Null;
697
if (!expression.IsNull) expression.Parent = this;
701
public CheckedExpression(Expression expression) {
702
Expression = expression;
705
public override object AcceptVisitor(IAstVisitor visitor, object data) {
706
return visitor.VisitCheckedExpression(this, data);
709
public override string ToString() {
710
return string.Format("[CheckedExpression Expression={0}]", Expression);
714
public class CheckedStatement : Statement {
718
public Statement Block {
723
block = value ?? Statement.Null;
724
if (!block.IsNull) block.Parent = this;
728
public CheckedStatement(Statement block) {
732
public override object AcceptVisitor(IAstVisitor visitor, object data) {
733
return visitor.VisitCheckedStatement(this, data);
736
public override string ToString() {
737
return string.Format("[CheckedStatement Block={0}]", Block);
741
public class ClassReferenceExpression : Expression {
743
public ClassReferenceExpression() {
746
public override object AcceptVisitor(IAstVisitor visitor, object data) {
747
return visitor.VisitClassReferenceExpression(this, data);
750
public override string ToString() {
751
return "[ClassReferenceExpression]";
755
public class CollectionInitializerExpression : Expression {
757
List<Expression> createExpressions;
759
public List<Expression> CreateExpressions {
761
return createExpressions;
764
createExpressions = value ?? new List<Expression>();
768
public CollectionInitializerExpression() {
769
createExpressions = new List<Expression>();
772
public CollectionInitializerExpression(List<Expression> createExpressions) {
773
CreateExpressions = createExpressions;
776
public new static CollectionInitializerExpression Null {
778
return NullCollectionInitializerExpression.Instance;
782
public override object AcceptVisitor(IAstVisitor visitor, object data) {
783
return visitor.VisitCollectionInitializerExpression(this, data);
786
public override string ToString() {
787
return string.Format("[CollectionInitializerExpression CreateExpressions={0}]", GetCollectionString(CreateExpressions));
791
internal sealed class NullCollectionInitializerExpression : CollectionInitializerExpression {
793
internal static NullCollectionInitializerExpression Instance = new NullCollectionInitializerExpression();
795
public override bool IsNull {
801
public override object AcceptVisitor(IAstVisitor visitor, object data) {
805
public override string ToString() {
806
return "[NullCollectionInitializerExpression]";
810
public class ConditionalExpression : Expression {
812
Expression condition;
814
Expression trueExpression;
816
Expression falseExpression;
818
public Expression Condition {
823
condition = value ?? Expression.Null;
824
if (!condition.IsNull) condition.Parent = this;
828
public Expression TrueExpression {
830
return trueExpression;
833
trueExpression = value ?? Expression.Null;
834
if (!trueExpression.IsNull) trueExpression.Parent = this;
838
public Expression FalseExpression {
840
return falseExpression;
843
falseExpression = value ?? Expression.Null;
844
if (!falseExpression.IsNull) falseExpression.Parent = this;
848
public ConditionalExpression() {
849
condition = Expression.Null;
850
trueExpression = Expression.Null;
851
falseExpression = Expression.Null;
854
public ConditionalExpression(Expression condition, Expression trueExpression, Expression falseExpression) {
855
Condition = condition;
856
TrueExpression = trueExpression;
857
FalseExpression = falseExpression;
860
public override object AcceptVisitor(IAstVisitor visitor, object data) {
861
return visitor.VisitConditionalExpression(this, data);
864
public override string ToString() {
865
return string.Format("[ConditionalExpression Condition={0} TrueExpression={1} FalseExpression={2}]", Condition, TrueExpression, FalseExpression);
869
public class ConstructorDeclaration : ParametrizedNode {
871
ConstructorInitializer constructorInitializer;
875
public ConstructorInitializer ConstructorInitializer {
877
return constructorInitializer;
880
constructorInitializer = value ?? ConstructorInitializer.Null;
881
if (!constructorInitializer.IsNull) constructorInitializer.Parent = this;
885
public BlockStatement Body {
890
body = value ?? BlockStatement.Null;
891
if (!body.IsNull) body.Parent = this;
895
public ConstructorDeclaration(string name, Modifiers modifier, List<ParameterDeclarationExpression> parameters, List<AttributeSection> attributes) {
898
Parameters = parameters;
899
Attributes = attributes;
900
constructorInitializer = ConstructorInitializer.Null;
901
body = BlockStatement.Null;
904
public ConstructorDeclaration(string name, Modifiers modifier, List<ParameterDeclarationExpression> parameters, ConstructorInitializer constructorInitializer, List<AttributeSection> attributes) {
907
Parameters = parameters;
908
ConstructorInitializer = constructorInitializer;
909
Attributes = attributes;
910
body = BlockStatement.Null;
913
public override object AcceptVisitor(IAstVisitor visitor, object data) {
914
return visitor.VisitConstructorDeclaration(this, data);
917
public override string ToString() {
918
return string.Format("[ConstructorDeclaration ConstructorInitializer={0} Body={1} Name={2} Parameters={" +
919
"3} Attributes={4} Modifier={5}]", ConstructorInitializer, Body, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
923
public class ConstructorInitializer : AbstractNode, INullable {
925
ConstructorInitializerType constructorInitializerType;
927
List<Expression> arguments;
929
public ConstructorInitializerType ConstructorInitializerType {
931
return constructorInitializerType;
934
constructorInitializerType = value;
938
public List<Expression> Arguments {
943
arguments = value ?? new List<Expression>();
947
public ConstructorInitializer() {
948
arguments = new List<Expression>();
951
public virtual bool IsNull {
957
public static ConstructorInitializer Null {
959
return NullConstructorInitializer.Instance;
963
public override object AcceptVisitor(IAstVisitor visitor, object data) {
964
return visitor.VisitConstructorInitializer(this, data);
967
public override string ToString() {
968
return string.Format("[ConstructorInitializer ConstructorInitializerType={0} Arguments={1}]", ConstructorInitializerType, GetCollectionString(Arguments));
972
internal sealed class NullConstructorInitializer : ConstructorInitializer {
974
internal static NullConstructorInitializer Instance = new NullConstructorInitializer();
976
public override bool IsNull {
982
public override object AcceptVisitor(IAstVisitor visitor, object data) {
986
public override string ToString() {
987
return "[NullConstructorInitializer]";
991
public class ContinueStatement : Statement {
993
ContinueType continueType;
995
public ContinueType ContinueType {
1000
continueType = value;
1004
public ContinueStatement() {
1007
public ContinueStatement(ContinueType continueType) {
1008
ContinueType = continueType;
1011
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1012
return visitor.VisitContinueStatement(this, data);
1015
public override string ToString() {
1016
return string.Format("[ContinueStatement ContinueType={0}]", ContinueType);
1020
public class DeclareDeclaration : ParametrizedNode {
1026
CharsetModifier charset;
1028
TypeReference typeReference;
1030
public string Alias {
1035
alias = value ?? "";
1039
public string Library {
1044
library = value ?? "";
1048
public CharsetModifier Charset {
1057
public TypeReference TypeReference {
1059
return typeReference;
1062
typeReference = value ?? TypeReference.Null;
1063
if (!typeReference.IsNull) typeReference.Parent = this;
1067
public DeclareDeclaration(string name, Modifiers modifier, TypeReference typeReference, List<ParameterDeclarationExpression> parameters, List<AttributeSection> attributes, string library, string alias, CharsetModifier charset) {
1069
Modifier = modifier;
1070
TypeReference = typeReference;
1071
Parameters = parameters;
1072
Attributes = attributes;
1078
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1079
return visitor.VisitDeclareDeclaration(this, data);
1082
public override string ToString() {
1083
return string.Format("[DeclareDeclaration Alias={0} Library={1} Charset={2} TypeReference={3} Name={4} " +
1084
"Parameters={5} Attributes={6} Modifier={7}]", Alias, Library, Charset, TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
1088
public class DefaultValueExpression : Expression {
1090
TypeReference typeReference;
1092
public TypeReference TypeReference {
1094
return typeReference;
1097
typeReference = value ?? TypeReference.Null;
1098
if (!typeReference.IsNull) typeReference.Parent = this;
1102
public DefaultValueExpression(TypeReference typeReference) {
1103
TypeReference = typeReference;
1106
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1107
return visitor.VisitDefaultValueExpression(this, data);
1110
public override string ToString() {
1111
return string.Format("[DefaultValueExpression TypeReference={0}]", TypeReference);
1115
public class DelegateDeclaration : AttributedNode {
1119
TypeReference returnType;
1121
List<ParameterDeclarationExpression> parameters;
1123
List<TemplateDefinition> templates;
1125
public string Name {
1130
name = string.IsNullOrEmpty(value) ? "?" : value;
1134
public TypeReference ReturnType {
1139
returnType = value ?? TypeReference.Null;
1140
if (!returnType.IsNull) returnType.Parent = this;
1144
public List<ParameterDeclarationExpression> Parameters {
1149
parameters = value ?? new List<ParameterDeclarationExpression>();
1153
public List<TemplateDefinition> Templates {
1158
templates = value ?? new List<TemplateDefinition>();
1162
public DelegateDeclaration(Modifiers modifier, List<AttributeSection> attributes) {
1163
Modifier = modifier;
1164
Attributes = attributes;
1166
returnType = TypeReference.Null;
1167
parameters = new List<ParameterDeclarationExpression>();
1168
templates = new List<TemplateDefinition>();
1171
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1172
return visitor.VisitDelegateDeclaration(this, data);
1175
public override string ToString() {
1176
return string.Format("[DelegateDeclaration Name={0} ReturnType={1} Parameters={2} Templates={3} Attribu" +
1177
"tes={4} Modifier={5}]", Name, ReturnType, GetCollectionString(Parameters), GetCollectionString(Templates), GetCollectionString(Attributes), Modifier);
1181
public class DestructorDeclaration : AttributedNode {
1185
BlockStatement body;
1187
public string Name {
1196
public BlockStatement Body {
1201
body = value ?? BlockStatement.Null;
1202
if (!body.IsNull) body.Parent = this;
1206
public DestructorDeclaration(string name, Modifiers modifier, List<AttributeSection> attributes) {
1208
Modifier = modifier;
1209
Attributes = attributes;
1210
body = BlockStatement.Null;
1213
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1214
return visitor.VisitDestructorDeclaration(this, data);
1217
public override string ToString() {
1218
return string.Format("[DestructorDeclaration Name={0} Body={1} Attributes={2} Modifier={3}]", Name, Body, GetCollectionString(Attributes), Modifier);
1222
public class DirectionExpression : Expression {
1224
FieldDirection fieldDirection;
1226
Expression expression;
1228
public FieldDirection FieldDirection {
1230
return fieldDirection;
1233
fieldDirection = value;
1237
public Expression Expression {
1242
expression = value ?? Expression.Null;
1243
if (!expression.IsNull) expression.Parent = this;
1247
public DirectionExpression(FieldDirection fieldDirection, Expression expression) {
1248
FieldDirection = fieldDirection;
1249
Expression = expression;
1252
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1253
return visitor.VisitDirectionExpression(this, data);
1256
public override string ToString() {
1257
return string.Format("[DirectionExpression FieldDirection={0} Expression={1}]", FieldDirection, Expression);
1261
public class DoLoopStatement : StatementWithEmbeddedStatement {
1263
Expression condition;
1265
ConditionType conditionType;
1267
ConditionPosition conditionPosition;
1269
public Expression Condition {
1274
condition = value ?? Expression.Null;
1275
if (!condition.IsNull) condition.Parent = this;
1279
public ConditionType ConditionType {
1281
return conditionType;
1284
conditionType = value;
1288
public ConditionPosition ConditionPosition {
1290
return conditionPosition;
1293
conditionPosition = value;
1297
public DoLoopStatement(Expression condition, Statement embeddedStatement, ConditionType conditionType, ConditionPosition conditionPosition) {
1298
Condition = condition;
1299
EmbeddedStatement = embeddedStatement;
1300
ConditionType = conditionType;
1301
ConditionPosition = conditionPosition;
1304
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1305
return visitor.VisitDoLoopStatement(this, data);
1308
public override string ToString() {
1309
return string.Format("[DoLoopStatement Condition={0} ConditionType={1} ConditionPosition={2} EmbeddedSt" +
1310
"atement={3}]", Condition, ConditionType, ConditionPosition, EmbeddedStatement);
1314
public class ElseIfSection : StatementWithEmbeddedStatement {
1316
Expression condition;
1318
public Expression Condition {
1323
condition = value ?? Expression.Null;
1324
if (!condition.IsNull) condition.Parent = this;
1328
public ElseIfSection(Expression condition, Statement embeddedStatement) {
1329
Condition = condition;
1330
EmbeddedStatement = embeddedStatement;
1333
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1334
return visitor.VisitElseIfSection(this, data);
1337
public override string ToString() {
1338
return string.Format("[ElseIfSection Condition={0} EmbeddedStatement={1}]", Condition, EmbeddedStatement);
1342
public class EmptyStatement : Statement {
1344
public EmptyStatement() {
1347
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1348
return visitor.VisitEmptyStatement(this, data);
1351
public override string ToString() {
1352
return "[EmptyStatement]";
1356
public class EndStatement : Statement {
1358
public EndStatement() {
1361
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1362
return visitor.VisitEndStatement(this, data);
1365
public override string ToString() {
1366
return "[EndStatement]";
1370
public class EraseStatement : Statement {
1372
List<Expression> expressions;
1374
public List<Expression> Expressions {
1379
expressions = value ?? new List<Expression>();
1383
public EraseStatement() {
1384
expressions = new List<Expression>();
1387
public EraseStatement(List<Expression> expressions) {
1388
Expressions = expressions;
1391
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1392
return visitor.VisitEraseStatement(this, data);
1395
public override string ToString() {
1396
return string.Format("[EraseStatement Expressions={0}]", GetCollectionString(Expressions));
1400
public class ErrorStatement : Statement {
1402
Expression expression;
1404
public Expression Expression {
1409
expression = value ?? Expression.Null;
1410
if (!expression.IsNull) expression.Parent = this;
1414
public ErrorStatement(Expression expression) {
1415
Expression = expression;
1418
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1419
return visitor.VisitErrorStatement(this, data);
1422
public override string ToString() {
1423
return string.Format("[ErrorStatement Expression={0}]", Expression);
1427
public class EventAddRegion : EventAddRemoveRegion {
1429
public EventAddRegion(List<AttributeSection> attributes) :
1433
public static EventAddRegion Null {
1435
return NullEventAddRegion.Instance;
1439
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1440
return visitor.VisitEventAddRegion(this, data);
1443
public override string ToString() {
1444
return string.Format("[EventAddRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
1448
internal sealed class NullEventAddRegion : EventAddRegion {
1450
private NullEventAddRegion() :
1454
internal static NullEventAddRegion Instance = new NullEventAddRegion();
1456
public override bool IsNull {
1462
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1466
public override string ToString() {
1467
return "[NullEventAddRegion]";
1471
public abstract class EventAddRemoveRegion : AttributedNode, INullable {
1473
BlockStatement block;
1475
List<ParameterDeclarationExpression> parameters;
1477
public BlockStatement Block {
1482
block = value ?? BlockStatement.Null;
1483
if (!block.IsNull) block.Parent = this;
1487
public List<ParameterDeclarationExpression> Parameters {
1492
parameters = value ?? new List<ParameterDeclarationExpression>();
1496
protected EventAddRemoveRegion(List<AttributeSection> attributes) {
1497
Attributes = attributes;
1498
block = BlockStatement.Null;
1499
parameters = new List<ParameterDeclarationExpression>();
1502
public virtual bool IsNull {
1509
public class EventDeclaration : MemberNode {
1511
EventAddRegion addRegion;
1513
EventRemoveRegion removeRegion;
1515
EventRaiseRegion raiseRegion;
1521
Expression initializer;
1523
public EventAddRegion AddRegion {
1528
addRegion = value ?? EventAddRegion.Null;
1529
if (!addRegion.IsNull) addRegion.Parent = this;
1533
public EventRemoveRegion RemoveRegion {
1535
return removeRegion;
1538
removeRegion = value ?? EventRemoveRegion.Null;
1539
if (!removeRegion.IsNull) removeRegion.Parent = this;
1543
public EventRaiseRegion RaiseRegion {
1548
raiseRegion = value ?? EventRaiseRegion.Null;
1549
if (!raiseRegion.IsNull) raiseRegion.Parent = this;
1553
public Location BodyStart {
1562
public Location BodyEnd {
1571
public Expression Initializer {
1576
initializer = value ?? Expression.Null;
1577
if (!initializer.IsNull) initializer.Parent = this;
1581
public EventDeclaration() {
1582
addRegion = EventAddRegion.Null;
1583
removeRegion = EventRemoveRegion.Null;
1584
raiseRegion = EventRaiseRegion.Null;
1585
bodyStart = Location.Empty;
1586
bodyEnd = Location.Empty;
1587
initializer = Expression.Null;
1590
public bool HasRemoveRegion {
1592
return !removeRegion.IsNull;
1596
public bool HasRaiseRegion {
1598
return !raiseRegion.IsNull;
1602
public bool HasAddRegion {
1604
return !addRegion.IsNull;
1608
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1609
return visitor.VisitEventDeclaration(this, data);
1612
public override string ToString() {
1613
return string.Format("[EventDeclaration AddRegion={0} RemoveRegion={1} RaiseRegion={2} BodyStart={3} Bo" +
1614
"dyEnd={4} Initializer={5} InterfaceImplementations={6} TypeReference={7} Name={8" +
1615
"} Parameters={9} Attributes={10} Modifier={11}]", AddRegion, RemoveRegion, RaiseRegion, BodyStart, BodyEnd, Initializer, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
1619
public class EventRaiseRegion : EventAddRemoveRegion {
1621
public EventRaiseRegion(List<AttributeSection> attributes) :
1625
public static EventRaiseRegion Null {
1627
return NullEventRaiseRegion.Instance;
1631
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1632
return visitor.VisitEventRaiseRegion(this, data);
1635
public override string ToString() {
1636
return string.Format("[EventRaiseRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
1640
internal sealed class NullEventRaiseRegion : EventRaiseRegion {
1642
private NullEventRaiseRegion() :
1646
internal static NullEventRaiseRegion Instance = new NullEventRaiseRegion();
1648
public override bool IsNull {
1654
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1658
public override string ToString() {
1659
return "[NullEventRaiseRegion]";
1663
public class EventRemoveRegion : EventAddRemoveRegion {
1665
public EventRemoveRegion(List<AttributeSection> attributes) :
1669
public static EventRemoveRegion Null {
1671
return NullEventRemoveRegion.Instance;
1675
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1676
return visitor.VisitEventRemoveRegion(this, data);
1679
public override string ToString() {
1680
return string.Format("[EventRemoveRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
1684
internal sealed class NullEventRemoveRegion : EventRemoveRegion {
1686
private NullEventRemoveRegion() :
1690
internal static NullEventRemoveRegion Instance = new NullEventRemoveRegion();
1692
public override bool IsNull {
1698
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1702
public override string ToString() {
1703
return "[NullEventRemoveRegion]";
1707
public class ExitStatement : Statement {
1711
public ExitType ExitType {
1720
public ExitStatement(ExitType exitType) {
1721
ExitType = exitType;
1724
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1725
return visitor.VisitExitStatement(this, data);
1728
public override string ToString() {
1729
return string.Format("[ExitStatement ExitType={0}]", ExitType);
1733
public class ExpressionRangeVariable : AbstractNode, INullable {
1737
Expression expression;
1741
public string Identifier {
1746
identifier = value ?? "";
1750
public Expression Expression {
1755
expression = value ?? Expression.Null;
1756
if (!expression.IsNull) expression.Parent = this;
1760
public TypeReference Type {
1765
type = value ?? TypeReference.Null;
1766
if (!type.IsNull) type.Parent = this;
1770
public ExpressionRangeVariable() {
1772
expression = Expression.Null;
1773
type = TypeReference.Null;
1776
public virtual bool IsNull {
1782
public static ExpressionRangeVariable Null {
1784
return NullExpressionRangeVariable.Instance;
1788
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1789
return visitor.VisitExpressionRangeVariable(this, data);
1792
public override string ToString() {
1793
return string.Format("[ExpressionRangeVariable Identifier={0} Expression={1} Type={2}]", Identifier, Expression, Type);
1797
internal sealed class NullExpressionRangeVariable : ExpressionRangeVariable {
1799
internal static NullExpressionRangeVariable Instance = new NullExpressionRangeVariable();
1801
public override bool IsNull {
1807
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1811
public override string ToString() {
1812
return "[NullExpressionRangeVariable]";
1816
public class ExpressionStatement : Statement {
1818
Expression expression;
1820
public Expression Expression {
1825
expression = value ?? Expression.Null;
1826
if (!expression.IsNull) expression.Parent = this;
1830
public ExpressionStatement(Expression expression) {
1831
Expression = expression;
1834
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1835
return visitor.VisitExpressionStatement(this, data);
1838
public override string ToString() {
1839
return string.Format("[ExpressionStatement Expression={0}]", Expression);
1843
public class ExternAliasDirective : AbstractNode {
1847
public string Name {
1856
public ExternAliasDirective() {
1860
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1861
return visitor.VisitExternAliasDirective(this, data);
1864
public override string ToString() {
1865
return string.Format("[ExternAliasDirective Name={0}]", Name);
1869
public class FieldDeclaration : AttributedNode {
1871
TypeReference typeReference;
1873
List<VariableDeclaration> fields;
1875
public TypeReference TypeReference {
1877
return typeReference;
1880
typeReference = value ?? TypeReference.Null;
1881
if (!typeReference.IsNull) typeReference.Parent = this;
1885
public List<VariableDeclaration> Fields {
1890
fields = value ?? new List<VariableDeclaration>();
1894
public FieldDeclaration(List<AttributeSection> attributes) {
1895
Attributes = attributes;
1896
typeReference = TypeReference.Null;
1897
fields = new List<VariableDeclaration>();
1900
public FieldDeclaration(List<AttributeSection> attributes, TypeReference typeReference, Modifiers modifier) {
1901
Attributes = attributes;
1902
TypeReference = typeReference;
1903
Modifier = modifier;
1904
fields = new List<VariableDeclaration>();
1908
public VariableDeclaration GetVariableDeclaration(string variableName)
1910
foreach (VariableDeclaration variableDeclaration in Fields) {
1911
if (variableDeclaration.Name == variableName) {
1912
return variableDeclaration;
1919
public TypeReference GetTypeForField(int fieldIndex)
1921
if (!typeReference.IsNull) {
1922
return typeReference;
1924
return ((VariableDeclaration)Fields[fieldIndex]).TypeReference;
1927
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1928
return visitor.VisitFieldDeclaration(this, data);
1931
public override string ToString() {
1932
return string.Format("[FieldDeclaration TypeReference={0} Fields={1} Attributes={2} Modifier={3}]", TypeReference, GetCollectionString(Fields), GetCollectionString(Attributes), Modifier);
1936
public class FixedStatement : StatementWithEmbeddedStatement {
1938
Statement pointerDeclaration;
1940
public Statement PointerDeclaration {
1942
return pointerDeclaration;
1945
pointerDeclaration = value ?? Statement.Null;
1946
if (!pointerDeclaration.IsNull) pointerDeclaration.Parent = this;
1950
public FixedStatement(Statement pointerDeclaration, Statement embeddedStatement) {
1951
PointerDeclaration = pointerDeclaration;
1952
EmbeddedStatement = embeddedStatement;
1955
public override object AcceptVisitor(IAstVisitor visitor, object data) {
1956
return visitor.VisitFixedStatement(this, data);
1959
public override string ToString() {
1960
return string.Format("[FixedStatement PointerDeclaration={0} EmbeddedStatement={1}]", PointerDeclaration, EmbeddedStatement);
1964
public class ForeachStatement : StatementWithEmbeddedStatement {
1966
TypeReference typeReference;
1968
string variableName;
1970
Expression expression;
1972
Expression nextExpression;
1974
public TypeReference TypeReference {
1976
return typeReference;
1979
typeReference = value ?? TypeReference.Null;
1980
if (!typeReference.IsNull) typeReference.Parent = this;
1984
public string VariableName {
1986
return variableName;
1989
variableName = value ?? "";
1993
public Expression Expression {
1998
expression = value ?? Expression.Null;
1999
if (!expression.IsNull) expression.Parent = this;
2003
public Expression NextExpression {
2005
return nextExpression;
2008
nextExpression = value ?? Expression.Null;
2009
if (!nextExpression.IsNull) nextExpression.Parent = this;
2013
public ForeachStatement(TypeReference typeReference, string variableName, Expression expression, Statement embeddedStatement) {
2014
TypeReference = typeReference;
2015
VariableName = variableName;
2016
Expression = expression;
2017
EmbeddedStatement = embeddedStatement;
2018
nextExpression = Expression.Null;
2021
public ForeachStatement(TypeReference typeReference, string variableName, Expression expression, Statement embeddedStatement, Expression nextExpression) {
2022
TypeReference = typeReference;
2023
VariableName = variableName;
2024
Expression = expression;
2025
EmbeddedStatement = embeddedStatement;
2026
NextExpression = nextExpression;
2029
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2030
return visitor.VisitForeachStatement(this, data);
2033
public override string ToString() {
2034
return string.Format("[ForeachStatement TypeReference={0} VariableName={1} Expression={2} NextExpressio" +
2035
"n={3} EmbeddedStatement={4}]", TypeReference, VariableName, Expression, NextExpression, EmbeddedStatement);
2039
public class ForNextStatement : StatementWithEmbeddedStatement {
2047
List<Expression> nextExpressions;
2049
TypeReference typeReference;
2051
string variableName;
2053
Expression loopVariableExpression;
2055
public Expression Start {
2060
start = value ?? Expression.Null;
2061
if (!start.IsNull) start.Parent = this;
2065
public Expression End {
2070
end = value ?? Expression.Null;
2071
if (!end.IsNull) end.Parent = this;
2075
public Expression Step {
2080
step = value ?? Expression.Null;
2081
if (!step.IsNull) step.Parent = this;
2085
public List<Expression> NextExpressions {
2087
return nextExpressions;
2090
nextExpressions = value ?? new List<Expression>();
2094
public TypeReference TypeReference {
2096
return typeReference;
2099
typeReference = value ?? TypeReference.Null;
2100
if (!typeReference.IsNull) typeReference.Parent = this;
2104
public string VariableName {
2106
return variableName;
2109
variableName = value ?? "";
2113
public Expression LoopVariableExpression {
2115
return loopVariableExpression;
2118
loopVariableExpression = value ?? Expression.Null;
2119
if (!loopVariableExpression.IsNull) loopVariableExpression.Parent = this;
2123
public ForNextStatement() {
2124
start = Expression.Null;
2125
end = Expression.Null;
2126
step = Expression.Null;
2127
nextExpressions = new List<Expression>();
2128
typeReference = TypeReference.Null;
2130
loopVariableExpression = Expression.Null;
2133
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2134
return visitor.VisitForNextStatement(this, data);
2137
public override string ToString() {
2138
return string.Format("[ForNextStatement Start={0} End={1} Step={2} NextExpressions={3} TypeReference={4" +
2139
"} VariableName={5} LoopVariableExpression={6} EmbeddedStatement={7}]", Start, End, Step, GetCollectionString(NextExpressions), TypeReference, VariableName, LoopVariableExpression, EmbeddedStatement);
2143
public class ForStatement : StatementWithEmbeddedStatement {
2145
List<Statement> initializers;
2147
Expression condition;
2149
List<Statement> iterator;
2151
public List<Statement> Initializers {
2153
return initializers;
2156
initializers = value ?? new List<Statement>();
2160
public Expression Condition {
2165
condition = value ?? Expression.Null;
2166
if (!condition.IsNull) condition.Parent = this;
2170
public List<Statement> Iterator {
2175
iterator = value ?? new List<Statement>();
2179
public ForStatement(List<Statement> initializers, Expression condition, List<Statement> iterator, Statement embeddedStatement) {
2180
Initializers = initializers;
2181
Condition = condition;
2182
Iterator = iterator;
2183
EmbeddedStatement = embeddedStatement;
2186
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2187
return visitor.VisitForStatement(this, data);
2190
public override string ToString() {
2191
return string.Format("[ForStatement Initializers={0} Condition={1} Iterator={2} EmbeddedStatement={3}]", GetCollectionString(Initializers), Condition, GetCollectionString(Iterator), EmbeddedStatement);
2195
public class GotoCaseStatement : Statement {
2197
Expression expression;
2199
public Expression Expression {
2204
expression = value ?? Expression.Null;
2205
if (!expression.IsNull) expression.Parent = this;
2209
public GotoCaseStatement(Expression expression) {
2210
Expression = expression;
2213
public bool IsDefaultCase {
2215
return expression.IsNull;
2219
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2220
return visitor.VisitGotoCaseStatement(this, data);
2223
public override string ToString() {
2224
return string.Format("[GotoCaseStatement Expression={0}]", Expression);
2228
public class GotoStatement : Statement {
2232
public string Label {
2237
label = value ?? "";
2241
public GotoStatement(string label) {
2245
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2246
return visitor.VisitGotoStatement(this, data);
2249
public override string ToString() {
2250
return string.Format("[GotoStatement Label={0}]", Label);
2254
public class IdentifierExpression : Expression {
2258
List<TypeReference> typeArguments;
2260
public string Identifier {
2265
identifier = value ?? "";
2269
public List<TypeReference> TypeArguments {
2271
return typeArguments;
2274
typeArguments = value ?? new List<TypeReference>();
2278
public IdentifierExpression(string identifier) {
2279
Identifier = identifier;
2280
typeArguments = new List<TypeReference>();
2283
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2284
return visitor.VisitIdentifierExpression(this, data);
2287
public override string ToString() {
2288
return string.Format("[IdentifierExpression Identifier={0} TypeArguments={1}]", Identifier, GetCollectionString(TypeArguments));
2292
public class IfElseStatement : Statement {
2294
Expression condition;
2296
List<Statement> trueStatement;
2298
List<Statement> falseStatement;
2300
List<ElseIfSection> elseIfSections;
2302
public Expression Condition {
2307
condition = value ?? Expression.Null;
2308
if (!condition.IsNull) condition.Parent = this;
2312
public List<Statement> TrueStatement {
2314
return trueStatement;
2317
trueStatement = value ?? new List<Statement>();
2321
public List<Statement> FalseStatement {
2323
return falseStatement;
2326
falseStatement = value ?? new List<Statement>();
2330
public List<ElseIfSection> ElseIfSections {
2332
return elseIfSections;
2335
elseIfSections = value ?? new List<ElseIfSection>();
2339
public IfElseStatement(Expression condition) {
2340
Condition = condition;
2341
trueStatement = new List<Statement>();
2342
falseStatement = new List<Statement>();
2343
elseIfSections = new List<ElseIfSection>();
2347
public IfElseStatement(Expression condition, Statement trueStatement)
2349
this.trueStatement.Add(Statement.CheckNull(trueStatement));
2350
if (trueStatement != null) trueStatement.Parent = this;
2354
public IfElseStatement(Expression condition, Statement trueStatement, Statement falseStatement)
2356
this.trueStatement.Add(Statement.CheckNull(trueStatement));
2357
this.falseStatement.Add(Statement.CheckNull(falseStatement));
2358
if (trueStatement != null) trueStatement.Parent = this;
2359
if (falseStatement != null) falseStatement.Parent = this;
2362
public bool HasElseStatements {
2364
return falseStatement.Count > 0;
2368
public bool HasElseIfSections {
2370
return elseIfSections.Count > 0;
2374
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2375
return visitor.VisitIfElseStatement(this, data);
2378
public override string ToString() {
2379
return string.Format("[IfElseStatement Condition={0} TrueStatement={1} FalseStatement={2} ElseIfSection" +
2380
"s={3}]", Condition, GetCollectionString(TrueStatement), GetCollectionString(FalseStatement), GetCollectionString(ElseIfSections));
2384
public class IndexerDeclaration : AttributedNode {
2386
List<ParameterDeclarationExpression> parameters;
2388
List<InterfaceImplementation> interfaceImplementations;
2390
TypeReference typeReference;
2396
PropertyGetRegion getRegion;
2398
PropertySetRegion setRegion;
2400
public List<ParameterDeclarationExpression> Parameters {
2405
parameters = value ?? new List<ParameterDeclarationExpression>();
2409
public List<InterfaceImplementation> InterfaceImplementations {
2411
return interfaceImplementations;
2414
interfaceImplementations = value ?? new List<InterfaceImplementation>();
2418
public TypeReference TypeReference {
2420
return typeReference;
2423
typeReference = value ?? TypeReference.Null;
2424
if (!typeReference.IsNull) typeReference.Parent = this;
2428
public Location BodyStart {
2437
public Location BodyEnd {
2446
public PropertyGetRegion GetRegion {
2451
getRegion = value ?? PropertyGetRegion.Null;
2452
if (!getRegion.IsNull) getRegion.Parent = this;
2456
public PropertySetRegion SetRegion {
2461
setRegion = value ?? PropertySetRegion.Null;
2462
if (!setRegion.IsNull) setRegion.Parent = this;
2466
public IndexerDeclaration(Modifiers modifier, List<ParameterDeclarationExpression> parameters, List<AttributeSection> attributes) {
2467
Modifier = modifier;
2468
Parameters = parameters;
2469
Attributes = attributes;
2470
interfaceImplementations = new List<InterfaceImplementation>();
2471
typeReference = TypeReference.Null;
2472
bodyStart = Location.Empty;
2473
bodyEnd = Location.Empty;
2474
getRegion = PropertyGetRegion.Null;
2475
setRegion = PropertySetRegion.Null;
2478
public IndexerDeclaration(TypeReference typeReference, List<ParameterDeclarationExpression> parameters, Modifiers modifier, List<AttributeSection> attributes) {
2479
TypeReference = typeReference;
2480
Parameters = parameters;
2481
Modifier = modifier;
2482
Attributes = attributes;
2483
interfaceImplementations = new List<InterfaceImplementation>();
2484
bodyStart = Location.Empty;
2485
bodyEnd = Location.Empty;
2486
getRegion = PropertyGetRegion.Null;
2487
setRegion = PropertySetRegion.Null;
2490
public bool IsReadOnly {
2492
return HasGetRegion && !HasSetRegion;
2496
public bool HasSetRegion {
2498
return !setRegion.IsNull;
2502
public bool HasGetRegion {
2504
return !getRegion.IsNull;
2508
public bool IsWriteOnly {
2510
return !HasGetRegion && HasSetRegion;
2514
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2515
return visitor.VisitIndexerDeclaration(this, data);
2518
public override string ToString() {
2519
return string.Format("[IndexerDeclaration Parameters={0} InterfaceImplementations={1} TypeReference={2}" +
2520
" BodyStart={3} BodyEnd={4} GetRegion={5} SetRegion={6} Attributes={7} Modifier={" +
2521
"8}]", GetCollectionString(Parameters), GetCollectionString(InterfaceImplementations), TypeReference, BodyStart, BodyEnd, GetRegion, SetRegion, GetCollectionString(Attributes), Modifier);
2525
public class IndexerExpression : Expression {
2527
Expression targetObject;
2529
List<Expression> indexes;
2531
public Expression TargetObject {
2533
return targetObject;
2536
targetObject = value ?? Expression.Null;
2537
if (!targetObject.IsNull) targetObject.Parent = this;
2541
public List<Expression> Indexes {
2546
indexes = value ?? new List<Expression>();
2550
public IndexerExpression(Expression targetObject, List<Expression> indexes) {
2551
TargetObject = targetObject;
2555
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2556
return visitor.VisitIndexerExpression(this, data);
2559
public override string ToString() {
2560
return string.Format("[IndexerExpression TargetObject={0} Indexes={1}]", TargetObject, GetCollectionString(Indexes));
2564
public class InterfaceImplementation : AbstractNode {
2566
TypeReference interfaceType;
2570
public TypeReference InterfaceType {
2572
return interfaceType;
2575
interfaceType = value ?? TypeReference.Null;
2576
if (!interfaceType.IsNull) interfaceType.Parent = this;
2580
public string MemberName {
2585
memberName = string.IsNullOrEmpty(value) ? "?" : value;
2589
public InterfaceImplementation(TypeReference interfaceType, string memberName) {
2590
InterfaceType = interfaceType;
2591
MemberName = memberName;
2594
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2595
return visitor.VisitInterfaceImplementation(this, data);
2598
public override string ToString() {
2599
return string.Format("[InterfaceImplementation InterfaceType={0} MemberName={1}]", InterfaceType, MemberName);
2603
public class InvocationExpression : Expression {
2605
Expression targetObject;
2607
List<Expression> arguments;
2609
public Expression TargetObject {
2611
return targetObject;
2614
targetObject = value ?? Expression.Null;
2615
if (!targetObject.IsNull) targetObject.Parent = this;
2619
public List<Expression> Arguments {
2624
arguments = value ?? new List<Expression>();
2628
public InvocationExpression(Expression targetObject) {
2629
TargetObject = targetObject;
2630
arguments = new List<Expression>();
2633
public InvocationExpression(Expression targetObject, List<Expression> arguments) {
2634
TargetObject = targetObject;
2635
Arguments = arguments;
2638
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2639
return visitor.VisitInvocationExpression(this, data);
2642
public override string ToString() {
2643
return string.Format("[InvocationExpression TargetObject={0} Arguments={1}]", TargetObject, GetCollectionString(Arguments));
2647
public class LabelStatement : Statement {
2651
public string Label {
2656
label = value ?? "";
2660
public LabelStatement(string label) {
2664
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2665
return visitor.VisitLabelStatement(this, data);
2668
public override string ToString() {
2669
return string.Format("[LabelStatement Label={0}]", Label);
2673
public class LambdaExpression : Expression {
2675
List<ParameterDeclarationExpression> parameters;
2677
BlockStatement statementBody;
2679
Expression expressionBody;
2681
public List<ParameterDeclarationExpression> Parameters {
2686
parameters = value ?? new List<ParameterDeclarationExpression>();
2690
public BlockStatement StatementBody {
2692
return statementBody;
2695
statementBody = value ?? BlockStatement.Null;
2696
if (!statementBody.IsNull) statementBody.Parent = this;
2700
public Expression ExpressionBody {
2702
return expressionBody;
2705
expressionBody = value ?? Expression.Null;
2706
if (!expressionBody.IsNull) expressionBody.Parent = this;
2710
public LambdaExpression() {
2711
parameters = new List<ParameterDeclarationExpression>();
2712
statementBody = BlockStatement.Null;
2713
expressionBody = Expression.Null;
2716
public Location ExtendedEndLocation { get; set; }
2718
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2719
return visitor.VisitLambdaExpression(this, data);
2722
public override string ToString() {
2723
return string.Format("[LambdaExpression Parameters={0} StatementBody={1} ExpressionBody={2}]", GetCollectionString(Parameters), StatementBody, ExpressionBody);
2727
public class LockStatement : StatementWithEmbeddedStatement {
2729
Expression lockExpression;
2731
public Expression LockExpression {
2733
return lockExpression;
2736
lockExpression = value ?? Expression.Null;
2737
if (!lockExpression.IsNull) lockExpression.Parent = this;
2741
public LockStatement(Expression lockExpression, Statement embeddedStatement) {
2742
LockExpression = lockExpression;
2743
EmbeddedStatement = embeddedStatement;
2746
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2747
return visitor.VisitLockStatement(this, data);
2750
public override string ToString() {
2751
return string.Format("[LockStatement LockExpression={0} EmbeddedStatement={1}]", LockExpression, EmbeddedStatement);
2755
public abstract class MemberNode : ParametrizedNode {
2757
List<InterfaceImplementation> interfaceImplementations;
2759
TypeReference typeReference;
2761
public List<InterfaceImplementation> InterfaceImplementations {
2763
return interfaceImplementations;
2766
interfaceImplementations = value ?? new List<InterfaceImplementation>();
2770
public TypeReference TypeReference {
2772
return typeReference;
2775
typeReference = value ?? TypeReference.Null;
2776
if (!typeReference.IsNull) typeReference.Parent = this;
2780
protected MemberNode() {
2781
interfaceImplementations = new List<InterfaceImplementation>();
2782
typeReference = TypeReference.Null;
2785
protected MemberNode(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
2786
Modifier = modifier;
2787
Attributes = attributes;
2789
Parameters = parameters;
2790
interfaceImplementations = new List<InterfaceImplementation>();
2791
typeReference = TypeReference.Null;
2795
public class MemberReferenceExpression : Expression {
2797
Expression targetObject;
2801
List<TypeReference> typeArguments;
2803
public Expression TargetObject {
2805
return targetObject;
2808
targetObject = value ?? Expression.Null;
2809
if (!targetObject.IsNull) targetObject.Parent = this;
2813
public string MemberName {
2818
memberName = value ?? "";
2822
public List<TypeReference> TypeArguments {
2824
return typeArguments;
2827
typeArguments = value ?? new List<TypeReference>();
2831
public MemberReferenceExpression(Expression targetObject, string memberName) {
2832
TargetObject = targetObject;
2833
MemberName = memberName;
2834
typeArguments = new List<TypeReference>();
2837
[Obsolete] public string FieldName { get { return MemberName; } set { MemberName = value; } }
2839
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2840
return visitor.VisitMemberReferenceExpression(this, data);
2843
public override string ToString() {
2844
return string.Format("[MemberReferenceExpression TargetObject={0} MemberName={1} TypeArguments={2}]", TargetObject, MemberName, GetCollectionString(TypeArguments));
2848
public class MethodDeclaration : MemberNode {
2850
BlockStatement body;
2852
List<string> handlesClause;
2854
List<TemplateDefinition> templates;
2856
bool isExtensionMethod;
2858
public BlockStatement Body {
2863
body = value ?? BlockStatement.Null;
2864
if (!body.IsNull) body.Parent = this;
2868
public List<string> HandlesClause {
2870
return handlesClause;
2873
handlesClause = value ?? new List<String>();
2877
public List<TemplateDefinition> Templates {
2882
templates = value ?? new List<TemplateDefinition>();
2886
public bool IsExtensionMethod {
2888
return isExtensionMethod;
2891
isExtensionMethod = value;
2895
public MethodDeclaration() {
2896
body = BlockStatement.Null;
2897
handlesClause = new List<String>();
2898
templates = new List<TemplateDefinition>();
2901
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2902
return visitor.VisitMethodDeclaration(this, data);
2905
public override string ToString() {
2906
return string.Format("[MethodDeclaration Body={0} HandlesClause={1} Templates={2} IsExtensionMethod={3}" +
2907
" InterfaceImplementations={4} TypeReference={5} Name={6} Parameters={7} Attribut" +
2908
"es={8} Modifier={9}]", Body, GetCollectionString(HandlesClause), GetCollectionString(Templates), IsExtensionMethod, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
2912
public class NamedArgumentExpression : Expression {
2916
Expression expression;
2918
public string Name {
2927
public Expression Expression {
2932
expression = value ?? Expression.Null;
2933
if (!expression.IsNull) expression.Parent = this;
2937
public NamedArgumentExpression() {
2939
expression = Expression.Null;
2942
public NamedArgumentExpression(string name, Expression expression) {
2944
Expression = expression;
2947
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2948
return visitor.VisitNamedArgumentExpression(this, data);
2951
public override string ToString() {
2952
return string.Format("[NamedArgumentExpression Name={0} Expression={1}]", Name, Expression);
2956
public class NamespaceDeclaration : AbstractNode {
2960
public string Name {
2969
public NamespaceDeclaration(string name) {
2973
public override object AcceptVisitor(IAstVisitor visitor, object data) {
2974
return visitor.VisitNamespaceDeclaration(this, data);
2977
public override string ToString() {
2978
return string.Format("[NamespaceDeclaration Name={0}]", Name);
2982
public class ObjectCreateExpression : Expression {
2984
TypeReference createType;
2986
List<Expression> parameters;
2988
CollectionInitializerExpression objectInitializer;
2990
public TypeReference CreateType {
2995
createType = value ?? TypeReference.Null;
2996
if (!createType.IsNull) createType.Parent = this;
3000
public List<Expression> Parameters {
3005
parameters = value ?? new List<Expression>();
3009
public CollectionInitializerExpression ObjectInitializer {
3011
return objectInitializer;
3014
objectInitializer = value ?? CollectionInitializerExpression.Null;
3015
if (!objectInitializer.IsNull) objectInitializer.Parent = this;
3019
public ObjectCreateExpression(TypeReference createType, List<Expression> parameters) {
3020
CreateType = createType;
3021
Parameters = parameters;
3022
objectInitializer = CollectionInitializerExpression.Null;
3025
public bool IsAnonymousType {
3027
return createType.IsNull || string.IsNullOrEmpty(createType.Type);
3031
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3032
return visitor.VisitObjectCreateExpression(this, data);
3035
public override string ToString() {
3036
return string.Format("[ObjectCreateExpression CreateType={0} Parameters={1} ObjectInitializer={2}]", CreateType, GetCollectionString(Parameters), ObjectInitializer);
3040
public class OnErrorStatement : StatementWithEmbeddedStatement {
3042
public OnErrorStatement(Statement embeddedStatement) {
3043
EmbeddedStatement = embeddedStatement;
3046
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3047
return visitor.VisitOnErrorStatement(this, data);
3050
public override string ToString() {
3051
return string.Format("[OnErrorStatement EmbeddedStatement={0}]", EmbeddedStatement);
3055
public class OperatorDeclaration : MethodDeclaration {
3057
ConversionType conversionType;
3059
List<AttributeSection> returnTypeAttributes;
3061
OverloadableOperatorType overloadableOperator;
3063
public ConversionType ConversionType {
3065
return conversionType;
3068
conversionType = value;
3072
public List<AttributeSection> ReturnTypeAttributes {
3074
return returnTypeAttributes;
3077
returnTypeAttributes = value ?? new List<AttributeSection>();
3081
public OverloadableOperatorType OverloadableOperator {
3083
return overloadableOperator;
3086
overloadableOperator = value;
3090
public OperatorDeclaration() {
3091
returnTypeAttributes = new List<AttributeSection>();
3094
public bool IsConversionOperator {
3096
return conversionType != ConversionType.None;
3100
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3101
return visitor.VisitOperatorDeclaration(this, data);
3104
public override string ToString() {
3105
return string.Format("[OperatorDeclaration ConversionType={0} ReturnTypeAttributes={1} OverloadableOper" +
3106
"ator={2} Body={3} HandlesClause={4} Templates={5} IsExtensionMethod={6} Interfac" +
3107
"eImplementations={7} TypeReference={8} Name={9} Parameters={10} Attributes={11} " +
3108
"Modifier={12}]", ConversionType, GetCollectionString(ReturnTypeAttributes), OverloadableOperator, Body, GetCollectionString(HandlesClause), GetCollectionString(Templates), IsExtensionMethod, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
3112
public class OptionDeclaration : AbstractNode {
3114
OptionType optionType;
3118
public OptionType OptionType {
3127
public bool OptionValue {
3132
optionValue = value;
3136
public OptionDeclaration(OptionType optionType, bool optionValue) {
3137
OptionType = optionType;
3138
OptionValue = optionValue;
3141
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3142
return visitor.VisitOptionDeclaration(this, data);
3145
public override string ToString() {
3146
return string.Format("[OptionDeclaration OptionType={0} OptionValue={1}]", OptionType, OptionValue);
3150
public class ParameterDeclarationExpression : Expression {
3152
List<AttributeSection> attributes;
3154
string parameterName;
3156
TypeReference typeReference;
3158
ParameterModifiers paramModifier;
3160
Expression defaultValue;
3162
public List<AttributeSection> Attributes {
3167
attributes = value ?? new List<AttributeSection>();
3171
public string ParameterName {
3173
return parameterName;
3176
parameterName = string.IsNullOrEmpty(value) ? "?" : value;
3180
public TypeReference TypeReference {
3182
return typeReference;
3185
typeReference = value ?? TypeReference.Null;
3186
if (!typeReference.IsNull) typeReference.Parent = this;
3190
public ParameterModifiers ParamModifier {
3192
return paramModifier;
3195
paramModifier = value;
3199
public Expression DefaultValue {
3201
return defaultValue;
3204
defaultValue = value ?? Expression.Null;
3205
if (!defaultValue.IsNull) defaultValue.Parent = this;
3209
public ParameterDeclarationExpression(TypeReference typeReference, string parameterName) {
3210
TypeReference = typeReference;
3211
ParameterName = parameterName;
3212
attributes = new List<AttributeSection>();
3213
defaultValue = Expression.Null;
3216
public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier) {
3217
TypeReference = typeReference;
3218
ParameterName = parameterName;
3219
ParamModifier = paramModifier;
3220
attributes = new List<AttributeSection>();
3221
defaultValue = Expression.Null;
3224
public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier, Expression defaultValue) {
3225
TypeReference = typeReference;
3226
ParameterName = parameterName;
3227
ParamModifier = paramModifier;
3228
DefaultValue = defaultValue;
3229
attributes = new List<AttributeSection>();
3232
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3233
return visitor.VisitParameterDeclarationExpression(this, data);
3236
public override string ToString() {
3237
return string.Format("[ParameterDeclarationExpression Attributes={0} ParameterName={1} TypeReference={2" +
3238
"} ParamModifier={3} DefaultValue={4}]", GetCollectionString(Attributes), ParameterName, TypeReference, ParamModifier, DefaultValue);
3242
public abstract class ParametrizedNode : AttributedNode {
3246
List<ParameterDeclarationExpression> parameters;
3248
public string Name {
3257
public List<ParameterDeclarationExpression> Parameters {
3262
parameters = value ?? new List<ParameterDeclarationExpression>();
3266
protected ParametrizedNode() {
3268
parameters = new List<ParameterDeclarationExpression>();
3271
protected ParametrizedNode(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
3272
Modifier = modifier;
3273
Attributes = attributes;
3275
Parameters = parameters;
3279
public class ParenthesizedExpression : Expression {
3281
Expression expression;
3283
public Expression Expression {
3288
expression = value ?? Expression.Null;
3289
if (!expression.IsNull) expression.Parent = this;
3293
public ParenthesizedExpression(Expression expression) {
3294
Expression = expression;
3297
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3298
return visitor.VisitParenthesizedExpression(this, data);
3301
public override string ToString() {
3302
return string.Format("[ParenthesizedExpression Expression={0}]", Expression);
3306
public class PointerReferenceExpression : Expression {
3308
Expression targetObject;
3312
List<TypeReference> typeArguments;
3314
public Expression TargetObject {
3316
return targetObject;
3319
targetObject = value ?? Expression.Null;
3320
if (!targetObject.IsNull) targetObject.Parent = this;
3324
public string MemberName {
3329
memberName = value ?? "";
3333
public List<TypeReference> TypeArguments {
3335
return typeArguments;
3338
typeArguments = value ?? new List<TypeReference>();
3342
public PointerReferenceExpression(Expression targetObject, string memberName) {
3343
TargetObject = targetObject;
3344
MemberName = memberName;
3345
typeArguments = new List<TypeReference>();
3348
[Obsolete] public string Identifier { get { return MemberName; } set { MemberName = value; } }
3350
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3351
return visitor.VisitPointerReferenceExpression(this, data);
3354
public override string ToString() {
3355
return string.Format("[PointerReferenceExpression TargetObject={0} MemberName={1} TypeArguments={2}]", TargetObject, MemberName, GetCollectionString(TypeArguments));
3359
public class PropertyDeclaration : MemberNode {
3365
PropertyGetRegion getRegion;
3367
PropertySetRegion setRegion;
3369
public Location BodyStart {
3378
public Location BodyEnd {
3387
public PropertyGetRegion GetRegion {
3392
getRegion = value ?? PropertyGetRegion.Null;
3393
if (!getRegion.IsNull) getRegion.Parent = this;
3397
public PropertySetRegion SetRegion {
3402
setRegion = value ?? PropertySetRegion.Null;
3403
if (!setRegion.IsNull) setRegion.Parent = this;
3407
public PropertyDeclaration(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
3408
Modifier = modifier;
3409
Attributes = attributes;
3411
Parameters = parameters;
3412
bodyStart = Location.Empty;
3413
bodyEnd = Location.Empty;
3414
getRegion = PropertyGetRegion.Null;
3415
setRegion = PropertySetRegion.Null;
3418
public bool HasGetRegion {
3420
return !getRegion.IsNull;
3424
public bool HasSetRegion {
3426
return !setRegion.IsNull;
3430
public bool IsReadOnly {
3432
return HasGetRegion && !HasSetRegion;
3437
internal PropertyDeclaration(string name, TypeReference typeReference, Modifiers modifier, List<AttributeSection> attributes) : this(modifier, attributes, name, null)
3439
this.TypeReference = typeReference;
3440
if ((modifier & Modifiers.ReadOnly) != Modifiers.ReadOnly) {
3441
this.SetRegion = new PropertySetRegion(null, null);
3443
if ((modifier & Modifiers.WriteOnly) != Modifiers.WriteOnly) {
3444
this.GetRegion = new PropertyGetRegion(null, null);
3448
public bool IsWriteOnly {
3450
return !HasGetRegion && HasSetRegion;
3454
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3455
return visitor.VisitPropertyDeclaration(this, data);
3458
public override string ToString() {
3459
return string.Format("[PropertyDeclaration BodyStart={0} BodyEnd={1} GetRegion={2} SetRegion={3} Interf" +
3460
"aceImplementations={4} TypeReference={5} Name={6} Parameters={7} Attributes={8} " +
3461
"Modifier={9}]", BodyStart, BodyEnd, GetRegion, SetRegion, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier);
3465
public class PropertyGetRegion : PropertyGetSetRegion {
3467
public PropertyGetRegion(BlockStatement block, List<AttributeSection> attributes) :
3468
base(block, attributes) {
3471
public static PropertyGetRegion Null {
3473
return NullPropertyGetRegion.Instance;
3477
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3478
return visitor.VisitPropertyGetRegion(this, data);
3481
public override string ToString() {
3482
return string.Format("[PropertyGetRegion Block={0} Attributes={1} Modifier={2}]", Block, GetCollectionString(Attributes), Modifier);
3486
internal sealed class NullPropertyGetRegion : PropertyGetRegion {
3488
private NullPropertyGetRegion() :
3492
internal static NullPropertyGetRegion Instance = new NullPropertyGetRegion();
3494
public override bool IsNull {
3500
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3504
public override string ToString() {
3505
return "[NullPropertyGetRegion]";
3509
public abstract class PropertyGetSetRegion : AttributedNode, INullable {
3511
BlockStatement block;
3513
public BlockStatement Block {
3518
block = value ?? BlockStatement.Null;
3519
if (!block.IsNull) block.Parent = this;
3523
protected PropertyGetSetRegion(BlockStatement block, List<AttributeSection> attributes) {
3525
Attributes = attributes;
3528
public virtual bool IsNull {
3535
public class PropertySetRegion : PropertyGetSetRegion {
3537
List<ParameterDeclarationExpression> parameters;
3539
public List<ParameterDeclarationExpression> Parameters {
3544
parameters = value ?? new List<ParameterDeclarationExpression>();
3548
public PropertySetRegion(BlockStatement block, List<AttributeSection> attributes) :
3549
base(block, attributes) {
3550
parameters = new List<ParameterDeclarationExpression>();
3553
public static PropertySetRegion Null {
3555
return NullPropertySetRegion.Instance;
3559
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3560
return visitor.VisitPropertySetRegion(this, data);
3563
public override string ToString() {
3564
return string.Format("[PropertySetRegion Parameters={0} Block={1} Attributes={2} Modifier={3}]", GetCollectionString(Parameters), Block, GetCollectionString(Attributes), Modifier);
3568
internal sealed class NullPropertySetRegion : PropertySetRegion {
3570
private NullPropertySetRegion() :
3574
internal static NullPropertySetRegion Instance = new NullPropertySetRegion();
3576
public override bool IsNull {
3582
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3586
public override string ToString() {
3587
return "[NullPropertySetRegion]";
3591
public class QueryExpression : Expression {
3593
QueryExpressionFromClause fromClause;
3595
bool isQueryContinuation;
3597
List<QueryExpressionClause> middleClauses;
3599
QueryExpressionClause selectOrGroupClause;
3601
public QueryExpressionFromClause FromClause {
3606
fromClause = value ?? QueryExpressionFromClause.Null;
3607
if (!fromClause.IsNull) fromClause.Parent = this;
3611
public bool IsQueryContinuation {
3613
return isQueryContinuation;
3616
isQueryContinuation = value;
3620
public List<QueryExpressionClause> MiddleClauses {
3622
return middleClauses;
3625
middleClauses = value ?? new List<QueryExpressionClause>();
3629
public QueryExpressionClause SelectOrGroupClause {
3631
return selectOrGroupClause;
3634
selectOrGroupClause = value ?? QueryExpressionClause.Null;
3635
if (!selectOrGroupClause.IsNull) selectOrGroupClause.Parent = this;
3639
public QueryExpression() {
3640
fromClause = QueryExpressionFromClause.Null;
3641
middleClauses = new List<QueryExpressionClause>();
3642
selectOrGroupClause = QueryExpressionClause.Null;
3645
public new static QueryExpression Null {
3647
return NullQueryExpression.Instance;
3651
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3652
return visitor.VisitQueryExpression(this, data);
3655
public override string ToString() {
3656
return string.Format("[QueryExpression FromClause={0} IsQueryContinuation={1} MiddleClauses={2} SelectO" +
3657
"rGroupClause={3}]", FromClause, IsQueryContinuation, GetCollectionString(MiddleClauses), SelectOrGroupClause);
3661
internal sealed class NullQueryExpression : QueryExpression {
3663
internal static NullQueryExpression Instance = new NullQueryExpression();
3665
public override bool IsNull {
3671
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3675
public override string ToString() {
3676
return "[NullQueryExpression]";
3680
public class QueryExpressionAggregateClause : QueryExpressionClause {
3682
QueryExpressionFromClause fromClause;
3684
List<QueryExpressionClause> middleClauses;
3686
List<ExpressionRangeVariable> intoVariables;
3688
public QueryExpressionFromClause FromClause {
3693
fromClause = value ?? QueryExpressionFromClause.Null;
3694
if (!fromClause.IsNull) fromClause.Parent = this;
3698
public List<QueryExpressionClause> MiddleClauses {
3700
return middleClauses;
3703
middleClauses = value ?? new List<QueryExpressionClause>();
3707
public List<ExpressionRangeVariable> IntoVariables {
3709
return intoVariables;
3712
intoVariables = value ?? new List<ExpressionRangeVariable>();
3716
public QueryExpressionAggregateClause() {
3717
fromClause = QueryExpressionFromClause.Null;
3718
middleClauses = new List<QueryExpressionClause>();
3719
intoVariables = new List<ExpressionRangeVariable>();
3722
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3723
return visitor.VisitQueryExpressionAggregateClause(this, data);
3726
public override string ToString() {
3727
return string.Format("[QueryExpressionAggregateClause FromClause={0} MiddleClauses={1} IntoVariables={2" +
3728
"}]", FromClause, GetCollectionString(MiddleClauses), GetCollectionString(IntoVariables));
3732
public abstract class QueryExpressionClause : AbstractNode, INullable {
3734
protected QueryExpressionClause() {
3737
public virtual bool IsNull {
3743
public static QueryExpressionClause Null {
3745
return NullQueryExpressionClause.Instance;
3750
internal sealed class NullQueryExpressionClause : QueryExpressionClause {
3752
internal static NullQueryExpressionClause Instance = new NullQueryExpressionClause();
3754
public override bool IsNull {
3760
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3764
public override string ToString() {
3765
return "[NullQueryExpressionClause]";
3769
public class QueryExpressionDistinctClause : QueryExpressionClause {
3771
public QueryExpressionDistinctClause() {
3774
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3775
return visitor.VisitQueryExpressionDistinctClause(this, data);
3778
public override string ToString() {
3779
return "[QueryExpressionDistinctClause]";
3783
public class QueryExpressionFromClause : QueryExpressionFromOrJoinClause {
3785
public QueryExpressionFromClause() {
3788
public new static QueryExpressionFromClause Null {
3790
return NullQueryExpressionFromClause.Instance;
3794
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3795
return visitor.VisitQueryExpressionFromClause(this, data);
3798
public override string ToString() {
3799
return string.Format("[QueryExpressionFromClause Type={0} Identifier={1} InExpression={2}]", Type, Identifier, InExpression);
3803
internal sealed class NullQueryExpressionFromClause : QueryExpressionFromClause {
3805
internal static NullQueryExpressionFromClause Instance = new NullQueryExpressionFromClause();
3807
public override bool IsNull {
3813
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3817
public override string ToString() {
3818
return "[NullQueryExpressionFromClause]";
3822
public abstract class QueryExpressionFromOrJoinClause : QueryExpressionClause {
3828
Expression inExpression;
3830
public TypeReference Type {
3835
type = value ?? TypeReference.Null;
3836
if (!type.IsNull) type.Parent = this;
3840
public string Identifier {
3845
identifier = string.IsNullOrEmpty(value) ? "?" : value;
3849
public Expression InExpression {
3851
return inExpression;
3854
inExpression = value ?? Expression.Null;
3855
if (!inExpression.IsNull) inExpression.Parent = this;
3859
protected QueryExpressionFromOrJoinClause() {
3860
type = TypeReference.Null;
3862
inExpression = Expression.Null;
3866
public class QueryExpressionGroupClause : QueryExpressionClause {
3868
Expression projection;
3872
public Expression Projection {
3877
projection = value ?? Expression.Null;
3878
if (!projection.IsNull) projection.Parent = this;
3882
public Expression GroupBy {
3887
groupBy = value ?? Expression.Null;
3888
if (!groupBy.IsNull) groupBy.Parent = this;
3892
public QueryExpressionGroupClause() {
3893
projection = Expression.Null;
3894
groupBy = Expression.Null;
3897
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3898
return visitor.VisitQueryExpressionGroupClause(this, data);
3901
public override string ToString() {
3902
return string.Format("[QueryExpressionGroupClause Projection={0} GroupBy={1}]", Projection, GroupBy);
3906
public class QueryExpressionGroupJoinVBClause : QueryExpressionClause {
3908
QueryExpressionJoinVBClause joinClause;
3910
List<ExpressionRangeVariable> intoVariables;
3912
public QueryExpressionJoinVBClause JoinClause {
3917
joinClause = value ?? QueryExpressionJoinVBClause.Null;
3918
if (!joinClause.IsNull) joinClause.Parent = this;
3922
public List<ExpressionRangeVariable> IntoVariables {
3924
return intoVariables;
3927
intoVariables = value ?? new List<ExpressionRangeVariable>();
3931
public QueryExpressionGroupJoinVBClause() {
3932
joinClause = QueryExpressionJoinVBClause.Null;
3933
intoVariables = new List<ExpressionRangeVariable>();
3936
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3937
return visitor.VisitQueryExpressionGroupJoinVBClause(this, data);
3940
public override string ToString() {
3941
return string.Format("[QueryExpressionGroupJoinVBClause JoinClause={0} IntoVariables={1}]", JoinClause, GetCollectionString(IntoVariables));
3945
public class QueryExpressionGroupVBClause : QueryExpressionClause {
3947
List<ExpressionRangeVariable> groupVariables;
3949
List<ExpressionRangeVariable> byVariables;
3951
List<ExpressionRangeVariable> intoVariables;
3953
public List<ExpressionRangeVariable> GroupVariables {
3955
return groupVariables;
3958
groupVariables = value ?? new List<ExpressionRangeVariable>();
3962
public List<ExpressionRangeVariable> ByVariables {
3967
byVariables = value ?? new List<ExpressionRangeVariable>();
3971
public List<ExpressionRangeVariable> IntoVariables {
3973
return intoVariables;
3976
intoVariables = value ?? new List<ExpressionRangeVariable>();
3980
public QueryExpressionGroupVBClause() {
3981
groupVariables = new List<ExpressionRangeVariable>();
3982
byVariables = new List<ExpressionRangeVariable>();
3983
intoVariables = new List<ExpressionRangeVariable>();
3986
public override object AcceptVisitor(IAstVisitor visitor, object data) {
3987
return visitor.VisitQueryExpressionGroupVBClause(this, data);
3990
public override string ToString() {
3991
return string.Format("[QueryExpressionGroupVBClause GroupVariables={0} ByVariables={1} IntoVariables={2" +
3992
"}]", GetCollectionString(GroupVariables), GetCollectionString(ByVariables), GetCollectionString(IntoVariables));
3996
public class QueryExpressionJoinClause : QueryExpressionFromOrJoinClause {
3998
Expression onExpression;
4000
Expression equalsExpression;
4002
string intoIdentifier;
4004
public Expression OnExpression {
4006
return onExpression;
4009
onExpression = value ?? Expression.Null;
4010
if (!onExpression.IsNull) onExpression.Parent = this;
4014
public Expression EqualsExpression {
4016
return equalsExpression;
4019
equalsExpression = value ?? Expression.Null;
4020
if (!equalsExpression.IsNull) equalsExpression.Parent = this;
4024
public string IntoIdentifier {
4026
return intoIdentifier;
4029
intoIdentifier = value ?? "";
4033
public QueryExpressionJoinClause() {
4034
onExpression = Expression.Null;
4035
equalsExpression = Expression.Null;
4036
intoIdentifier = "";
4039
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4040
return visitor.VisitQueryExpressionJoinClause(this, data);
4043
public override string ToString() {
4044
return string.Format("[QueryExpressionJoinClause OnExpression={0} EqualsExpression={1} IntoIdentifier={" +
4045
"2} Type={3} Identifier={4} InExpression={5}]", OnExpression, EqualsExpression, IntoIdentifier, Type, Identifier, InExpression);
4049
public class QueryExpressionJoinConditionVB : AbstractNode {
4051
Expression leftSide;
4053
Expression rightSide;
4055
public Expression LeftSide {
4060
leftSide = value ?? Expression.Null;
4061
if (!leftSide.IsNull) leftSide.Parent = this;
4065
public Expression RightSide {
4070
rightSide = value ?? Expression.Null;
4071
if (!rightSide.IsNull) rightSide.Parent = this;
4075
public QueryExpressionJoinConditionVB() {
4076
leftSide = Expression.Null;
4077
rightSide = Expression.Null;
4080
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4081
return visitor.VisitQueryExpressionJoinConditionVB(this, data);
4084
public override string ToString() {
4085
return string.Format("[QueryExpressionJoinConditionVB LeftSide={0} RightSide={1}]", LeftSide, RightSide);
4089
public class QueryExpressionJoinVBClause : QueryExpressionClause {
4091
QueryExpressionFromClause joinVariable;
4093
QueryExpressionJoinVBClause subJoin;
4095
List<QueryExpressionJoinConditionVB> conditions;
4097
public QueryExpressionFromClause JoinVariable {
4099
return joinVariable;
4102
joinVariable = value ?? QueryExpressionFromClause.Null;
4103
if (!joinVariable.IsNull) joinVariable.Parent = this;
4107
public QueryExpressionJoinVBClause SubJoin {
4112
subJoin = value ?? QueryExpressionJoinVBClause.Null;
4113
if (!subJoin.IsNull) subJoin.Parent = this;
4117
public List<QueryExpressionJoinConditionVB> Conditions {
4122
conditions = value ?? new List<QueryExpressionJoinConditionVB>();
4126
public QueryExpressionJoinVBClause() {
4127
joinVariable = QueryExpressionFromClause.Null;
4128
subJoin = QueryExpressionJoinVBClause.Null;
4129
conditions = new List<QueryExpressionJoinConditionVB>();
4132
public new static QueryExpressionJoinVBClause Null {
4134
return NullQueryExpressionJoinVBClause.Instance;
4138
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4139
return visitor.VisitQueryExpressionJoinVBClause(this, data);
4142
public override string ToString() {
4143
return string.Format("[QueryExpressionJoinVBClause JoinVariable={0} SubJoin={1} Conditions={2}]", JoinVariable, SubJoin, GetCollectionString(Conditions));
4147
internal sealed class NullQueryExpressionJoinVBClause : QueryExpressionJoinVBClause {
4149
internal static NullQueryExpressionJoinVBClause Instance = new NullQueryExpressionJoinVBClause();
4151
public override bool IsNull {
4157
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4161
public override string ToString() {
4162
return "[NullQueryExpressionJoinVBClause]";
4166
public class QueryExpressionLetClause : QueryExpressionClause {
4170
Expression expression;
4172
public string Identifier {
4177
identifier = string.IsNullOrEmpty(value) ? "?" : value;
4181
public Expression Expression {
4186
expression = value ?? Expression.Null;
4187
if (!expression.IsNull) expression.Parent = this;
4191
public QueryExpressionLetClause() {
4193
expression = Expression.Null;
4196
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4197
return visitor.VisitQueryExpressionLetClause(this, data);
4200
public override string ToString() {
4201
return string.Format("[QueryExpressionLetClause Identifier={0} Expression={1}]", Identifier, Expression);
4205
public class QueryExpressionLetVBClause : QueryExpressionClause {
4207
List<ExpressionRangeVariable> variables;
4209
public List<ExpressionRangeVariable> Variables {
4214
variables = value ?? new List<ExpressionRangeVariable>();
4218
public QueryExpressionLetVBClause() {
4219
variables = new List<ExpressionRangeVariable>();
4222
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4223
return visitor.VisitQueryExpressionLetVBClause(this, data);
4226
public override string ToString() {
4227
return string.Format("[QueryExpressionLetVBClause Variables={0}]", GetCollectionString(Variables));
4231
public class QueryExpressionOrderClause : QueryExpressionClause {
4233
List<QueryExpressionOrdering> orderings;
4235
public List<QueryExpressionOrdering> Orderings {
4240
orderings = value ?? new List<QueryExpressionOrdering>();
4244
public QueryExpressionOrderClause() {
4245
orderings = new List<QueryExpressionOrdering>();
4248
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4249
return visitor.VisitQueryExpressionOrderClause(this, data);
4252
public override string ToString() {
4253
return string.Format("[QueryExpressionOrderClause Orderings={0}]", GetCollectionString(Orderings));
4257
public class QueryExpressionOrdering : AbstractNode {
4259
Expression criteria;
4261
QueryExpressionOrderingDirection direction;
4263
public Expression Criteria {
4268
criteria = value ?? Expression.Null;
4269
if (!criteria.IsNull) criteria.Parent = this;
4273
public QueryExpressionOrderingDirection Direction {
4282
public QueryExpressionOrdering() {
4283
criteria = Expression.Null;
4286
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4287
return visitor.VisitQueryExpressionOrdering(this, data);
4290
public override string ToString() {
4291
return string.Format("[QueryExpressionOrdering Criteria={0} Direction={1}]", Criteria, Direction);
4295
public class QueryExpressionPartitionVBClause : QueryExpressionClause {
4297
Expression expression;
4299
QueryExpressionPartitionType partitionType;
4301
public Expression Expression {
4306
expression = value ?? Expression.Null;
4307
if (!expression.IsNull) expression.Parent = this;
4311
public QueryExpressionPartitionType PartitionType {
4313
return partitionType;
4316
partitionType = value;
4320
public QueryExpressionPartitionVBClause() {
4321
expression = Expression.Null;
4324
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4325
return visitor.VisitQueryExpressionPartitionVBClause(this, data);
4328
public override string ToString() {
4329
return string.Format("[QueryExpressionPartitionVBClause Expression={0} PartitionType={1}]", Expression, PartitionType);
4333
public class QueryExpressionSelectClause : QueryExpressionClause {
4335
Expression projection;
4337
public Expression Projection {
4342
projection = value ?? Expression.Null;
4343
if (!projection.IsNull) projection.Parent = this;
4347
public QueryExpressionSelectClause() {
4348
projection = Expression.Null;
4351
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4352
return visitor.VisitQueryExpressionSelectClause(this, data);
4355
public override string ToString() {
4356
return string.Format("[QueryExpressionSelectClause Projection={0}]", Projection);
4360
public class QueryExpressionSelectVBClause : QueryExpressionClause {
4362
List<ExpressionRangeVariable> variables;
4364
public List<ExpressionRangeVariable> Variables {
4369
variables = value ?? new List<ExpressionRangeVariable>();
4373
public QueryExpressionSelectVBClause() {
4374
variables = new List<ExpressionRangeVariable>();
4377
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4378
return visitor.VisitQueryExpressionSelectVBClause(this, data);
4381
public override string ToString() {
4382
return string.Format("[QueryExpressionSelectVBClause Variables={0}]", GetCollectionString(Variables));
4386
public class QueryExpressionWhereClause : QueryExpressionClause {
4388
Expression condition;
4390
public Expression Condition {
4395
condition = value ?? Expression.Null;
4396
if (!condition.IsNull) condition.Parent = this;
4400
public QueryExpressionWhereClause() {
4401
condition = Expression.Null;
4404
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4405
return visitor.VisitQueryExpressionWhereClause(this, data);
4408
public override string ToString() {
4409
return string.Format("[QueryExpressionWhereClause Condition={0}]", Condition);
4413
public class RaiseEventStatement : Statement {
4417
List<Expression> arguments;
4419
public string EventName {
4424
eventName = value ?? "";
4428
public List<Expression> Arguments {
4433
arguments = value ?? new List<Expression>();
4437
public RaiseEventStatement(string eventName, List<Expression> arguments) {
4438
EventName = eventName;
4439
Arguments = arguments;
4442
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4443
return visitor.VisitRaiseEventStatement(this, data);
4446
public override string ToString() {
4447
return string.Format("[RaiseEventStatement EventName={0} Arguments={1}]", EventName, GetCollectionString(Arguments));
4451
public class ReDimStatement : Statement {
4453
List<InvocationExpression> reDimClauses;
4457
public List<InvocationExpression> ReDimClauses {
4459
return reDimClauses;
4462
reDimClauses = value ?? new List<InvocationExpression>();
4466
public bool IsPreserve {
4475
public ReDimStatement(bool isPreserve) {
4476
IsPreserve = isPreserve;
4477
reDimClauses = new List<InvocationExpression>();
4480
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4481
return visitor.VisitReDimStatement(this, data);
4484
public override string ToString() {
4485
return string.Format("[ReDimStatement ReDimClauses={0} IsPreserve={1}]", GetCollectionString(ReDimClauses), IsPreserve);
4489
public class RemoveHandlerStatement : Statement {
4491
Expression eventExpression;
4493
Expression handlerExpression;
4495
public Expression EventExpression {
4497
return eventExpression;
4500
eventExpression = value ?? Expression.Null;
4501
if (!eventExpression.IsNull) eventExpression.Parent = this;
4505
public Expression HandlerExpression {
4507
return handlerExpression;
4510
handlerExpression = value ?? Expression.Null;
4511
if (!handlerExpression.IsNull) handlerExpression.Parent = this;
4515
public RemoveHandlerStatement(Expression eventExpression, Expression handlerExpression) {
4516
EventExpression = eventExpression;
4517
HandlerExpression = handlerExpression;
4520
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4521
return visitor.VisitRemoveHandlerStatement(this, data);
4524
public override string ToString() {
4525
return string.Format("[RemoveHandlerStatement EventExpression={0} HandlerExpression={1}]", EventExpression, HandlerExpression);
4529
public class ResumeStatement : Statement {
4535
public string LabelName {
4540
labelName = value ?? "";
4544
public bool IsResumeNext {
4546
return isResumeNext;
4549
isResumeNext = value;
4553
public ResumeStatement(bool isResumeNext) {
4554
IsResumeNext = isResumeNext;
4558
public ResumeStatement(string labelName) {
4559
LabelName = labelName;
4562
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4563
return visitor.VisitResumeStatement(this, data);
4566
public override string ToString() {
4567
return string.Format("[ResumeStatement LabelName={0} IsResumeNext={1}]", LabelName, IsResumeNext);
4571
public class ReturnStatement : Statement {
4573
Expression expression;
4575
public Expression Expression {
4580
expression = value ?? Expression.Null;
4581
if (!expression.IsNull) expression.Parent = this;
4585
public ReturnStatement(Expression expression) {
4586
Expression = expression;
4589
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4590
return visitor.VisitReturnStatement(this, data);
4593
public override string ToString() {
4594
return string.Format("[ReturnStatement Expression={0}]", Expression);
4598
public class SizeOfExpression : Expression {
4600
TypeReference typeReference;
4602
public TypeReference TypeReference {
4604
return typeReference;
4607
typeReference = value ?? TypeReference.Null;
4608
if (!typeReference.IsNull) typeReference.Parent = this;
4612
public SizeOfExpression(TypeReference typeReference) {
4613
TypeReference = typeReference;
4616
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4617
return visitor.VisitSizeOfExpression(this, data);
4620
public override string ToString() {
4621
return string.Format("[SizeOfExpression TypeReference={0}]", TypeReference);
4625
public class StackAllocExpression : Expression {
4627
TypeReference typeReference;
4629
Expression expression;
4631
public TypeReference TypeReference {
4633
return typeReference;
4636
typeReference = value ?? TypeReference.Null;
4637
if (!typeReference.IsNull) typeReference.Parent = this;
4641
public Expression Expression {
4646
expression = value ?? Expression.Null;
4647
if (!expression.IsNull) expression.Parent = this;
4651
public StackAllocExpression(TypeReference typeReference, Expression expression) {
4652
TypeReference = typeReference;
4653
Expression = expression;
4656
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4657
return visitor.VisitStackAllocExpression(this, data);
4660
public override string ToString() {
4661
return string.Format("[StackAllocExpression TypeReference={0} Expression={1}]", TypeReference, Expression);
4665
public class StopStatement : Statement {
4667
public StopStatement() {
4670
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4671
return visitor.VisitStopStatement(this, data);
4674
public override string ToString() {
4675
return "[StopStatement]";
4679
public class SwitchSection : BlockStatement {
4681
List<CaseLabel> switchLabels;
4683
public List<CaseLabel> SwitchLabels {
4685
return switchLabels;
4688
switchLabels = value ?? new List<CaseLabel>();
4692
public SwitchSection() {
4693
switchLabels = new List<CaseLabel>();
4696
public SwitchSection(List<CaseLabel> switchLabels) {
4697
SwitchLabels = switchLabels;
4700
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4701
return visitor.VisitSwitchSection(this, data);
4704
public override string ToString() {
4705
return string.Format("[SwitchSection SwitchLabels={0}]", GetCollectionString(SwitchLabels));
4709
public class SwitchStatement : Statement {
4711
Expression switchExpression;
4713
List<SwitchSection> switchSections;
4715
public Expression SwitchExpression {
4717
return switchExpression;
4720
switchExpression = value ?? Expression.Null;
4721
if (!switchExpression.IsNull) switchExpression.Parent = this;
4725
public List<SwitchSection> SwitchSections {
4727
return switchSections;
4730
switchSections = value ?? new List<SwitchSection>();
4734
public SwitchStatement(Expression switchExpression, List<SwitchSection> switchSections) {
4735
SwitchExpression = switchExpression;
4736
SwitchSections = switchSections;
4739
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4740
return visitor.VisitSwitchStatement(this, data);
4743
public override string ToString() {
4744
return string.Format("[SwitchStatement SwitchExpression={0} SwitchSections={1}]", SwitchExpression, GetCollectionString(SwitchSections));
4748
public class TemplateDefinition : AttributedNode {
4752
List<TypeReference> bases;
4754
public string Name {
4759
name = string.IsNullOrEmpty(value) ? "?" : value;
4763
public List<TypeReference> Bases {
4768
bases = value ?? new List<TypeReference>();
4772
public TemplateDefinition(string name, List<AttributeSection> attributes) {
4774
Attributes = attributes;
4775
bases = new List<TypeReference>();
4778
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4779
return visitor.VisitTemplateDefinition(this, data);
4782
public override string ToString() {
4783
return string.Format("[TemplateDefinition Name={0} Bases={1} Attributes={2} Modifier={3}]", Name, GetCollectionString(Bases), GetCollectionString(Attributes), Modifier);
4787
public class ThisReferenceExpression : Expression {
4789
public ThisReferenceExpression() {
4792
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4793
return visitor.VisitThisReferenceExpression(this, data);
4796
public override string ToString() {
4797
return "[ThisReferenceExpression]";
4801
public class ThrowStatement : Statement {
4803
Expression expression;
4805
public Expression Expression {
4810
expression = value ?? Expression.Null;
4811
if (!expression.IsNull) expression.Parent = this;
4815
public ThrowStatement(Expression expression) {
4816
Expression = expression;
4819
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4820
return visitor.VisitThrowStatement(this, data);
4823
public override string ToString() {
4824
return string.Format("[ThrowStatement Expression={0}]", Expression);
4828
public class TryCatchStatement : Statement {
4830
Statement statementBlock;
4832
List<CatchClause> catchClauses;
4834
Statement finallyBlock;
4836
public Statement StatementBlock {
4838
return statementBlock;
4841
statementBlock = value ?? Statement.Null;
4842
if (!statementBlock.IsNull) statementBlock.Parent = this;
4846
public List<CatchClause> CatchClauses {
4848
return catchClauses;
4851
catchClauses = value ?? new List<CatchClause>();
4855
public Statement FinallyBlock {
4857
return finallyBlock;
4860
finallyBlock = value ?? Statement.Null;
4861
if (!finallyBlock.IsNull) finallyBlock.Parent = this;
4865
public TryCatchStatement(Statement statementBlock, List<CatchClause> catchClauses, Statement finallyBlock) {
4866
StatementBlock = statementBlock;
4867
CatchClauses = catchClauses;
4868
FinallyBlock = finallyBlock;
4871
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4872
return visitor.VisitTryCatchStatement(this, data);
4875
public override string ToString() {
4876
return string.Format("[TryCatchStatement StatementBlock={0} CatchClauses={1} FinallyBlock={2}]", StatementBlock, GetCollectionString(CatchClauses), FinallyBlock);
4880
public class TypeDeclaration : AttributedNode {
4886
List<TypeReference> baseTypes;
4888
List<TemplateDefinition> templates;
4890
Location bodyStartLocation;
4892
public string Name {
4901
public ClassType Type {
4910
public List<TypeReference> BaseTypes {
4915
baseTypes = value ?? new List<TypeReference>();
4919
public List<TemplateDefinition> Templates {
4924
templates = value ?? new List<TemplateDefinition>();
4928
public Location BodyStartLocation {
4930
return bodyStartLocation;
4933
bodyStartLocation = value;
4937
public TypeDeclaration(Modifiers modifier, List<AttributeSection> attributes) {
4938
Modifier = modifier;
4939
Attributes = attributes;
4941
baseTypes = new List<TypeReference>();
4942
templates = new List<TemplateDefinition>();
4943
bodyStartLocation = Location.Empty;
4946
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4947
return visitor.VisitTypeDeclaration(this, data);
4950
public override string ToString() {
4951
return string.Format("[TypeDeclaration Name={0} Type={1} BaseTypes={2} Templates={3} BodyStartLocation=" +
4952
"{4} Attributes={5} Modifier={6}]", Name, Type, GetCollectionString(BaseTypes), GetCollectionString(Templates), BodyStartLocation, GetCollectionString(Attributes), Modifier);
4956
public class TypeOfExpression : Expression {
4958
TypeReference typeReference;
4960
public TypeReference TypeReference {
4962
return typeReference;
4965
typeReference = value ?? TypeReference.Null;
4966
if (!typeReference.IsNull) typeReference.Parent = this;
4970
public TypeOfExpression(TypeReference typeReference) {
4971
TypeReference = typeReference;
4974
public override object AcceptVisitor(IAstVisitor visitor, object data) {
4975
return visitor.VisitTypeOfExpression(this, data);
4978
public override string ToString() {
4979
return string.Format("[TypeOfExpression TypeReference={0}]", TypeReference);
4983
public class TypeOfIsExpression : Expression {
4985
Expression expression;
4987
TypeReference typeReference;
4989
public Expression Expression {
4994
expression = value ?? Expression.Null;
4995
if (!expression.IsNull) expression.Parent = this;
4999
public TypeReference TypeReference {
5001
return typeReference;
5004
typeReference = value ?? TypeReference.Null;
5005
if (!typeReference.IsNull) typeReference.Parent = this;
5009
public TypeOfIsExpression(Expression expression, TypeReference typeReference) {
5010
Expression = expression;
5011
TypeReference = typeReference;
5014
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5015
return visitor.VisitTypeOfIsExpression(this, data);
5018
public override string ToString() {
5019
return string.Format("[TypeOfIsExpression Expression={0} TypeReference={1}]", Expression, TypeReference);
5023
public class TypeReferenceExpression : Expression {
5025
TypeReference typeReference;
5027
public TypeReference TypeReference {
5029
return typeReference;
5032
typeReference = value ?? TypeReference.Null;
5033
if (!typeReference.IsNull) typeReference.Parent = this;
5037
public TypeReferenceExpression(TypeReference typeReference) {
5038
TypeReference = typeReference;
5041
[Obsolete] public TypeReferenceExpression(string typeName) : this(new TypeReference(typeName)) {}
5043
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5044
return visitor.VisitTypeReferenceExpression(this, data);
5047
public override string ToString() {
5048
return string.Format("[TypeReferenceExpression TypeReference={0}]", TypeReference);
5052
public class UnaryOperatorExpression : Expression {
5054
UnaryOperatorType op;
5056
Expression expression;
5058
public UnaryOperatorType Op {
5067
public Expression Expression {
5072
expression = value ?? Expression.Null;
5073
if (!expression.IsNull) expression.Parent = this;
5077
public UnaryOperatorExpression(UnaryOperatorType op) {
5079
expression = Expression.Null;
5082
public UnaryOperatorExpression(Expression expression, UnaryOperatorType op) {
5083
Expression = expression;
5087
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5088
return visitor.VisitUnaryOperatorExpression(this, data);
5091
public override string ToString() {
5092
return string.Format("[UnaryOperatorExpression Op={0} Expression={1}]", Op, Expression);
5096
public class UncheckedExpression : Expression {
5098
Expression expression;
5100
public Expression Expression {
5105
expression = value ?? Expression.Null;
5106
if (!expression.IsNull) expression.Parent = this;
5110
public UncheckedExpression(Expression expression) {
5111
Expression = expression;
5114
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5115
return visitor.VisitUncheckedExpression(this, data);
5118
public override string ToString() {
5119
return string.Format("[UncheckedExpression Expression={0}]", Expression);
5123
public class UncheckedStatement : Statement {
5127
public Statement Block {
5132
block = value ?? Statement.Null;
5133
if (!block.IsNull) block.Parent = this;
5137
public UncheckedStatement(Statement block) {
5141
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5142
return visitor.VisitUncheckedStatement(this, data);
5145
public override string ToString() {
5146
return string.Format("[UncheckedStatement Block={0}]", Block);
5150
public class UnsafeStatement : Statement {
5154
public Statement Block {
5159
block = value ?? Statement.Null;
5160
if (!block.IsNull) block.Parent = this;
5164
public UnsafeStatement(Statement block) {
5168
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5169
return visitor.VisitUnsafeStatement(this, data);
5172
public override string ToString() {
5173
return string.Format("[UnsafeStatement Block={0}]", Block);
5177
public class Using : AbstractNode {
5181
TypeReference alias;
5183
public string Name {
5188
name = string.IsNullOrEmpty(value) ? "?" : value;
5192
public TypeReference Alias {
5197
alias = value ?? TypeReference.Null;
5198
if (!alias.IsNull) alias.Parent = this;
5202
public Using(string name) {
5204
alias = TypeReference.Null;
5207
public Using(string name, TypeReference alias) {
5212
public bool IsAlias {
5214
return !alias.IsNull;
5218
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5219
return visitor.VisitUsing(this, data);
5222
public override string ToString() {
5223
return string.Format("[Using Name={0} Alias={1}]", Name, Alias);
5227
public class UsingDeclaration : AbstractNode {
5231
public List<Using> Usings {
5236
usings = value ?? new List<Using>();
5240
public UsingDeclaration(List<Using> usings) {
5244
public UsingDeclaration(string @namespace) : this(@namespace, null) {}
5246
public UsingDeclaration(string @namespace, TypeReference alias) { usings = new List<Using>(1); usings.Add(new Using(@namespace, alias)); }
5248
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5249
return visitor.VisitUsingDeclaration(this, data);
5252
public override string ToString() {
5253
return string.Format("[UsingDeclaration Usings={0}]", GetCollectionString(Usings));
5257
public class UsingStatement : StatementWithEmbeddedStatement {
5259
Statement resourceAcquisition;
5261
public Statement ResourceAcquisition {
5263
return resourceAcquisition;
5266
resourceAcquisition = value ?? Statement.Null;
5267
if (!resourceAcquisition.IsNull) resourceAcquisition.Parent = this;
5271
public UsingStatement(Statement resourceAcquisition, Statement embeddedStatement) {
5272
ResourceAcquisition = resourceAcquisition;
5273
EmbeddedStatement = embeddedStatement;
5276
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5277
return visitor.VisitUsingStatement(this, data);
5280
public override string ToString() {
5281
return string.Format("[UsingStatement ResourceAcquisition={0} EmbeddedStatement={1}]", ResourceAcquisition, EmbeddedStatement);
5285
public class VariableDeclaration : AbstractNode {
5289
Expression initializer;
5291
TypeReference typeReference;
5293
Expression fixedArrayInitialization;
5295
public string Name {
5304
public Expression Initializer {
5309
initializer = value ?? Expression.Null;
5310
if (!initializer.IsNull) initializer.Parent = this;
5314
public TypeReference TypeReference {
5316
return typeReference;
5319
typeReference = value ?? TypeReference.Null;
5320
if (!typeReference.IsNull) typeReference.Parent = this;
5324
public Expression FixedArrayInitialization {
5326
return fixedArrayInitialization;
5329
fixedArrayInitialization = value ?? Expression.Null;
5330
if (!fixedArrayInitialization.IsNull) fixedArrayInitialization.Parent = this;
5334
public VariableDeclaration(string name) {
5336
initializer = Expression.Null;
5337
typeReference = TypeReference.Null;
5338
fixedArrayInitialization = Expression.Null;
5341
public VariableDeclaration(string name, Expression initializer) {
5343
Initializer = initializer;
5344
typeReference = TypeReference.Null;
5345
fixedArrayInitialization = Expression.Null;
5348
public VariableDeclaration(string name, Expression initializer, TypeReference typeReference) {
5350
Initializer = initializer;
5351
TypeReference = typeReference;
5352
fixedArrayInitialization = Expression.Null;
5355
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5356
return visitor.VisitVariableDeclaration(this, data);
5359
public override string ToString() {
5360
return string.Format("[VariableDeclaration Name={0} Initializer={1} TypeReference={2} FixedArrayInitial" +
5361
"ization={3}]", Name, Initializer, TypeReference, FixedArrayInitialization);
5365
public class WithStatement : Statement {
5367
Expression expression;
5369
BlockStatement body;
5371
public Expression Expression {
5376
expression = value ?? Expression.Null;
5377
if (!expression.IsNull) expression.Parent = this;
5381
public BlockStatement Body {
5386
body = value ?? BlockStatement.Null;
5387
if (!body.IsNull) body.Parent = this;
5391
public WithStatement(Expression expression) {
5392
Expression = expression;
5393
body = BlockStatement.Null;
5396
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5397
return visitor.VisitWithStatement(this, data);
5400
public override string ToString() {
5401
return string.Format("[WithStatement Expression={0} Body={1}]", Expression, Body);
5405
public class YieldStatement : Statement {
5407
Statement statement;
5409
public Statement Statement {
5414
statement = value ?? Statement.Null;
5415
if (!statement.IsNull) statement.Parent = this;
5419
public YieldStatement(Statement statement) {
5420
Statement = statement;
5423
public bool IsYieldBreak {
5425
return statement is BreakStatement;
5429
public bool IsYieldReturn {
5431
return statement is ReturnStatement;
5435
public override object AcceptVisitor(IAstVisitor visitor, object data) {
5436
return visitor.VisitYieldStatement(this, data);
5439
public override string ToString() {
5440
return string.Format("[YieldStatement Statement={0}]", Statement);