//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) //// This code is distributed under MIT X11 license (for details please see \doc\license.txt) //using System; //using System.Collections.Generic; // //namespace ICSharpCode.NRefactory.VB.Ast { // public class AddHandlerStatement : Statement { // // Expression eventExpression; // // Expression handlerExpression; // // public Expression EventExpression { // get { // return eventExpression; // } // set { // eventExpression = value ?? Expression.Null; // if (!eventExpression.IsNull) eventExpression.Parent = this; // } // } // // public Expression HandlerExpression { // get { // return handlerExpression; // } // set { // handlerExpression = value ?? Expression.Null; // if (!handlerExpression.IsNull) handlerExpression.Parent = this; // } // } // // public AddHandlerStatement(Expression eventExpression, Expression handlerExpression) { // EventExpression = eventExpression; // HandlerExpression = handlerExpression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitAddHandlerStatement(this, data); // } // // public override string ToString() { // return string.Format("[AddHandlerStatement EventExpression={0} HandlerExpression={1}]", EventExpression, HandlerExpression); // } // } // // public class AddressOfExpression : Expression { // // Expression expression; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public AddressOfExpression(Expression expression) { // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitAddressOfExpression(this, data); // } // // public override string ToString() { // return string.Format("[AddressOfExpression Expression={0}]", Expression); // } // } // // public class ArrayCreateExpression : Expression { // // TypeReference createType; // // List arguments; // // CollectionInitializerExpression arrayInitializer; // // public TypeReference CreateType { // get { // return createType; // } // set { // createType = value ?? TypeReference.Null; // if (!createType.IsNull) createType.Parent = this; // } // } // // public List Arguments { // get { // return arguments; // } // set { // arguments = value ?? new List(); // } // } // // public CollectionInitializerExpression ArrayInitializer { // get { // return arrayInitializer; // } // set { // arrayInitializer = value ?? CollectionInitializerExpression.Null; // if (!arrayInitializer.IsNull) arrayInitializer.Parent = this; // } // } // // public ArrayCreateExpression(TypeReference createType) { // CreateType = createType; // arguments = new List(); // arrayInitializer = CollectionInitializerExpression.Null; // } // // public ArrayCreateExpression(TypeReference createType, List arguments) { // CreateType = createType; // Arguments = arguments; // arrayInitializer = CollectionInitializerExpression.Null; // } // // public ArrayCreateExpression(TypeReference createType, CollectionInitializerExpression arrayInitializer) { // CreateType = createType; // ArrayInitializer = arrayInitializer; // arguments = new List(); // } // // public bool IsImplicitlyTyped { // get { // return createType.IsNull || string.IsNullOrEmpty(createType.Type); // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitArrayCreateExpression(this, data); // } // // public override string ToString() { // return string.Format("[ArrayCreateExpression CreateType={0} Arguments={1} ArrayInitializer={2}]", CreateType, GetCollectionString(Arguments), ArrayInitializer); // } // } // // public class AssignmentExpression : Expression { // // Expression left; // // AssignmentOperatorType op; // // Expression right; // // public Expression Left { // get { // return left; // } // set { // left = value ?? Expression.Null; // if (!left.IsNull) left.Parent = this; // } // } // // public AssignmentOperatorType Op { // get { // return op; // } // set { // op = value; // } // } // // public Expression Right { // get { // return right; // } // set { // right = value ?? Expression.Null; // if (!right.IsNull) right.Parent = this; // } // } // // public AssignmentExpression(Expression left, AssignmentOperatorType op, Expression right) { // Left = left; // Op = op; // Right = right; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitAssignmentExpression(this, data); // } // // public override string ToString() { // return string.Format("[AssignmentExpression Left={0} Op={1} Right={2}]", Left, Op, Right); // } // } // // public abstract class AttributedNode : AbstractNode { // // List attributes; // // Modifiers modifier; // // public List Attributes { // get { // return attributes; // } // set { // attributes = value ?? new List(); // } // } // // public Modifiers Modifier { // get { // return modifier; // } // set { // modifier = value; // } // } // // protected AttributedNode() { // attributes = new List(); // } // // protected AttributedNode(List attributes) { // Attributes = attributes; // } // // protected AttributedNode(Modifiers modifier, List attributes) { // Modifier = modifier; // Attributes = attributes; // } // } // // public class AttributeSection : AbstractNode { // // string attributeTarget; // // List attributes; // // public string AttributeTarget { // get { // return attributeTarget; // } // set { // attributeTarget = value ?? ""; // } // } // // public List Attributes { // get { // return attributes; // } // set { // attributes = value ?? new List(); // } // } // // public AttributeSection() { // attributeTarget = ""; // attributes = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitAttributeSection(this, data); // } // // public override string ToString() { // return string.Format("[AttributeSection AttributeTarget={0} Attributes={1}]", AttributeTarget, GetCollectionString(Attributes)); // } // } // // public class BaseReferenceExpression : Expression { // // public BaseReferenceExpression() { // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitBaseReferenceExpression(this, data); // } // // public override string ToString() { // return "[BaseReferenceExpression]"; // } // } // // public class BinaryOperatorExpression : Expression { // // Expression left; // // BinaryOperatorType op; // // Expression right; // // public Expression Left { // get { // return left; // } // set { // left = value ?? Expression.Null; // if (!left.IsNull) left.Parent = this; // } // } // // public BinaryOperatorType Op { // get { // return op; // } // set { // op = value; // } // } // // public Expression Right { // get { // return right; // } // set { // right = value ?? Expression.Null; // if (!right.IsNull) right.Parent = this; // } // } // // public BinaryOperatorExpression() { // left = Expression.Null; // right = Expression.Null; // } // // public BinaryOperatorExpression(Expression left, BinaryOperatorType op, Expression right) { // Left = left; // Op = op; // Right = right; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitBinaryOperatorExpression(this, data); // } // // public override string ToString() { // return string.Format("[BinaryOperatorExpression Left={0} Op={1} Right={2}]", Left, Op, Right); // } // } // // public class CaseLabel : AbstractNode { // // Expression label; // // BinaryOperatorType binaryOperatorType; // // Expression toExpression; // // public Expression Label { // get { // return label; // } // set { // label = value ?? Expression.Null; // if (!label.IsNull) label.Parent = this; // } // } // // public BinaryOperatorType BinaryOperatorType { // get { // return binaryOperatorType; // } // set { // binaryOperatorType = value; // } // } // // public Expression ToExpression { // get { // return toExpression; // } // set { // toExpression = value ?? Expression.Null; // if (!toExpression.IsNull) toExpression.Parent = this; // } // } // // public CaseLabel() { // label = Expression.Null; // toExpression = Expression.Null; // } // // public CaseLabel(Expression label) { // Label = label; // toExpression = Expression.Null; // } // // public CaseLabel(Expression label, Expression toExpression) { // Label = label; // ToExpression = toExpression; // } // // public CaseLabel(BinaryOperatorType binaryOperatorType, Expression label) { // BinaryOperatorType = binaryOperatorType; // Label = label; // toExpression = Expression.Null; // } // // public bool IsDefault { // get { // return label.IsNull; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitCaseLabel(this, data); // } // // public override string ToString() { // return string.Format("[CaseLabel Label={0} BinaryOperatorType={1} ToExpression={2}]", Label, BinaryOperatorType, ToExpression); // } // } // // public class CastExpression : Expression { // // TypeReference castTo; // // Expression expression; // // CastType castType; // // public TypeReference CastTo { // get { // return castTo; // } // set { // castTo = value ?? TypeReference.Null; // if (!castTo.IsNull) castTo.Parent = this; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public CastType CastType { // get { // return castType; // } // set { // castType = value; // } // } // // public CastExpression(TypeReference castTo) { // CastTo = castTo; // expression = Expression.Null; // } // // public CastExpression(TypeReference castTo, Expression expression, CastType castType) { // CastTo = castTo; // Expression = expression; // CastType = castType; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitCastExpression(this, data); // } // // public override string ToString() { // return string.Format("[CastExpression CastTo={0} Expression={1} CastType={2}]", CastTo, Expression, CastType); // } // } // // public class CatchClause : AbstractNode { // // TypeReference typeReference; // // string variableName; // // Statement statementBlock; // // Expression condition; // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public string VariableName { // get { // return variableName; // } // set { // variableName = value ?? ""; // } // } // // public Statement StatementBlock { // get { // return statementBlock; // } // set { // statementBlock = value ?? Statement.Null; // if (!statementBlock.IsNull) statementBlock.Parent = this; // } // } // // public Expression Condition { // get { // return condition; // } // set { // condition = value ?? Expression.Null; // if (!condition.IsNull) condition.Parent = this; // } // } // // public CatchClause(TypeReference typeReference, string variableName, Statement statementBlock) { // TypeReference = typeReference; // VariableName = variableName; // StatementBlock = statementBlock; // condition = Expression.Null; // } // // public CatchClause(TypeReference typeReference, string variableName, Statement statementBlock, Expression condition) { // TypeReference = typeReference; // VariableName = variableName; // StatementBlock = statementBlock; // Condition = condition; // } // // public CatchClause(Statement statementBlock) { // StatementBlock = statementBlock; // typeReference = TypeReference.Null; // variableName = ""; // condition = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitCatchClause(this, data); // } // // public override string ToString() { // return string.Format("[CatchClause TypeReference={0} VariableName={1} StatementBlock={2} Condition={3}]" + // "", TypeReference, VariableName, StatementBlock, Condition); // } // } // // public class ClassReferenceExpression : Expression { // // public ClassReferenceExpression() { // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitClassReferenceExpression(this, data); // } // // public override string ToString() { // return "[ClassReferenceExpression]"; // } // } // // public class CollectionInitializerExpression : Expression { // // List createExpressions; // // public List CreateExpressions { // get { // return createExpressions; // } // set { // createExpressions = value ?? new List(); // } // } // // public CollectionInitializerExpression() { // createExpressions = new List(); // } // // public CollectionInitializerExpression(List createExpressions) { // CreateExpressions = createExpressions; // } // // public new static CollectionInitializerExpression Null { // get { // return NullCollectionInitializerExpression.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitCollectionInitializerExpression(this, data); // } // // public override string ToString() { // return string.Format("[CollectionInitializerExpression CreateExpressions={0}]", GetCollectionString(CreateExpressions)); // } // } // // internal sealed class NullCollectionInitializerExpression : CollectionInitializerExpression { // // internal static NullCollectionInitializerExpression Instance = new NullCollectionInitializerExpression(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullCollectionInitializerExpression]"; // } // } // // public class CollectionRangeVariable : AbstractNode, INullable { // // string identifier; // // Expression expression; // // TypeReference type; // // public string Identifier { // get { // return identifier; // } // set { // identifier = value ?? ""; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public TypeReference Type { // get { // return type; // } // set { // type = value ?? TypeReference.Null; // if (!type.IsNull) type.Parent = this; // } // } // // public CollectionRangeVariable() { // identifier = ""; // expression = Expression.Null; // type = TypeReference.Null; // } // // public virtual bool IsNull { // get { // return false; // } // } // // public static CollectionRangeVariable Null { // get { // return NullCollectionRangeVariable.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitCollectionRangeVariable(this, data); // } // // public override string ToString() { // return string.Format("[CollectionRangeVariable Identifier={0} Expression={1} Type={2}]", Identifier, Expression, Type); // } // } // // internal sealed class NullCollectionRangeVariable : CollectionRangeVariable { // // internal static NullCollectionRangeVariable Instance = new NullCollectionRangeVariable(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullCollectionRangeVariable]"; // } // } // // public class ConditionalExpression : Expression { // // Expression condition; // // Expression trueExpression; // // Expression falseExpression; // // public Expression Condition { // get { // return condition; // } // set { // condition = value ?? Expression.Null; // if (!condition.IsNull) condition.Parent = this; // } // } // // public Expression TrueExpression { // get { // return trueExpression; // } // set { // trueExpression = value ?? Expression.Null; // if (!trueExpression.IsNull) trueExpression.Parent = this; // } // } // // public Expression FalseExpression { // get { // return falseExpression; // } // set { // falseExpression = value ?? Expression.Null; // if (!falseExpression.IsNull) falseExpression.Parent = this; // } // } // // public ConditionalExpression() { // condition = Expression.Null; // trueExpression = Expression.Null; // falseExpression = Expression.Null; // } // // public ConditionalExpression(Expression condition, Expression trueExpression, Expression falseExpression) { // Condition = condition; // TrueExpression = trueExpression; // FalseExpression = falseExpression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitConditionalExpression(this, data); // } // // public override string ToString() { // return string.Format("[ConditionalExpression Condition={0} TrueExpression={1} FalseExpression={2}]", Condition, TrueExpression, FalseExpression); // } // } // // public class ConstructorDeclaration : ParametrizedNode { // // ConstructorInitializer constructorInitializer; // // BlockStatement body; // // public ConstructorInitializer ConstructorInitializer { // get { // return constructorInitializer; // } // set { // constructorInitializer = value ?? ConstructorInitializer.Null; // if (!constructorInitializer.IsNull) constructorInitializer.Parent = this; // } // } // // public BlockStatement Body { // get { // return body; // } // set { // body = value ?? BlockStatement.Null; // if (!body.IsNull) body.Parent = this; // } // } // // public ConstructorDeclaration(string name, Modifiers modifier, List parameters, List attributes) { // Name = name; // Modifier = modifier; // Parameters = parameters; // Attributes = attributes; // constructorInitializer = ConstructorInitializer.Null; // body = BlockStatement.Null; // } // // public ConstructorDeclaration(string name, Modifiers modifier, List parameters, ConstructorInitializer constructorInitializer, List attributes) { // Name = name; // Modifier = modifier; // Parameters = parameters; // ConstructorInitializer = constructorInitializer; // Attributes = attributes; // body = BlockStatement.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitConstructorDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[ConstructorDeclaration ConstructorInitializer={0} Body={1} Name={2} Parameters={" + // "3} Attributes={4} Modifier={5}]", ConstructorInitializer, Body, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // public class ConstructorInitializer : AbstractNode, INullable { // // ConstructorInitializerType constructorInitializerType; // // List arguments; // // public ConstructorInitializerType ConstructorInitializerType { // get { // return constructorInitializerType; // } // set { // constructorInitializerType = value; // } // } // // public List Arguments { // get { // return arguments; // } // set { // arguments = value ?? new List(); // } // } // // public ConstructorInitializer() { // arguments = new List(); // } // // public virtual bool IsNull { // get { // return false; // } // } // // public static ConstructorInitializer Null { // get { // return NullConstructorInitializer.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitConstructorInitializer(this, data); // } // // public override string ToString() { // return string.Format("[ConstructorInitializer ConstructorInitializerType={0} Arguments={1}]", ConstructorInitializerType, GetCollectionString(Arguments)); // } // } // // internal sealed class NullConstructorInitializer : ConstructorInitializer { // // internal static NullConstructorInitializer Instance = new NullConstructorInitializer(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullConstructorInitializer]"; // } // } // // public class ContinueStatement : Statement { // // ContinueType continueType; // // public ContinueType ContinueType { // get { // return continueType; // } // set { // continueType = value; // } // } // // public ContinueStatement() { // } // // public ContinueStatement(ContinueType continueType) { // ContinueType = continueType; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitContinueStatement(this, data); // } // // public override string ToString() { // return string.Format("[ContinueStatement ContinueType={0}]", ContinueType); // } // } // // public class DeclareDeclaration : ParametrizedNode { // // string alias; // // string library; // // CharsetModifier charset; // // TypeReference typeReference; // // public string Alias { // get { // return alias; // } // set { // alias = value ?? ""; // } // } // // public string Library { // get { // return library; // } // set { // library = value ?? ""; // } // } // // public CharsetModifier Charset { // get { // return charset; // } // set { // charset = value; // } // } // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public DeclareDeclaration(string name, Modifiers modifier, TypeReference typeReference, List parameters, List attributes, string library, string alias, CharsetModifier charset) { // Name = name; // Modifier = modifier; // TypeReference = typeReference; // Parameters = parameters; // Attributes = attributes; // Library = library; // Alias = alias; // Charset = charset; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitDeclareDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[DeclareDeclaration Alias={0} Library={1} Charset={2} TypeReference={3} Name={4} " + // "Parameters={5} Attributes={6} Modifier={7}]", Alias, Library, Charset, TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // public class DefaultValueExpression : Expression { // // TypeReference typeReference; // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public DefaultValueExpression(TypeReference typeReference) { // TypeReference = typeReference; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitDefaultValueExpression(this, data); // } // // public override string ToString() { // return string.Format("[DefaultValueExpression TypeReference={0}]", TypeReference); // } // } // // public class DelegateDeclaration : AttributedNode { // // string name; // // TypeReference returnType; // // List parameters; // // List templates; // // public string Name { // get { // return name; // } // set { // name = string.IsNullOrEmpty(value) ? "?" : value; // } // } // // public TypeReference ReturnType { // get { // return returnType; // } // set { // returnType = value ?? TypeReference.Null; // if (!returnType.IsNull) returnType.Parent = this; // } // } // // public List Parameters { // get { // return parameters; // } // set { // parameters = value ?? new List(); // } // } // // public List Templates { // get { // return templates; // } // set { // templates = value ?? new List(); // } // } // // public DelegateDeclaration(Modifiers modifier, List attributes) { // Modifier = modifier; // Attributes = attributes; // name = "?"; // returnType = TypeReference.Null; // parameters = new List(); // templates = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitDelegateDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[DelegateDeclaration Name={0} ReturnType={1} Parameters={2} Templates={3} Attribu" + // "tes={4} Modifier={5}]", Name, ReturnType, GetCollectionString(Parameters), GetCollectionString(Templates), GetCollectionString(Attributes), Modifier); // } // } // // public class DirectionExpression : Expression { // // FieldDirection fieldDirection; // // Expression expression; // // public FieldDirection FieldDirection { // get { // return fieldDirection; // } // set { // fieldDirection = value; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public DirectionExpression(FieldDirection fieldDirection, Expression expression) { // FieldDirection = fieldDirection; // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitDirectionExpression(this, data); // } // // public override string ToString() { // return string.Format("[DirectionExpression FieldDirection={0} Expression={1}]", FieldDirection, Expression); // } // } // // public class DoLoopStatement : StatementWithEmbeddedStatement { // // Expression condition; // // ConditionType conditionType; // // ConditionPosition conditionPosition; // // public Expression Condition { // get { // return condition; // } // set { // condition = value ?? Expression.Null; // if (!condition.IsNull) condition.Parent = this; // } // } // // public ConditionType ConditionType { // get { // return conditionType; // } // set { // conditionType = value; // } // } // // public ConditionPosition ConditionPosition { // get { // return conditionPosition; // } // set { // conditionPosition = value; // } // } // // public DoLoopStatement(Expression condition, Statement embeddedStatement, ConditionType conditionType, ConditionPosition conditionPosition) { // Condition = condition; // EmbeddedStatement = embeddedStatement; // ConditionType = conditionType; // ConditionPosition = conditionPosition; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitDoLoopStatement(this, data); // } // // public override string ToString() { // return string.Format("[DoLoopStatement Condition={0} ConditionType={1} ConditionPosition={2} EmbeddedSt" + // "atement={3}]", Condition, ConditionType, ConditionPosition, EmbeddedStatement); // } // } // // public class ElseIfSection : StatementWithEmbeddedStatement { // // Expression condition; // // public Expression Condition { // get { // return condition; // } // set { // condition = value ?? Expression.Null; // if (!condition.IsNull) condition.Parent = this; // } // } // // public ElseIfSection(Expression condition, Statement embeddedStatement) { // Condition = condition; // EmbeddedStatement = embeddedStatement; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitElseIfSection(this, data); // } // // public override string ToString() { // return string.Format("[ElseIfSection Condition={0} EmbeddedStatement={1}]", Condition, EmbeddedStatement); // } // } // // public class EndStatement : Statement { // // public EndStatement() { // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitEndStatement(this, data); // } // // public override string ToString() { // return "[EndStatement]"; // } // } // // public class EraseStatement : Statement { // // List expressions; // // public List Expressions { // get { // return expressions; // } // set { // expressions = value ?? new List(); // } // } // // public EraseStatement() { // expressions = new List(); // } // // public EraseStatement(List expressions) { // Expressions = expressions; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitEraseStatement(this, data); // } // // public override string ToString() { // return string.Format("[EraseStatement Expressions={0}]", GetCollectionString(Expressions)); // } // } // // public class ErrorStatement : Statement { // // Expression expression; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public ErrorStatement(Expression expression) { // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitErrorStatement(this, data); // } // // public override string ToString() { // return string.Format("[ErrorStatement Expression={0}]", Expression); // } // } // // public class EventAddRegion : EventAddRemoveRegion { // // public EventAddRegion(List attributes) : // base(attributes) { // } // // public static EventAddRegion Null { // get { // return NullEventAddRegion.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitEventAddRegion(this, data); // } // // public override string ToString() { // return string.Format("[EventAddRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // internal sealed class NullEventAddRegion : EventAddRegion { // // private NullEventAddRegion() : // base(null) { // } // // internal static NullEventAddRegion Instance = new NullEventAddRegion(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullEventAddRegion]"; // } // } // // public abstract class EventAddRemoveRegion : AttributedNode, INullable { // // BlockStatement block; // // List parameters; // // public BlockStatement Block { // get { // return block; // } // set { // block = value ?? BlockStatement.Null; // if (!block.IsNull) block.Parent = this; // } // } // // public List Parameters { // get { // return parameters; // } // set { // parameters = value ?? new List(); // } // } // // protected EventAddRemoveRegion(List attributes) { // Attributes = attributes; // block = BlockStatement.Null; // parameters = new List(); // } // // public virtual bool IsNull { // get { // return false; // } // } // } // // public class EventDeclaration : MemberNode { // // EventAddRegion addRegion; // // EventRemoveRegion removeRegion; // // EventRaiseRegion raiseRegion; // // Location bodyStart; // // Location bodyEnd; // // Expression initializer; // // public EventAddRegion AddRegion { // get { // return addRegion; // } // set { // addRegion = value ?? EventAddRegion.Null; // if (!addRegion.IsNull) addRegion.Parent = this; // } // } // // public EventRemoveRegion RemoveRegion { // get { // return removeRegion; // } // set { // removeRegion = value ?? EventRemoveRegion.Null; // if (!removeRegion.IsNull) removeRegion.Parent = this; // } // } // // public EventRaiseRegion RaiseRegion { // get { // return raiseRegion; // } // set { // raiseRegion = value ?? EventRaiseRegion.Null; // if (!raiseRegion.IsNull) raiseRegion.Parent = this; // } // } // // public Location BodyStart { // get { // return bodyStart; // } // set { // bodyStart = value; // } // } // // public Location BodyEnd { // get { // return bodyEnd; // } // set { // bodyEnd = value; // } // } // // public Expression Initializer { // get { // return initializer; // } // set { // initializer = value ?? Expression.Null; // if (!initializer.IsNull) initializer.Parent = this; // } // } // // public EventDeclaration() { // addRegion = EventAddRegion.Null; // removeRegion = EventRemoveRegion.Null; // raiseRegion = EventRaiseRegion.Null; // bodyStart = Location.Empty; // bodyEnd = Location.Empty; // initializer = Expression.Null; // } // // public bool HasAddRegion { // get { // return !addRegion.IsNull; // } // } // // public bool HasRemoveRegion { // get { // return !removeRegion.IsNull; // } // } // // public bool HasRaiseRegion { // get { // return !raiseRegion.IsNull; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitEventDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[EventDeclaration AddRegion={0} RemoveRegion={1} RaiseRegion={2} BodyStart={3} Bo" + // "dyEnd={4} Initializer={5} InterfaceImplementations={6} TypeReference={7} Name={8" + // "} Parameters={9} Attributes={10} Modifier={11}]", AddRegion, RemoveRegion, RaiseRegion, BodyStart, BodyEnd, Initializer, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // public class EventRaiseRegion : EventAddRemoveRegion { // // public EventRaiseRegion(List attributes) : // base(attributes) { // } // // public static EventRaiseRegion Null { // get { // return NullEventRaiseRegion.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitEventRaiseRegion(this, data); // } // // public override string ToString() { // return string.Format("[EventRaiseRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // internal sealed class NullEventRaiseRegion : EventRaiseRegion { // // private NullEventRaiseRegion() : // base(null) { // } // // internal static NullEventRaiseRegion Instance = new NullEventRaiseRegion(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullEventRaiseRegion]"; // } // } // // public class EventRemoveRegion : EventAddRemoveRegion { // // public EventRemoveRegion(List attributes) : // base(attributes) { // } // // public static EventRemoveRegion Null { // get { // return NullEventRemoveRegion.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitEventRemoveRegion(this, data); // } // // public override string ToString() { // return string.Format("[EventRemoveRegion Block={0} Parameters={1} Attributes={2} Modifier={3}]", Block, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // internal sealed class NullEventRemoveRegion : EventRemoveRegion { // // private NullEventRemoveRegion() : // base(null) { // } // // internal static NullEventRemoveRegion Instance = new NullEventRemoveRegion(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullEventRemoveRegion]"; // } // } // // public class ExitStatement : Statement { // // ExitType exitType; // // public ExitType ExitType { // get { // return exitType; // } // set { // exitType = value; // } // } // // public ExitStatement(ExitType exitType) { // ExitType = exitType; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitExitStatement(this, data); // } // // public override string ToString() { // return string.Format("[ExitStatement ExitType={0}]", ExitType); // } // } // // public class ExpressionRangeVariable : AbstractNode, INullable { // // string identifier; // // Expression expression; // // TypeReference type; // // public string Identifier { // get { // return identifier; // } // set { // identifier = value ?? ""; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public TypeReference Type { // get { // return type; // } // set { // type = value ?? TypeReference.Null; // if (!type.IsNull) type.Parent = this; // } // } // // public ExpressionRangeVariable() { // identifier = ""; // expression = Expression.Null; // type = TypeReference.Null; // } // // public virtual bool IsNull { // get { // return false; // } // } // // public static ExpressionRangeVariable Null { // get { // return NullExpressionRangeVariable.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitExpressionRangeVariable(this, data); // } // // public override string ToString() { // return string.Format("[ExpressionRangeVariable Identifier={0} Expression={1} Type={2}]", Identifier, Expression, Type); // } // } // // internal sealed class NullExpressionRangeVariable : ExpressionRangeVariable { // // internal static NullExpressionRangeVariable Instance = new NullExpressionRangeVariable(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullExpressionRangeVariable]"; // } // } // // public class ExpressionStatement : Statement { // // Expression expression; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public ExpressionStatement(Expression expression) { // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitExpressionStatement(this, data); // } // // public override string ToString() { // return string.Format("[ExpressionStatement Expression={0}]", Expression); // } // } // // public class ExternAliasDirective : AbstractNode { // // string name; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public ExternAliasDirective() { // name = ""; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitExternAliasDirective(this, data); // } // // public override string ToString() { // return string.Format("[ExternAliasDirective Name={0}]", Name); // } // } // // public class FieldDeclaration : AttributedNode { // // TypeReference typeReference; // // List fields; // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public List Fields { // get { // return fields; // } // set { // fields = value ?? new List(); // } // } // // public FieldDeclaration(List attributes) { // Attributes = attributes; // typeReference = TypeReference.Null; // fields = new List(); // } // // public FieldDeclaration(List attributes, TypeReference typeReference, Modifiers modifier) { // Attributes = attributes; // TypeReference = typeReference; // Modifier = modifier; // fields = new List(); // } // // // public TypeReference GetTypeForField(int fieldIndex) // { // if (!typeReference.IsNull) { // return typeReference; // } // return ((VariableDeclaration)Fields[fieldIndex]).TypeReference; // } // // // public VariableDeclaration GetVariableDeclaration(string variableName) // { // foreach (VariableDeclaration variableDeclaration in Fields) { // if (variableDeclaration.Name == variableName) { // return variableDeclaration; // } // } // return null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitFieldDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[FieldDeclaration TypeReference={0} Fields={1} Attributes={2} Modifier={3}]", TypeReference, GetCollectionString(Fields), GetCollectionString(Attributes), Modifier); // } // } // // public class ForeachStatement : StatementWithEmbeddedStatement { // // TypeReference typeReference; // // string variableName; // // Expression expression; // // Expression nextExpression; // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public string VariableName { // get { // return variableName; // } // set { // variableName = value ?? ""; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public Expression NextExpression { // get { // return nextExpression; // } // set { // nextExpression = value ?? Expression.Null; // if (!nextExpression.IsNull) nextExpression.Parent = this; // } // } // // public ForeachStatement(TypeReference typeReference, string variableName, Expression expression, Statement embeddedStatement) { // TypeReference = typeReference; // VariableName = variableName; // Expression = expression; // EmbeddedStatement = embeddedStatement; // nextExpression = Expression.Null; // } // // public ForeachStatement(TypeReference typeReference, string variableName, Expression expression, Statement embeddedStatement, Expression nextExpression) { // TypeReference = typeReference; // VariableName = variableName; // Expression = expression; // EmbeddedStatement = embeddedStatement; // NextExpression = nextExpression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitForeachStatement(this, data); // } // // public override string ToString() { // return string.Format("[ForeachStatement TypeReference={0} VariableName={1} Expression={2} NextExpressio" + // "n={3} EmbeddedStatement={4}]", TypeReference, VariableName, Expression, NextExpression, EmbeddedStatement); // } // } // // public class ForNextStatement : StatementWithEmbeddedStatement { // // Expression start; // // Expression end; // // Expression step; // // List nextExpressions; // // TypeReference typeReference; // // string variableName; // // Expression loopVariableExpression; // // public Expression Start { // get { // return start; // } // set { // start = value ?? Expression.Null; // if (!start.IsNull) start.Parent = this; // } // } // // public Expression End { // get { // return end; // } // set { // end = value ?? Expression.Null; // if (!end.IsNull) end.Parent = this; // } // } // // public Expression Step { // get { // return step; // } // set { // step = value ?? Expression.Null; // if (!step.IsNull) step.Parent = this; // } // } // // public List NextExpressions { // get { // return nextExpressions; // } // set { // nextExpressions = value ?? new List(); // } // } // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public string VariableName { // get { // return variableName; // } // set { // variableName = value ?? ""; // } // } // // public Expression LoopVariableExpression { // get { // return loopVariableExpression; // } // set { // loopVariableExpression = value ?? Expression.Null; // if (!loopVariableExpression.IsNull) loopVariableExpression.Parent = this; // } // } // // public ForNextStatement() { // start = Expression.Null; // end = Expression.Null; // step = Expression.Null; // nextExpressions = new List(); // typeReference = TypeReference.Null; // variableName = ""; // loopVariableExpression = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitForNextStatement(this, data); // } // // public override string ToString() { // return string.Format("[ForNextStatement Start={0} End={1} Step={2} NextExpressions={3} TypeReference={4" + // "} VariableName={5} LoopVariableExpression={6} EmbeddedStatement={7}]", Start, End, Step, GetCollectionString(NextExpressions), TypeReference, VariableName, LoopVariableExpression, EmbeddedStatement); // } // } // // public class GotoStatement : Statement { // // string label; // // public string Label { // get { // return label; // } // set { // label = value ?? ""; // } // } // // public GotoStatement(string label) { // Label = label; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitGotoStatement(this, data); // } // // public override string ToString() { // return string.Format("[GotoStatement Label={0}]", Label); // } // } // // public class IfElseStatement : Statement { // // Expression condition; // // List trueStatement; // // List falseStatement; // // List elseIfSections; // // public Expression Condition { // get { // return condition; // } // set { // condition = value ?? Expression.Null; // if (!condition.IsNull) condition.Parent = this; // } // } // // public List TrueStatement { // get { // return trueStatement; // } // set { // trueStatement = value ?? new List(); // } // } // // public List FalseStatement { // get { // return falseStatement; // } // set { // falseStatement = value ?? new List(); // } // } // // public List ElseIfSections { // get { // return elseIfSections; // } // set { // elseIfSections = value ?? new List(); // } // } // // public IfElseStatement(Expression condition) { // Condition = condition; // trueStatement = new List(); // falseStatement = new List(); // elseIfSections = new List(); // } // // // public IfElseStatement(Expression condition, Statement trueStatement) // : this(condition) { // this.trueStatement.Add(Statement.CheckNull(trueStatement)); // if (trueStatement != null) trueStatement.Parent = this; // } // // public bool HasElseStatements { // get { // return falseStatement.Count > 0; // } // } // // public bool HasElseIfSections { // get { // return elseIfSections.Count > 0; // } // } // // // public IfElseStatement(Expression condition, Statement trueStatement, Statement falseStatement) // : this(condition) { // this.trueStatement.Add(Statement.CheckNull(trueStatement)); // this.falseStatement.Add(Statement.CheckNull(falseStatement)); // if (trueStatement != null) trueStatement.Parent = this; // if (falseStatement != null) falseStatement.Parent = this; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitIfElseStatement(this, data); // } // // public override string ToString() { // return string.Format("[IfElseStatement Condition={0} TrueStatement={1} FalseStatement={2} ElseIfSection" + // "s={3}]", Condition, GetCollectionString(TrueStatement), GetCollectionString(FalseStatement), GetCollectionString(ElseIfSections)); // } // } // // public class InterfaceImplementation : AbstractNode { // // TypeReference interfaceType; // // string memberName; // // public TypeReference InterfaceType { // get { // return interfaceType; // } // set { // interfaceType = value ?? TypeReference.Null; // if (!interfaceType.IsNull) interfaceType.Parent = this; // } // } // // public string MemberName { // get { // return memberName; // } // set { // memberName = string.IsNullOrEmpty(value) ? "?" : value; // } // } // // public InterfaceImplementation(TypeReference interfaceType, string memberName) { // InterfaceType = interfaceType; // MemberName = memberName; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitInterfaceImplementation(this, data); // } // // public override string ToString() { // return string.Format("[InterfaceImplementation InterfaceType={0} MemberName={1}]", InterfaceType, MemberName); // } // } // // public class InvocationExpression : Expression { // // Expression targetObject; // // List arguments; // // public Expression TargetObject { // get { // return targetObject; // } // set { // targetObject = value ?? Expression.Null; // if (!targetObject.IsNull) targetObject.Parent = this; // } // } // // public List Arguments { // get { // return arguments; // } // set { // arguments = value ?? new List(); // } // } // // public InvocationExpression(Expression targetObject) { // TargetObject = targetObject; // arguments = new List(); // } // // public InvocationExpression(Expression targetObject, List arguments) { // TargetObject = targetObject; // Arguments = arguments; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitInvocationExpression(this, data); // } // // public override string ToString() { // return string.Format("[InvocationExpression TargetObject={0} Arguments={1}]", TargetObject, GetCollectionString(Arguments)); // } // } // // public class LabelStatement : Statement { // // string label; // // public string Label { // get { // return label; // } // set { // label = value ?? ""; // } // } // // public LabelStatement(string label) { // Label = label; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitLabelStatement(this, data); // } // // public override string ToString() { // return string.Format("[LabelStatement Label={0}]", Label); // } // } // // public class LambdaExpression : Expression { // // List parameters; // // Statement statementBody; // // Expression expressionBody; // // TypeReference returnType; // // public List Parameters { // get { // return parameters; // } // set { // parameters = value ?? new List(); // } // } // // public Statement StatementBody { // get { // return statementBody; // } // set { // statementBody = value ?? Statement.Null; // if (!statementBody.IsNull) statementBody.Parent = this; // } // } // // public Expression ExpressionBody { // get { // return expressionBody; // } // set { // expressionBody = value ?? Expression.Null; // if (!expressionBody.IsNull) expressionBody.Parent = this; // } // } // // public TypeReference ReturnType { // get { // return returnType; // } // set { // returnType = value ?? TypeReference.Null; // if (!returnType.IsNull) returnType.Parent = this; // } // } // // public LambdaExpression() { // parameters = new List(); // statementBody = Statement.Null; // expressionBody = Expression.Null; // returnType = TypeReference.Null; // } // // public Location ExtendedEndLocation { get; set; } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitLambdaExpression(this, data); // } // // public override string ToString() { // return string.Format("[LambdaExpression Parameters={0} StatementBody={1} ExpressionBody={2} ReturnType=" + // "{3}]", GetCollectionString(Parameters), StatementBody, ExpressionBody, ReturnType); // } // } // // public class LockStatement : StatementWithEmbeddedStatement { // // Expression lockExpression; // // public Expression LockExpression { // get { // return lockExpression; // } // set { // lockExpression = value ?? Expression.Null; // if (!lockExpression.IsNull) lockExpression.Parent = this; // } // } // // public LockStatement(Expression lockExpression, Statement embeddedStatement) { // LockExpression = lockExpression; // EmbeddedStatement = embeddedStatement; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitLockStatement(this, data); // } // // public override string ToString() { // return string.Format("[LockStatement LockExpression={0} EmbeddedStatement={1}]", LockExpression, EmbeddedStatement); // } // } // // public class MemberInitializerExpression : Expression { // // string name; // // bool isKey; // // Expression expression; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public bool IsKey { // get { // return isKey; // } // set { // isKey = value; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public MemberInitializerExpression() { // name = ""; // expression = Expression.Null; // } // // public MemberInitializerExpression(string name, Expression expression) { // Name = name; // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitMemberInitializerExpression(this, data); // } // // public override string ToString() { // return string.Format("[MemberInitializerExpression Name={0} IsKey={1} Expression={2}]", Name, IsKey, Expression); // } // } // // public abstract class MemberNode : ParametrizedNode { // // List interfaceImplementations; // // TypeReference typeReference; // // public List InterfaceImplementations { // get { // return interfaceImplementations; // } // set { // interfaceImplementations = value ?? new List(); // } // } // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // protected MemberNode() { // interfaceImplementations = new List(); // typeReference = TypeReference.Null; // } // // protected MemberNode(Modifiers modifier, List attributes, string name, List parameters) { // Modifier = modifier; // Attributes = attributes; // Name = name; // Parameters = parameters; // interfaceImplementations = new List(); // typeReference = TypeReference.Null; // } // } // // public class MemberReferenceExpression : Expression { // // Expression targetObject; // // string memberName; // // List typeArguments; // // public Expression TargetObject { // get { // return targetObject; // } // set { // targetObject = value ?? Expression.Null; // if (!targetObject.IsNull) targetObject.Parent = this; // } // } // // public string MemberName { // get { // return memberName; // } // set { // memberName = value ?? ""; // } // } // // public List TypeArguments { // get { // return typeArguments; // } // set { // typeArguments = value ?? new List(); // } // } // // public MemberReferenceExpression(Expression targetObject, string memberName) { // TargetObject = targetObject; // MemberName = memberName; // typeArguments = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitMemberReferenceExpression(this, data); // } // // public override string ToString() { // return string.Format("[MemberReferenceExpression TargetObject={0} MemberName={1} TypeArguments={2}]", TargetObject, MemberName, GetCollectionString(TypeArguments)); // } // } // // public class MethodDeclaration : MemberNode { // // BlockStatement body; // // List handlesClause; // // List templates; // // bool isExtensionMethod; // // public BlockStatement Body { // get { // return body; // } // set { // body = value ?? BlockStatement.Null; // if (!body.IsNull) body.Parent = this; // } // } // // public List HandlesClause { // get { // return handlesClause; // } // set { // handlesClause = value ?? new List(); // } // } // // public List Templates { // get { // return templates; // } // set { // templates = value ?? new List(); // } // } // // public bool IsExtensionMethod { // get { // return isExtensionMethod; // } // set { // isExtensionMethod = value; // } // } // // public MethodDeclaration() { // body = BlockStatement.Null; // handlesClause = new List(); // templates = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitMethodDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[MethodDeclaration Body={0} HandlesClause={1} Templates={2} IsExtensionMethod={3}" + // " InterfaceImplementations={4} TypeReference={5} Name={6} Parameters={7} Attribut" + // "es={8} Modifier={9}]", Body, GetCollectionString(HandlesClause), GetCollectionString(Templates), IsExtensionMethod, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // public class NamedArgumentExpression : Expression { // // string name; // // Expression expression; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public NamedArgumentExpression() { // name = ""; // expression = Expression.Null; // } // // public NamedArgumentExpression(string name, Expression expression) { // Name = name; // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitNamedArgumentExpression(this, data); // } // // public override string ToString() { // return string.Format("[NamedArgumentExpression Name={0} Expression={1}]", Name, Expression); // } // } // // public class NamespaceDeclaration : AbstractNode { // // string name; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public NamespaceDeclaration(string name) { // Name = name; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitNamespaceDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[NamespaceDeclaration Name={0}]", Name); // } // } // // public class ObjectCreateExpression : Expression { // // TypeReference createType; // // List parameters; // // CollectionInitializerExpression objectInitializer; // // public TypeReference CreateType { // get { // return createType; // } // set { // createType = value ?? TypeReference.Null; // if (!createType.IsNull) createType.Parent = this; // } // } // // public List Parameters { // get { // return parameters; // } // set { // parameters = value ?? new List(); // } // } // // public CollectionInitializerExpression ObjectInitializer { // get { // return objectInitializer; // } // set { // objectInitializer = value ?? CollectionInitializerExpression.Null; // if (!objectInitializer.IsNull) objectInitializer.Parent = this; // } // } // // public ObjectCreateExpression(TypeReference createType, List parameters) { // CreateType = createType; // Parameters = parameters; // objectInitializer = CollectionInitializerExpression.Null; // } // // public bool IsAnonymousType { // get { // return createType.IsNull || string.IsNullOrEmpty(createType.Type); // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitObjectCreateExpression(this, data); // } // // public override string ToString() { // return string.Format("[ObjectCreateExpression CreateType={0} Parameters={1} ObjectInitializer={2}]", CreateType, GetCollectionString(Parameters), ObjectInitializer); // } // } // // public class OnErrorStatement : StatementWithEmbeddedStatement { // // public OnErrorStatement(Statement embeddedStatement) { // EmbeddedStatement = embeddedStatement; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitOnErrorStatement(this, data); // } // // public override string ToString() { // return string.Format("[OnErrorStatement EmbeddedStatement={0}]", EmbeddedStatement); // } // } // // public class OperatorDeclaration : MethodDeclaration { // // ConversionType conversionType; // // OverloadableOperatorType overloadableOperator; // // public ConversionType ConversionType { // get { // return conversionType; // } // set { // conversionType = value; // } // } // // public OverloadableOperatorType OverloadableOperator { // get { // return overloadableOperator; // } // set { // overloadableOperator = value; // } // } // // public OperatorDeclaration() { // } // // public bool IsConversionOperator { // get { // return conversionType != ConversionType.None; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitOperatorDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[OperatorDeclaration ConversionType={0} OverloadableOperator={1} Body={2} Handles" + // "Clause={3} Templates={4} IsExtensionMethod={5} InterfaceImplementations={6} Type" + // "Reference={7} Name={8} Parameters={9} Attributes={10} Modifier={11}]", ConversionType, OverloadableOperator, Body, GetCollectionString(HandlesClause), GetCollectionString(Templates), IsExtensionMethod, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // public class ParameterDeclarationExpression : Expression { // // List attributes; // // string parameterName; // // TypeReference typeReference; // // ParameterModifiers paramModifier; // // Expression defaultValue; // // public List Attributes { // get { // return attributes; // } // set { // attributes = value ?? new List(); // } // } // // public string ParameterName { // get { // return parameterName; // } // set { // parameterName = string.IsNullOrEmpty(value) ? "?" : value; // } // } // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public ParameterModifiers ParamModifier { // get { // return paramModifier; // } // set { // paramModifier = value; // } // } // // public Expression DefaultValue { // get { // return defaultValue; // } // set { // defaultValue = value ?? Expression.Null; // if (!defaultValue.IsNull) defaultValue.Parent = this; // } // } // // public ParameterDeclarationExpression(TypeReference typeReference, string parameterName) { // TypeReference = typeReference; // ParameterName = parameterName; // attributes = new List(); // defaultValue = Expression.Null; // } // // public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier) { // TypeReference = typeReference; // ParameterName = parameterName; // ParamModifier = paramModifier; // attributes = new List(); // defaultValue = Expression.Null; // } // // public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier, Expression defaultValue) { // TypeReference = typeReference; // ParameterName = parameterName; // ParamModifier = paramModifier; // DefaultValue = defaultValue; // attributes = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitParameterDeclarationExpression(this, data); // } // // public override string ToString() { // return string.Format("[ParameterDeclarationExpression Attributes={0} ParameterName={1} TypeReference={2" + // "} ParamModifier={3} DefaultValue={4}]", GetCollectionString(Attributes), ParameterName, TypeReference, ParamModifier, DefaultValue); // } // } // // public abstract class ParametrizedNode : AttributedNode { // // string name; // // List parameters; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public List Parameters { // get { // return parameters; // } // set { // parameters = value ?? new List(); // } // } // // protected ParametrizedNode() { // name = ""; // parameters = new List(); // } // // protected ParametrizedNode(Modifiers modifier, List attributes, string name, List parameters) { // Modifier = modifier; // Attributes = attributes; // Name = name; // Parameters = parameters; // } // } // // public class ParenthesizedExpression : Expression { // // Expression expression; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public ParenthesizedExpression(Expression expression) { // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitParenthesizedExpression(this, data); // } // // public override string ToString() { // return string.Format("[ParenthesizedExpression Expression={0}]", Expression); // } // } // // public class PropertyDeclaration : MemberNode { // // Location bodyStart; // // Location bodyEnd; // // PropertyGetRegion getRegion; // // PropertySetRegion setRegion; // // Expression initializer; // // public Location BodyStart { // get { // return bodyStart; // } // set { // bodyStart = value; // } // } // // public Location BodyEnd { // get { // return bodyEnd; // } // set { // bodyEnd = value; // } // } // // public PropertyGetRegion GetRegion { // get { // return getRegion; // } // set { // getRegion = value ?? PropertyGetRegion.Null; // if (!getRegion.IsNull) getRegion.Parent = this; // } // } // // public PropertySetRegion SetRegion { // get { // return setRegion; // } // set { // setRegion = value ?? PropertySetRegion.Null; // if (!setRegion.IsNull) setRegion.Parent = this; // } // } // // public Expression Initializer { // get { // return initializer; // } // set { // initializer = value ?? Expression.Null; // if (!initializer.IsNull) initializer.Parent = this; // } // } // // public PropertyDeclaration(Modifiers modifier, List attributes, string name, List parameters) { // Modifier = modifier; // Attributes = attributes; // Name = name; // Parameters = parameters; // bodyStart = Location.Empty; // bodyEnd = Location.Empty; // getRegion = PropertyGetRegion.Null; // setRegion = PropertySetRegion.Null; // initializer = Expression.Null; // } // // public bool IsReadOnly { // get { // return HasGetRegion && !HasSetRegion; // } // } // // public bool HasGetRegion { // get { // return !getRegion.IsNull; // } // } // // public bool IsWriteOnly { // get { // return !HasGetRegion && HasSetRegion; // } // } // // public bool IsIndexer { // get { // return (Modifier & Modifiers.Default) != 0; // } // } // // // internal PropertyDeclaration(string name, TypeReference typeReference, Modifiers modifier, List attributes) : this(modifier, attributes, name, null) // { // this.TypeReference = typeReference; // if ((modifier & Modifiers.ReadOnly) != Modifiers.ReadOnly) { // this.SetRegion = new PropertySetRegion(null, null); // } // if ((modifier & Modifiers.WriteOnly) != Modifiers.WriteOnly) { // this.GetRegion = new PropertyGetRegion(null, null); // } // } // // public bool HasSetRegion { // get { // return !setRegion.IsNull; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitPropertyDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[PropertyDeclaration BodyStart={0} BodyEnd={1} GetRegion={2} SetRegion={3} Initia" + // "lizer={4} InterfaceImplementations={5} TypeReference={6} Name={7} Parameters={8}" + // " Attributes={9} Modifier={10}]", BodyStart, BodyEnd, GetRegion, SetRegion, Initializer, GetCollectionString(InterfaceImplementations), TypeReference, Name, GetCollectionString(Parameters), GetCollectionString(Attributes), Modifier); // } // } // // public class PropertyGetRegion : PropertyGetSetRegion { // // public PropertyGetRegion(BlockStatement block, List attributes) : // base(block, attributes) { // } // // public static PropertyGetRegion Null { // get { // return NullPropertyGetRegion.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitPropertyGetRegion(this, data); // } // // public override string ToString() { // return string.Format("[PropertyGetRegion Block={0} Attributes={1} Modifier={2}]", Block, GetCollectionString(Attributes), Modifier); // } // } // // internal sealed class NullPropertyGetRegion : PropertyGetRegion { // // private NullPropertyGetRegion() : // base(null, null) { // } // // internal static NullPropertyGetRegion Instance = new NullPropertyGetRegion(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullPropertyGetRegion]"; // } // } // // public abstract class PropertyGetSetRegion : AttributedNode, INullable { // // BlockStatement block; // // public BlockStatement Block { // get { // return block; // } // set { // block = value ?? BlockStatement.Null; // if (!block.IsNull) block.Parent = this; // } // } // // protected PropertyGetSetRegion(BlockStatement block, List attributes) { // Block = block; // Attributes = attributes; // } // // public virtual bool IsNull { // get { // return false; // } // } // } // // public class PropertySetRegion : PropertyGetSetRegion { // // List parameters; // // public List Parameters { // get { // return parameters; // } // set { // parameters = value ?? new List(); // } // } // // public PropertySetRegion(BlockStatement block, List attributes) : // base(block, attributes) { // parameters = new List(); // } // // public static PropertySetRegion Null { // get { // return NullPropertySetRegion.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitPropertySetRegion(this, data); // } // // public override string ToString() { // return string.Format("[PropertySetRegion Parameters={0} Block={1} Attributes={2} Modifier={3}]", GetCollectionString(Parameters), Block, GetCollectionString(Attributes), Modifier); // } // } // // internal sealed class NullPropertySetRegion : PropertySetRegion { // // private NullPropertySetRegion() : // base(null, null) { // } // // internal static NullPropertySetRegion Instance = new NullPropertySetRegion(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullPropertySetRegion]"; // } // } // // public class QueryExpression : Expression { // // List clauses; // // public List Clauses { // get { // return clauses; // } // set { // clauses = value ?? new List(); // } // } // // public QueryExpression() { // clauses = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpression(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpression Clauses={0}]", GetCollectionString(Clauses)); // } // } // // public class QueryExpressionAggregateClause : QueryExpressionClause { // // CollectionRangeVariable source; // // List middleClauses; // // List intoVariables; // // public CollectionRangeVariable Source { // get { // return source; // } // set { // source = value ?? CollectionRangeVariable.Null; // if (!source.IsNull) source.Parent = this; // } // } // // public List MiddleClauses { // get { // return middleClauses; // } // set { // middleClauses = value ?? new List(); // } // } // // public List IntoVariables { // get { // return intoVariables; // } // set { // intoVariables = value ?? new List(); // } // } // // public QueryExpressionAggregateClause() { // source = CollectionRangeVariable.Null; // middleClauses = new List(); // intoVariables = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionAggregateClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionAggregateClause Source={0} MiddleClauses={1} IntoVariables={2}]", Source, GetCollectionString(MiddleClauses), GetCollectionString(IntoVariables)); // } // } // // public abstract class QueryExpressionClause : AbstractNode, INullable { // // protected QueryExpressionClause() { // } // // public virtual bool IsNull { // get { // return false; // } // } // // public static QueryExpressionClause Null { // get { // return NullQueryExpressionClause.Instance; // } // } // } // // internal sealed class NullQueryExpressionClause : QueryExpressionClause { // // internal static NullQueryExpressionClause Instance = new NullQueryExpressionClause(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullQueryExpressionClause]"; // } // } // // public class QueryExpressionDistinctClause : QueryExpressionClause { // // public QueryExpressionDistinctClause() { // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionDistinctClause(this, data); // } // // public override string ToString() { // return "[QueryExpressionDistinctClause]"; // } // } // // public class QueryExpressionFromClause : QueryExpressionClause { // // List sources; // // public List Sources { // get { // return sources; // } // set { // sources = value ?? new List(); // } // } // // public QueryExpressionFromClause() { // sources = new List(); // } // // public new static QueryExpressionFromClause Null { // get { // return NullQueryExpressionFromClause.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionFromClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionFromClause Sources={0}]", GetCollectionString(Sources)); // } // } // // internal sealed class NullQueryExpressionFromClause : QueryExpressionFromClause { // // internal static NullQueryExpressionFromClause Instance = new NullQueryExpressionFromClause(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullQueryExpressionFromClause]"; // } // } // // public class QueryExpressionGroupClause : QueryExpressionClause { // // Expression projection; // // Expression groupBy; // // public Expression Projection { // get { // return projection; // } // set { // projection = value ?? Expression.Null; // if (!projection.IsNull) projection.Parent = this; // } // } // // public Expression GroupBy { // get { // return groupBy; // } // set { // groupBy = value ?? Expression.Null; // if (!groupBy.IsNull) groupBy.Parent = this; // } // } // // public QueryExpressionGroupClause() { // projection = Expression.Null; // groupBy = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionGroupClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionGroupClause Projection={0} GroupBy={1}]", Projection, GroupBy); // } // } // // public class QueryExpressionGroupJoinVBClause : QueryExpressionClause { // // QueryExpressionJoinVBClause joinClause; // // List intoVariables; // // public QueryExpressionJoinVBClause JoinClause { // get { // return joinClause; // } // set { // joinClause = value ?? QueryExpressionJoinVBClause.Null; // if (!joinClause.IsNull) joinClause.Parent = this; // } // } // // public List IntoVariables { // get { // return intoVariables; // } // set { // intoVariables = value ?? new List(); // } // } // // public QueryExpressionGroupJoinVBClause() { // joinClause = QueryExpressionJoinVBClause.Null; // intoVariables = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionGroupJoinVBClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionGroupJoinVBClause JoinClause={0} IntoVariables={1}]", JoinClause, GetCollectionString(IntoVariables)); // } // } // // public class QueryExpressionGroupVBClause : QueryExpressionClause { // // List groupVariables; // // List byVariables; // // List intoVariables; // // public List GroupVariables { // get { // return groupVariables; // } // set { // groupVariables = value ?? new List(); // } // } // // public List ByVariables { // get { // return byVariables; // } // set { // byVariables = value ?? new List(); // } // } // // public List IntoVariables { // get { // return intoVariables; // } // set { // intoVariables = value ?? new List(); // } // } // // public QueryExpressionGroupVBClause() { // groupVariables = new List(); // byVariables = new List(); // intoVariables = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionGroupVBClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionGroupVBClause GroupVariables={0} ByVariables={1} IntoVariables={2" + // "}]", GetCollectionString(GroupVariables), GetCollectionString(ByVariables), GetCollectionString(IntoVariables)); // } // } // // public class QueryExpressionJoinClause : QueryExpressionClause { // // Expression onExpression; // // Expression equalsExpression; // // CollectionRangeVariable source; // // string intoIdentifier; // // public Expression OnExpression { // get { // return onExpression; // } // set { // onExpression = value ?? Expression.Null; // if (!onExpression.IsNull) onExpression.Parent = this; // } // } // // public Expression EqualsExpression { // get { // return equalsExpression; // } // set { // equalsExpression = value ?? Expression.Null; // if (!equalsExpression.IsNull) equalsExpression.Parent = this; // } // } // // public CollectionRangeVariable Source { // get { // return source; // } // set { // source = value ?? CollectionRangeVariable.Null; // if (!source.IsNull) source.Parent = this; // } // } // // public string IntoIdentifier { // get { // return intoIdentifier; // } // set { // intoIdentifier = value ?? ""; // } // } // // public QueryExpressionJoinClause() { // onExpression = Expression.Null; // equalsExpression = Expression.Null; // source = CollectionRangeVariable.Null; // intoIdentifier = ""; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionJoinClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionJoinClause OnExpression={0} EqualsExpression={1} Source={2} IntoI" + // "dentifier={3}]", OnExpression, EqualsExpression, Source, IntoIdentifier); // } // } // // public class QueryExpressionJoinConditionVB : AbstractNode { // // Expression leftSide; // // Expression rightSide; // // public Expression LeftSide { // get { // return leftSide; // } // set { // leftSide = value ?? Expression.Null; // if (!leftSide.IsNull) leftSide.Parent = this; // } // } // // public Expression RightSide { // get { // return rightSide; // } // set { // rightSide = value ?? Expression.Null; // if (!rightSide.IsNull) rightSide.Parent = this; // } // } // // public QueryExpressionJoinConditionVB() { // leftSide = Expression.Null; // rightSide = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionJoinConditionVB(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionJoinConditionVB LeftSide={0} RightSide={1}]", LeftSide, RightSide); // } // } // // public class QueryExpressionJoinVBClause : QueryExpressionClause { // // CollectionRangeVariable joinVariable; // // QueryExpressionJoinVBClause subJoin; // // List conditions; // // public CollectionRangeVariable JoinVariable { // get { // return joinVariable; // } // set { // joinVariable = value ?? CollectionRangeVariable.Null; // if (!joinVariable.IsNull) joinVariable.Parent = this; // } // } // // public QueryExpressionJoinVBClause SubJoin { // get { // return subJoin; // } // set { // subJoin = value ?? QueryExpressionJoinVBClause.Null; // if (!subJoin.IsNull) subJoin.Parent = this; // } // } // // public List Conditions { // get { // return conditions; // } // set { // conditions = value ?? new List(); // } // } // // public QueryExpressionJoinVBClause() { // joinVariable = CollectionRangeVariable.Null; // subJoin = QueryExpressionJoinVBClause.Null; // conditions = new List(); // } // // public new static QueryExpressionJoinVBClause Null { // get { // return NullQueryExpressionJoinVBClause.Instance; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionJoinVBClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionJoinVBClause JoinVariable={0} SubJoin={1} Conditions={2}]", JoinVariable, SubJoin, GetCollectionString(Conditions)); // } // } // // internal sealed class NullQueryExpressionJoinVBClause : QueryExpressionJoinVBClause { // // internal static NullQueryExpressionJoinVBClause Instance = new NullQueryExpressionJoinVBClause(); // // public override bool IsNull { // get { // return true; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return null; // } // // public override string ToString() { // return "[NullQueryExpressionJoinVBClause]"; // } // } // // public class QueryExpressionLetClause : QueryExpressionClause { // // List variables; // // public List Variables { // get { // return variables; // } // set { // variables = value ?? new List(); // } // } // // public QueryExpressionLetClause() { // variables = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionLetVBClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionLetVBClause Variables={0}]", GetCollectionString(Variables)); // } // } // // public class QueryExpressionOrderClause : QueryExpressionClause { // // List orderings; // // public List Orderings { // get { // return orderings; // } // set { // orderings = value ?? new List(); // } // } // // public QueryExpressionOrderClause() { // orderings = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionOrderClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionOrderClause Orderings={0}]", GetCollectionString(Orderings)); // } // } // // public class QueryExpressionOrdering : AbstractNode { // // Expression criteria; // // QueryExpressionOrderingDirection direction; // // public Expression Criteria { // get { // return criteria; // } // set { // criteria = value ?? Expression.Null; // if (!criteria.IsNull) criteria.Parent = this; // } // } // // public QueryExpressionOrderingDirection Direction { // get { // return direction; // } // set { // direction = value; // } // } // // public QueryExpressionOrdering() { // criteria = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionOrdering(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionOrdering Criteria={0} Direction={1}]", Criteria, Direction); // } // } // // public class QueryExpressionPartitionVBClause : QueryExpressionClause { // // Expression expression; // // QueryExpressionPartitionType partitionType; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public QueryExpressionPartitionType PartitionType { // get { // return partitionType; // } // set { // partitionType = value; // } // } // // public QueryExpressionPartitionVBClause() { // expression = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionPartitionVBClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionPartitionVBClause Expression={0} PartitionType={1}]", Expression, PartitionType); // } // } // // public class QueryExpressionSelectClause : QueryExpressionClause { // // Expression projection; // // public Expression Projection { // get { // return projection; // } // set { // projection = value ?? Expression.Null; // if (!projection.IsNull) projection.Parent = this; // } // } // // public QueryExpressionSelectClause() { // projection = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionSelectClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionSelectClause Projection={0}]", Projection); // } // } // // public class QueryExpressionSelectVBClause : QueryExpressionClause { // // List variables; // // public List Variables { // get { // return variables; // } // set { // variables = value ?? new List(); // } // } // // public QueryExpressionSelectVBClause() { // variables = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionSelectVBClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionSelectVBClause Variables={0}]", GetCollectionString(Variables)); // } // } // // public class QueryExpressionWhereClause : QueryExpressionClause { // // Expression condition; // // public Expression Condition { // get { // return condition; // } // set { // condition = value ?? Expression.Null; // if (!condition.IsNull) condition.Parent = this; // } // } // // public QueryExpressionWhereClause() { // condition = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitQueryExpressionWhereClause(this, data); // } // // public override string ToString() { // return string.Format("[QueryExpressionWhereClause Condition={0}]", Condition); // } // } // // public class RaiseEventStatement : Statement { // // string eventName; // // List arguments; // // public string EventName { // get { // return eventName; // } // set { // eventName = value ?? ""; // } // } // // public List Arguments { // get { // return arguments; // } // set { // arguments = value ?? new List(); // } // } // // public RaiseEventStatement(string eventName, List arguments) { // EventName = eventName; // Arguments = arguments; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitRaiseEventStatement(this, data); // } // // public override string ToString() { // return string.Format("[RaiseEventStatement EventName={0} Arguments={1}]", EventName, GetCollectionString(Arguments)); // } // } // // public class ReDimStatement : Statement { // // List reDimClauses; // // bool isPreserve; // // public List ReDimClauses { // get { // return reDimClauses; // } // set { // reDimClauses = value ?? new List(); // } // } // // public bool IsPreserve { // get { // return isPreserve; // } // set { // isPreserve = value; // } // } // // public ReDimStatement(bool isPreserve) { // IsPreserve = isPreserve; // reDimClauses = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitReDimStatement(this, data); // } // // public override string ToString() { // return string.Format("[ReDimStatement ReDimClauses={0} IsPreserve={1}]", GetCollectionString(ReDimClauses), IsPreserve); // } // } // // public class RemoveHandlerStatement : Statement { // // Expression eventExpression; // // Expression handlerExpression; // // public Expression EventExpression { // get { // return eventExpression; // } // set { // eventExpression = value ?? Expression.Null; // if (!eventExpression.IsNull) eventExpression.Parent = this; // } // } // // public Expression HandlerExpression { // get { // return handlerExpression; // } // set { // handlerExpression = value ?? Expression.Null; // if (!handlerExpression.IsNull) handlerExpression.Parent = this; // } // } // // public RemoveHandlerStatement(Expression eventExpression, Expression handlerExpression) { // EventExpression = eventExpression; // HandlerExpression = handlerExpression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitRemoveHandlerStatement(this, data); // } // // public override string ToString() { // return string.Format("[RemoveHandlerStatement EventExpression={0} HandlerExpression={1}]", EventExpression, HandlerExpression); // } // } // // public class ResumeStatement : Statement { // // string labelName; // // bool isResumeNext; // // public string LabelName { // get { // return labelName; // } // set { // labelName = value ?? ""; // } // } // // public bool IsResumeNext { // get { // return isResumeNext; // } // set { // isResumeNext = value; // } // } // // public ResumeStatement(bool isResumeNext) { // IsResumeNext = isResumeNext; // labelName = ""; // } // // public ResumeStatement(string labelName) { // LabelName = labelName; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitResumeStatement(this, data); // } // // public override string ToString() { // return string.Format("[ResumeStatement LabelName={0} IsResumeNext={1}]", LabelName, IsResumeNext); // } // } // // public class ReturnStatement : Statement { // // Expression expression; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public ReturnStatement(Expression expression) { // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitReturnStatement(this, data); // } // // public override string ToString() { // return string.Format("[ReturnStatement Expression={0}]", Expression); // } // } // // public class StopStatement : Statement { // // public StopStatement() { // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitStopStatement(this, data); // } // // public override string ToString() { // return "[StopStatement]"; // } // } // // public class SwitchSection : BlockStatement { // // List switchLabels; // // public List SwitchLabels { // get { // return switchLabels; // } // set { // switchLabels = value ?? new List(); // } // } // // public SwitchSection() { // switchLabels = new List(); // } // // public SwitchSection(List switchLabels) { // SwitchLabels = switchLabels; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitSwitchSection(this, data); // } // // public override string ToString() { // return string.Format("[SwitchSection SwitchLabels={0}]", GetCollectionString(SwitchLabels)); // } // } // // public class SwitchStatement : Statement { // // Expression switchExpression; // // List switchSections; // // public Expression SwitchExpression { // get { // return switchExpression; // } // set { // switchExpression = value ?? Expression.Null; // if (!switchExpression.IsNull) switchExpression.Parent = this; // } // } // // public List SwitchSections { // get { // return switchSections; // } // set { // switchSections = value ?? new List(); // } // } // // public SwitchStatement(Expression switchExpression, List switchSections) { // SwitchExpression = switchExpression; // SwitchSections = switchSections; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitSwitchStatement(this, data); // } // // public override string ToString() { // return string.Format("[SwitchStatement SwitchExpression={0} SwitchSections={1}]", SwitchExpression, GetCollectionString(SwitchSections)); // } // } // // public class TemplateDefinition : AttributedNode { // // string name; // // VarianceModifier varianceModifier; // // List bases; // // public string Name { // get { // return name; // } // set { // name = string.IsNullOrEmpty(value) ? "?" : value; // } // } // // public VarianceModifier VarianceModifier { // get { // return varianceModifier; // } // set { // varianceModifier = value; // } // } // // public List Bases { // get { // return bases; // } // set { // bases = value ?? new List(); // } // } // // public TemplateDefinition() { // name = "?"; // bases = new List(); // } // // public TemplateDefinition(string name, List attributes) { // Name = name; // Attributes = attributes; // bases = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitTemplateDefinition(this, data); // } // // public override string ToString() { // return string.Format("[TemplateDefinition Name={0} VarianceModifier={1} Bases={2} Attributes={3} Modifi" + // "er={4}]", Name, VarianceModifier, GetCollectionString(Bases), GetCollectionString(Attributes), Modifier); // } // } // // public class ThisReferenceExpression : Expression { // // public ThisReferenceExpression() { // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitThisReferenceExpression(this, data); // } // // public override string ToString() { // return "[ThisReferenceExpression]"; // } // } // // public class ThrowStatement : Statement { // // Expression expression; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public ThrowStatement(Expression expression) { // Expression = expression; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitThrowStatement(this, data); // } // // public override string ToString() { // return string.Format("[ThrowStatement Expression={0}]", Expression); // } // } // // public class TryCatchStatement : Statement { // // Statement statementBlock; // // List catchClauses; // // Statement finallyBlock; // // public Statement StatementBlock { // get { // return statementBlock; // } // set { // statementBlock = value ?? Statement.Null; // if (!statementBlock.IsNull) statementBlock.Parent = this; // } // } // // public List CatchClauses { // get { // return catchClauses; // } // set { // catchClauses = value ?? new List(); // } // } // // public Statement FinallyBlock { // get { // return finallyBlock; // } // set { // finallyBlock = value ?? Statement.Null; // if (!finallyBlock.IsNull) finallyBlock.Parent = this; // } // } // // public TryCatchStatement(Statement statementBlock, List catchClauses, Statement finallyBlock) { // StatementBlock = statementBlock; // CatchClauses = catchClauses; // FinallyBlock = finallyBlock; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitTryCatchStatement(this, data); // } // // public override string ToString() { // return string.Format("[TryCatchStatement StatementBlock={0} CatchClauses={1} FinallyBlock={2}]", StatementBlock, GetCollectionString(CatchClauses), FinallyBlock); // } // } // // public class TypeDeclaration : AttributedNode { // // string name; // // ClassType type; // // List baseTypes; // // List templates; // // Location bodyStartLocation; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public ClassType Type { // get { // return type; // } // set { // type = value; // } // } // // public List BaseTypes { // get { // return baseTypes; // } // set { // baseTypes = value ?? new List(); // } // } // // public List Templates { // get { // return templates; // } // set { // templates = value ?? new List(); // } // } // // public Location BodyStartLocation { // get { // return bodyStartLocation; // } // set { // bodyStartLocation = value; // } // } // // public TypeDeclaration(Modifiers modifier, List attributes) { // Modifier = modifier; // Attributes = attributes; // name = ""; // baseTypes = new List(); // templates = new List(); // bodyStartLocation = Location.Empty; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitTypeDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[TypeDeclaration Name={0} Type={1} BaseTypes={2} Templates={3} BodyStartLocation=" + // "{4} Attributes={5} Modifier={6}]", Name, Type, GetCollectionString(BaseTypes), GetCollectionString(Templates), BodyStartLocation, GetCollectionString(Attributes), Modifier); // } // } // // public class TypeOfExpression : Expression { // // TypeReference typeReference; // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public TypeOfExpression(TypeReference typeReference) { // TypeReference = typeReference; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitTypeOfExpression(this, data); // } // // public override string ToString() { // return string.Format("[TypeOfExpression TypeReference={0}]", TypeReference); // } // } // // public class TypeOfIsExpression : Expression { // // Expression expression; // // TypeReference typeReference; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public TypeOfIsExpression(Expression expression, TypeReference typeReference) { // Expression = expression; // TypeReference = typeReference; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitTypeOfIsExpression(this, data); // } // // public override string ToString() { // return string.Format("[TypeOfIsExpression Expression={0} TypeReference={1}]", Expression, TypeReference); // } // } // // public class TypeReferenceExpression : Expression { // // TypeReference typeReference; // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public TypeReferenceExpression(TypeReference typeReference) { // TypeReference = typeReference; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitTypeReferenceExpression(this, data); // } // // public override string ToString() { // return string.Format("[TypeReferenceExpression TypeReference={0}]", TypeReference); // } // } // // public class UnaryOperatorExpression : Expression { // // UnaryOperatorType op; // // Expression expression; // // public UnaryOperatorType Op { // get { // return op; // } // set { // op = value; // } // } // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public UnaryOperatorExpression(UnaryOperatorType op) { // Op = op; // expression = Expression.Null; // } // // public UnaryOperatorExpression(Expression expression, UnaryOperatorType op) { // Expression = expression; // Op = op; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitUnaryOperatorExpression(this, data); // } // // public override string ToString() { // return string.Format("[UnaryOperatorExpression Op={0} Expression={1}]", Op, Expression); // } // } // // public class UsingStatement : StatementWithEmbeddedStatement { // // Statement resourceAcquisition; // // public Statement ResourceAcquisition { // get { // return resourceAcquisition; // } // set { // resourceAcquisition = value ?? Statement.Null; // if (!resourceAcquisition.IsNull) resourceAcquisition.Parent = this; // } // } // // public UsingStatement(Statement resourceAcquisition, Statement embeddedStatement) { // ResourceAcquisition = resourceAcquisition; // EmbeddedStatement = embeddedStatement; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitUsingStatement(this, data); // } // // public override string ToString() { // return string.Format("[UsingStatement ResourceAcquisition={0} EmbeddedStatement={1}]", ResourceAcquisition, EmbeddedStatement); // } // } // // public class VariableDeclaration : AbstractNode { // // string name; // // Expression initializer; // // TypeReference typeReference; // // Expression fixedArrayInitialization; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public Expression Initializer { // get { // return initializer; // } // set { // initializer = value ?? Expression.Null; // if (!initializer.IsNull) initializer.Parent = this; // } // } // // public TypeReference TypeReference { // get { // return typeReference; // } // set { // typeReference = value ?? TypeReference.Null; // if (!typeReference.IsNull) typeReference.Parent = this; // } // } // // public Expression FixedArrayInitialization { // get { // return fixedArrayInitialization; // } // set { // fixedArrayInitialization = value ?? Expression.Null; // if (!fixedArrayInitialization.IsNull) fixedArrayInitialization.Parent = this; // } // } // // public VariableDeclaration(string name) { // Name = name; // initializer = Expression.Null; // typeReference = TypeReference.Null; // fixedArrayInitialization = Expression.Null; // } // // public VariableDeclaration(string name, Expression initializer) { // Name = name; // Initializer = initializer; // typeReference = TypeReference.Null; // fixedArrayInitialization = Expression.Null; // } // // public VariableDeclaration(string name, Expression initializer, TypeReference typeReference) { // Name = name; // Initializer = initializer; // TypeReference = typeReference; // fixedArrayInitialization = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitVariableDeclaration(this, data); // } // // public override string ToString() { // return string.Format("[VariableDeclaration Name={0} Initializer={1} TypeReference={2} FixedArrayInitial" + // "ization={3}]", Name, Initializer, TypeReference, FixedArrayInitialization); // } // } // // public class WithStatement : Statement { // // Expression expression; // // BlockStatement body; // // public Expression Expression { // get { // return expression; // } // set { // expression = value ?? Expression.Null; // if (!expression.IsNull) expression.Parent = this; // } // } // // public BlockStatement Body { // get { // return body; // } // set { // body = value ?? BlockStatement.Null; // if (!body.IsNull) body.Parent = this; // } // } // // public WithStatement(Expression expression) { // Expression = expression; // body = BlockStatement.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitWithStatement(this, data); // } // // public override string ToString() { // return string.Format("[WithStatement Expression={0} Body={1}]", Expression, Body); // } // } // // public class XmlAttributeExpression : XmlExpression { // // string name; // // string literalValue; // // bool useDoubleQuotes; // // Expression expressionValue; // // public string Name { // get { // return name; // } // set { // name = value ?? ""; // } // } // // public string LiteralValue { // get { // return literalValue; // } // set { // literalValue = value ?? ""; // } // } // // public bool UseDoubleQuotes { // get { // return useDoubleQuotes; // } // set { // useDoubleQuotes = value; // } // } // // public Expression ExpressionValue { // get { // return expressionValue; // } // set { // expressionValue = value ?? Expression.Null; // if (!expressionValue.IsNull) expressionValue.Parent = this; // } // } // // public XmlAttributeExpression() { // name = ""; // literalValue = ""; // expressionValue = Expression.Null; // } // // public bool IsLiteralValue { // get { // return expressionValue.IsNull; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitXmlAttributeExpression(this, data); // } // // public override string ToString() { // return string.Format("[XmlAttributeExpression Name={0} LiteralValue={1} UseDoubleQuotes={2} ExpressionV" + // "alue={3}]", Name, LiteralValue, UseDoubleQuotes, ExpressionValue); // } // } // // public class XmlContentExpression : XmlExpression { // // string content; // // XmlContentType type; // // public string Content { // get { // return content; // } // set { // content = value ?? ""; // } // } // // public XmlContentType Type { // get { // return type; // } // set { // type = value; // } // } // // public XmlContentExpression(string content, XmlContentType type) { // Content = content; // Type = type; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitXmlContentExpression(this, data); // } // // public override string ToString() { // return string.Format("[XmlContentExpression Content={0} Type={1}]", Content, Type); // } // } // // public class XmlDocumentExpression : XmlExpression { // // List expressions; // // public List Expressions { // get { // return expressions; // } // set { // expressions = value ?? new List(); // } // } // // public XmlDocumentExpression() { // expressions = new List(); // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitXmlDocumentExpression(this, data); // } // // public override string ToString() { // return string.Format("[XmlDocumentExpression Expressions={0}]", GetCollectionString(Expressions)); // } // } // // public class XmlElementExpression : XmlExpression { // // Expression content; // // Expression nameExpression; // // string xmlName; // // List attributes; // // public Expression Content { // get { // return content; // } // set { // content = value ?? Expression.Null; // if (!content.IsNull) content.Parent = this; // } // } // // public Expression NameExpression { // get { // return nameExpression; // } // set { // nameExpression = value ?? Expression.Null; // if (!nameExpression.IsNull) nameExpression.Parent = this; // } // } // // public string XmlName { // get { // return xmlName; // } // set { // xmlName = value ?? ""; // } // } // // public List Attributes { // get { // return attributes; // } // set { // attributes = value ?? new List(); // } // } // // public XmlElementExpression() { // content = Expression.Null; // nameExpression = Expression.Null; // xmlName = ""; // attributes = new List(); // } // // public bool IsExpression { // get { // return !content.IsNull; // } // } // // public bool NameIsExpression { // get { // return !nameExpression.IsNull; // } // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitXmlElementExpression(this, data); // } // // public override string ToString() { // return string.Format("[XmlElementExpression Content={0} NameExpression={1} XmlName={2} Attributes={3}]", Content, NameExpression, XmlName, GetCollectionString(Attributes)); // } // } // // public class XmlEmbeddedExpression : XmlExpression { // // Expression inlineVBExpression; // // public Expression InlineVBExpression { // get { // return inlineVBExpression; // } // set { // inlineVBExpression = value ?? Expression.Null; // if (!inlineVBExpression.IsNull) inlineVBExpression.Parent = this; // } // } // // public XmlEmbeddedExpression() { // inlineVBExpression = Expression.Null; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitXmlEmbeddedExpression(this, data); // } // // public override string ToString() { // return string.Format("[XmlEmbeddedExpression InlineVBExpression={0}]", InlineVBExpression); // } // } // // public abstract class XmlExpression : Expression { // // protected XmlExpression() { // } // } // // public class XmlMemberAccessExpression : Expression { // // Expression targetObject; // // XmlAxisType axisType; // // bool isXmlIdentifier; // // string identifier; // // public Expression TargetObject { // get { // return targetObject; // } // set { // targetObject = value ?? Expression.Null; // if (!targetObject.IsNull) targetObject.Parent = this; // } // } // // public XmlAxisType AxisType { // get { // return axisType; // } // set { // axisType = value; // } // } // // public bool IsXmlIdentifier { // get { // return isXmlIdentifier; // } // set { // isXmlIdentifier = value; // } // } // // public string Identifier { // get { // return identifier; // } // set { // identifier = value ?? ""; // } // } // // public XmlMemberAccessExpression(Expression targetObject, XmlAxisType axisType, string identifier, bool isXmlIdentifier) { // TargetObject = targetObject; // AxisType = axisType; // Identifier = identifier; // IsXmlIdentifier = isXmlIdentifier; // } // // public override object AcceptVisitor(IAstVisitor visitor, object data) { // return visitor.VisitXmlMemberAccessExpression(this, data); // } // // public override string ToString() { // return string.Format("[XmlMemberAccessExpression TargetObject={0} AxisType={1} IsXmlIdentifier={2} Iden" + // "tifier={3}]", TargetObject, AxisType, IsXmlIdentifier, Identifier); // } // } //}