.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

4866 lines
120 KiB

//// 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<Expression> arguments;
//
// CollectionInitializerExpression arrayInitializer;
//
// public TypeReference CreateType {
// get {
// return createType;
// }
// set {
// createType = value ?? TypeReference.Null;
// if (!createType.IsNull) createType.Parent = this;
// }
// }
//
// public List<Expression> Arguments {
// get {
// return arguments;
// }
// set {
// arguments = value ?? new List<Expression>();
// }
// }
//
// 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<Expression>();
// arrayInitializer = CollectionInitializerExpression.Null;
// }
//
// public ArrayCreateExpression(TypeReference createType, List<Expression> arguments) {
// CreateType = createType;
// Arguments = arguments;
// arrayInitializer = CollectionInitializerExpression.Null;
// }
//
// public ArrayCreateExpression(TypeReference createType, CollectionInitializerExpression arrayInitializer) {
// CreateType = createType;
// ArrayInitializer = arrayInitializer;
// arguments = new List<Expression>();
// }
//
// 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<AttributeSection> attributes;
//
// Modifiers modifier;
//
// public List<AttributeSection> Attributes {
// get {
// return attributes;
// }
// set {
// attributes = value ?? new List<AttributeSection>();
// }
// }
//
// public Modifiers Modifier {
// get {
// return modifier;
// }
// set {
// modifier = value;
// }
// }
//
// protected AttributedNode() {
// attributes = new List<AttributeSection>();
// }
//
// protected AttributedNode(List<AttributeSection> attributes) {
// Attributes = attributes;
// }
//
// protected AttributedNode(Modifiers modifier, List<AttributeSection> attributes) {
// Modifier = modifier;
// Attributes = attributes;
// }
// }
//
// public class AttributeSection : AbstractNode {
//
// string attributeTarget;
//
// List<ICSharpCode.NRefactory.VB.Ast.Attribute> attributes;
//
// public string AttributeTarget {
// get {
// return attributeTarget;
// }
// set {
// attributeTarget = value ?? "";
// }
// }
//
// public List<ICSharpCode.NRefactory.VB.Ast.Attribute> Attributes {
// get {
// return attributes;
// }
// set {
// attributes = value ?? new List<Attribute>();
// }
// }
//
// public AttributeSection() {
// attributeTarget = "";
// attributes = new List<Attribute>();
// }
//
// 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<Expression> createExpressions;
//
// public List<Expression> CreateExpressions {
// get {
// return createExpressions;
// }
// set {
// createExpressions = value ?? new List<Expression>();
// }
// }
//
// public CollectionInitializerExpression() {
// createExpressions = new List<Expression>();
// }
//
// public CollectionInitializerExpression(List<Expression> 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<ParameterDeclarationExpression> parameters, List<AttributeSection> attributes) {
// Name = name;
// Modifier = modifier;
// Parameters = parameters;
// Attributes = attributes;
// constructorInitializer = ConstructorInitializer.Null;
// body = BlockStatement.Null;
// }
//
// public ConstructorDeclaration(string name, Modifiers modifier, List<ParameterDeclarationExpression> parameters, ConstructorInitializer constructorInitializer, List<AttributeSection> 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<Expression> arguments;
//
// public ConstructorInitializerType ConstructorInitializerType {
// get {
// return constructorInitializerType;
// }
// set {
// constructorInitializerType = value;
// }
// }
//
// public List<Expression> Arguments {
// get {
// return arguments;
// }
// set {
// arguments = value ?? new List<Expression>();
// }
// }
//
// public ConstructorInitializer() {
// arguments = new List<Expression>();
// }
//
// 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<ParameterDeclarationExpression> parameters, List<AttributeSection> 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<ParameterDeclarationExpression> parameters;
//
// List<TemplateDefinition> 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<ParameterDeclarationExpression> Parameters {
// get {
// return parameters;
// }
// set {
// parameters = value ?? new List<ParameterDeclarationExpression>();
// }
// }
//
// public List<TemplateDefinition> Templates {
// get {
// return templates;
// }
// set {
// templates = value ?? new List<TemplateDefinition>();
// }
// }
//
// public DelegateDeclaration(Modifiers modifier, List<AttributeSection> attributes) {
// Modifier = modifier;
// Attributes = attributes;
// name = "?";
// returnType = TypeReference.Null;
// parameters = new List<ParameterDeclarationExpression>();
// templates = new List<TemplateDefinition>();
// }
//
// 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<Expression> expressions;
//
// public List<Expression> Expressions {
// get {
// return expressions;
// }
// set {
// expressions = value ?? new List<Expression>();
// }
// }
//
// public EraseStatement() {
// expressions = new List<Expression>();
// }
//
// public EraseStatement(List<Expression> 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<AttributeSection> 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<ParameterDeclarationExpression> parameters;
//
// public BlockStatement Block {
// get {
// return block;
// }
// set {
// block = value ?? BlockStatement.Null;
// if (!block.IsNull) block.Parent = this;
// }
// }
//
// public List<ParameterDeclarationExpression> Parameters {
// get {
// return parameters;
// }
// set {
// parameters = value ?? new List<ParameterDeclarationExpression>();
// }
// }
//
// protected EventAddRemoveRegion(List<AttributeSection> attributes) {
// Attributes = attributes;
// block = BlockStatement.Null;
// parameters = new List<ParameterDeclarationExpression>();
// }
//
// 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<AttributeSection> 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<AttributeSection> 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<VariableDeclaration> fields;
//
// public TypeReference TypeReference {
// get {
// return typeReference;
// }
// set {
// typeReference = value ?? TypeReference.Null;
// if (!typeReference.IsNull) typeReference.Parent = this;
// }
// }
//
// public List<VariableDeclaration> Fields {
// get {
// return fields;
// }
// set {
// fields = value ?? new List<VariableDeclaration>();
// }
// }
//
// public FieldDeclaration(List<AttributeSection> attributes) {
// Attributes = attributes;
// typeReference = TypeReference.Null;
// fields = new List<VariableDeclaration>();
// }
//
// public FieldDeclaration(List<AttributeSection> attributes, TypeReference typeReference, Modifiers modifier) {
// Attributes = attributes;
// TypeReference = typeReference;
// Modifier = modifier;
// fields = new List<VariableDeclaration>();
// }
//
//
// 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<Expression> 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<Expression> NextExpressions {
// get {
// return nextExpressions;
// }
// set {
// nextExpressions = value ?? new List<Expression>();
// }
// }
//
// 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<Expression>();
// 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<Statement> trueStatement;
//
// List<Statement> falseStatement;
//
// List<ElseIfSection> elseIfSections;
//
// public Expression Condition {
// get {
// return condition;
// }
// set {
// condition = value ?? Expression.Null;
// if (!condition.IsNull) condition.Parent = this;
// }
// }
//
// public List<Statement> TrueStatement {
// get {
// return trueStatement;
// }
// set {
// trueStatement = value ?? new List<Statement>();
// }
// }
//
// public List<Statement> FalseStatement {
// get {
// return falseStatement;
// }
// set {
// falseStatement = value ?? new List<Statement>();
// }
// }
//
// public List<ElseIfSection> ElseIfSections {
// get {
// return elseIfSections;
// }
// set {
// elseIfSections = value ?? new List<ElseIfSection>();
// }
// }
//
// public IfElseStatement(Expression condition) {
// Condition = condition;
// trueStatement = new List<Statement>();
// falseStatement = new List<Statement>();
// elseIfSections = new List<ElseIfSection>();
// }
//
//
// 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<Expression> arguments;
//
// public Expression TargetObject {
// get {
// return targetObject;
// }
// set {
// targetObject = value ?? Expression.Null;
// if (!targetObject.IsNull) targetObject.Parent = this;
// }
// }
//
// public List<Expression> Arguments {
// get {
// return arguments;
// }
// set {
// arguments = value ?? new List<Expression>();
// }
// }
//
// public InvocationExpression(Expression targetObject) {
// TargetObject = targetObject;
// arguments = new List<Expression>();
// }
//
// public InvocationExpression(Expression targetObject, List<Expression> 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<ParameterDeclarationExpression> parameters;
//
// Statement statementBody;
//
// Expression expressionBody;
//
// TypeReference returnType;
//
// public List<ParameterDeclarationExpression> Parameters {
// get {
// return parameters;
// }
// set {
// parameters = value ?? new List<ParameterDeclarationExpression>();
// }
// }
//
// 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<ParameterDeclarationExpression>();
// 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<InterfaceImplementation> interfaceImplementations;
//
// TypeReference typeReference;
//
// public List<InterfaceImplementation> InterfaceImplementations {
// get {
// return interfaceImplementations;
// }
// set {
// interfaceImplementations = value ?? new List<InterfaceImplementation>();
// }
// }
//
// public TypeReference TypeReference {
// get {
// return typeReference;
// }
// set {
// typeReference = value ?? TypeReference.Null;
// if (!typeReference.IsNull) typeReference.Parent = this;
// }
// }
//
// protected MemberNode() {
// interfaceImplementations = new List<InterfaceImplementation>();
// typeReference = TypeReference.Null;
// }
//
// protected MemberNode(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
// Modifier = modifier;
// Attributes = attributes;
// Name = name;
// Parameters = parameters;
// interfaceImplementations = new List<InterfaceImplementation>();
// typeReference = TypeReference.Null;
// }
// }
//
// public class MemberReferenceExpression : Expression {
//
// Expression targetObject;
//
// string memberName;
//
// List<TypeReference> 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<TypeReference> TypeArguments {
// get {
// return typeArguments;
// }
// set {
// typeArguments = value ?? new List<TypeReference>();
// }
// }
//
// public MemberReferenceExpression(Expression targetObject, string memberName) {
// TargetObject = targetObject;
// MemberName = memberName;
// typeArguments = new List<TypeReference>();
// }
//
// 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<string> handlesClause;
//
// List<TemplateDefinition> templates;
//
// bool isExtensionMethod;
//
// public BlockStatement Body {
// get {
// return body;
// }
// set {
// body = value ?? BlockStatement.Null;
// if (!body.IsNull) body.Parent = this;
// }
// }
//
// public List<string> HandlesClause {
// get {
// return handlesClause;
// }
// set {
// handlesClause = value ?? new List<String>();
// }
// }
//
// public List<TemplateDefinition> Templates {
// get {
// return templates;
// }
// set {
// templates = value ?? new List<TemplateDefinition>();
// }
// }
//
// public bool IsExtensionMethod {
// get {
// return isExtensionMethod;
// }
// set {
// isExtensionMethod = value;
// }
// }
//
// public MethodDeclaration() {
// body = BlockStatement.Null;
// handlesClause = new List<String>();
// templates = new List<TemplateDefinition>();
// }
//
// 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<Expression> parameters;
//
// CollectionInitializerExpression objectInitializer;
//
// public TypeReference CreateType {
// get {
// return createType;
// }
// set {
// createType = value ?? TypeReference.Null;
// if (!createType.IsNull) createType.Parent = this;
// }
// }
//
// public List<Expression> Parameters {
// get {
// return parameters;
// }
// set {
// parameters = value ?? new List<Expression>();
// }
// }
//
// public CollectionInitializerExpression ObjectInitializer {
// get {
// return objectInitializer;
// }
// set {
// objectInitializer = value ?? CollectionInitializerExpression.Null;
// if (!objectInitializer.IsNull) objectInitializer.Parent = this;
// }
// }
//
// public ObjectCreateExpression(TypeReference createType, List<Expression> 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<AttributeSection> attributes;
//
// string parameterName;
//
// TypeReference typeReference;
//
// ParameterModifiers paramModifier;
//
// Expression defaultValue;
//
// public List<AttributeSection> Attributes {
// get {
// return attributes;
// }
// set {
// attributes = value ?? new List<AttributeSection>();
// }
// }
//
// 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<AttributeSection>();
// defaultValue = Expression.Null;
// }
//
// public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier) {
// TypeReference = typeReference;
// ParameterName = parameterName;
// ParamModifier = paramModifier;
// attributes = new List<AttributeSection>();
// defaultValue = Expression.Null;
// }
//
// public ParameterDeclarationExpression(TypeReference typeReference, string parameterName, ParameterModifiers paramModifier, Expression defaultValue) {
// TypeReference = typeReference;
// ParameterName = parameterName;
// ParamModifier = paramModifier;
// DefaultValue = defaultValue;
// attributes = new List<AttributeSection>();
// }
//
// 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<ParameterDeclarationExpression> parameters;
//
// public string Name {
// get {
// return name;
// }
// set {
// name = value ?? "";
// }
// }
//
// public List<ParameterDeclarationExpression> Parameters {
// get {
// return parameters;
// }
// set {
// parameters = value ?? new List<ParameterDeclarationExpression>();
// }
// }
//
// protected ParametrizedNode() {
// name = "";
// parameters = new List<ParameterDeclarationExpression>();
// }
//
// protected ParametrizedNode(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> 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<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> 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<AttributeSection> 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<AttributeSection> 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<AttributeSection> attributes) {
// Block = block;
// Attributes = attributes;
// }
//
// public virtual bool IsNull {
// get {
// return false;
// }
// }
// }
//
// public class PropertySetRegion : PropertyGetSetRegion {
//
// List<ParameterDeclarationExpression> parameters;
//
// public List<ParameterDeclarationExpression> Parameters {
// get {
// return parameters;
// }
// set {
// parameters = value ?? new List<ParameterDeclarationExpression>();
// }
// }
//
// public PropertySetRegion(BlockStatement block, List<AttributeSection> attributes) :
// base(block, attributes) {
// parameters = new List<ParameterDeclarationExpression>();
// }
//
// 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<QueryExpressionClause> clauses;
//
// public List<QueryExpressionClause> Clauses {
// get {
// return clauses;
// }
// set {
// clauses = value ?? new List<QueryExpressionClause>();
// }
// }
//
// public QueryExpression() {
// clauses = new List<QueryExpressionClause>();
// }
//
// 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<QueryExpressionClause> middleClauses;
//
// List<ExpressionRangeVariable> intoVariables;
//
// public CollectionRangeVariable Source {
// get {
// return source;
// }
// set {
// source = value ?? CollectionRangeVariable.Null;
// if (!source.IsNull) source.Parent = this;
// }
// }
//
// public List<QueryExpressionClause> MiddleClauses {
// get {
// return middleClauses;
// }
// set {
// middleClauses = value ?? new List<QueryExpressionClause>();
// }
// }
//
// public List<ExpressionRangeVariable> IntoVariables {
// get {
// return intoVariables;
// }
// set {
// intoVariables = value ?? new List<ExpressionRangeVariable>();
// }
// }
//
// public QueryExpressionAggregateClause() {
// source = CollectionRangeVariable.Null;
// middleClauses = new List<QueryExpressionClause>();
// intoVariables = new List<ExpressionRangeVariable>();
// }
//
// 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<CollectionRangeVariable> sources;
//
// public List<CollectionRangeVariable> Sources {
// get {
// return sources;
// }
// set {
// sources = value ?? new List<CollectionRangeVariable>();
// }
// }
//
// public QueryExpressionFromClause() {
// sources = new List<CollectionRangeVariable>();
// }
//
// 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<ExpressionRangeVariable> intoVariables;
//
// public QueryExpressionJoinVBClause JoinClause {
// get {
// return joinClause;
// }
// set {
// joinClause = value ?? QueryExpressionJoinVBClause.Null;
// if (!joinClause.IsNull) joinClause.Parent = this;
// }
// }
//
// public List<ExpressionRangeVariable> IntoVariables {
// get {
// return intoVariables;
// }
// set {
// intoVariables = value ?? new List<ExpressionRangeVariable>();
// }
// }
//
// public QueryExpressionGroupJoinVBClause() {
// joinClause = QueryExpressionJoinVBClause.Null;
// intoVariables = new List<ExpressionRangeVariable>();
// }
//
// 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<ExpressionRangeVariable> groupVariables;
//
// List<ExpressionRangeVariable> byVariables;
//
// List<ExpressionRangeVariable> intoVariables;
//
// public List<ExpressionRangeVariable> GroupVariables {
// get {
// return groupVariables;
// }
// set {
// groupVariables = value ?? new List<ExpressionRangeVariable>();
// }
// }
//
// public List<ExpressionRangeVariable> ByVariables {
// get {
// return byVariables;
// }
// set {
// byVariables = value ?? new List<ExpressionRangeVariable>();
// }
// }
//
// public List<ExpressionRangeVariable> IntoVariables {
// get {
// return intoVariables;
// }
// set {
// intoVariables = value ?? new List<ExpressionRangeVariable>();
// }
// }
//
// public QueryExpressionGroupVBClause() {
// groupVariables = new List<ExpressionRangeVariable>();
// byVariables = new List<ExpressionRangeVariable>();
// intoVariables = new List<ExpressionRangeVariable>();
// }
//
// 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<QueryExpressionJoinConditionVB> 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<QueryExpressionJoinConditionVB> Conditions {
// get {
// return conditions;
// }
// set {
// conditions = value ?? new List<QueryExpressionJoinConditionVB>();
// }
// }
//
// public QueryExpressionJoinVBClause() {
// joinVariable = CollectionRangeVariable.Null;
// subJoin = QueryExpressionJoinVBClause.Null;
// conditions = new List<QueryExpressionJoinConditionVB>();
// }
//
// 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<ExpressionRangeVariable> variables;
//
// public List<ExpressionRangeVariable> Variables {
// get {
// return variables;
// }
// set {
// variables = value ?? new List<ExpressionRangeVariable>();
// }
// }
//
// public QueryExpressionLetClause() {
// variables = new List<ExpressionRangeVariable>();
// }
//
// 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<QueryExpressionOrdering> orderings;
//
// public List<QueryExpressionOrdering> Orderings {
// get {
// return orderings;
// }
// set {
// orderings = value ?? new List<QueryExpressionOrdering>();
// }
// }
//
// public QueryExpressionOrderClause() {
// orderings = new List<QueryExpressionOrdering>();
// }
//
// 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<ExpressionRangeVariable> variables;
//
// public List<ExpressionRangeVariable> Variables {
// get {
// return variables;
// }
// set {
// variables = value ?? new List<ExpressionRangeVariable>();
// }
// }
//
// public QueryExpressionSelectVBClause() {
// variables = new List<ExpressionRangeVariable>();
// }
//
// 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<Expression> arguments;
//
// public string EventName {
// get {
// return eventName;
// }
// set {
// eventName = value ?? "";
// }
// }
//
// public List<Expression> Arguments {
// get {
// return arguments;
// }
// set {
// arguments = value ?? new List<Expression>();
// }
// }
//
// public RaiseEventStatement(string eventName, List<Expression> 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<InvocationExpression> reDimClauses;
//
// bool isPreserve;
//
// public List<InvocationExpression> ReDimClauses {
// get {
// return reDimClauses;
// }
// set {
// reDimClauses = value ?? new List<InvocationExpression>();
// }
// }
//
// public bool IsPreserve {
// get {
// return isPreserve;
// }
// set {
// isPreserve = value;
// }
// }
//
// public ReDimStatement(bool isPreserve) {
// IsPreserve = isPreserve;
// reDimClauses = new List<InvocationExpression>();
// }
//
// 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<CaseLabel> switchLabels;
//
// public List<CaseLabel> SwitchLabels {
// get {
// return switchLabels;
// }
// set {
// switchLabels = value ?? new List<CaseLabel>();
// }
// }
//
// public SwitchSection() {
// switchLabels = new List<CaseLabel>();
// }
//
// public SwitchSection(List<CaseLabel> 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<SwitchSection> switchSections;
//
// public Expression SwitchExpression {
// get {
// return switchExpression;
// }
// set {
// switchExpression = value ?? Expression.Null;
// if (!switchExpression.IsNull) switchExpression.Parent = this;
// }
// }
//
// public List<SwitchSection> SwitchSections {
// get {
// return switchSections;
// }
// set {
// switchSections = value ?? new List<SwitchSection>();
// }
// }
//
// public SwitchStatement(Expression switchExpression, List<SwitchSection> 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<TypeReference> bases;
//
// public string Name {
// get {
// return name;
// }
// set {
// name = string.IsNullOrEmpty(value) ? "?" : value;
// }
// }
//
// public VarianceModifier VarianceModifier {
// get {
// return varianceModifier;
// }
// set {
// varianceModifier = value;
// }
// }
//
// public List<TypeReference> Bases {
// get {
// return bases;
// }
// set {
// bases = value ?? new List<TypeReference>();
// }
// }
//
// public TemplateDefinition() {
// name = "?";
// bases = new List<TypeReference>();
// }
//
// public TemplateDefinition(string name, List<AttributeSection> attributes) {
// Name = name;
// Attributes = attributes;
// bases = new List<TypeReference>();
// }
//
// 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<CatchClause> catchClauses;
//
// Statement finallyBlock;
//
// public Statement StatementBlock {
// get {
// return statementBlock;
// }
// set {
// statementBlock = value ?? Statement.Null;
// if (!statementBlock.IsNull) statementBlock.Parent = this;
// }
// }
//
// public List<CatchClause> CatchClauses {
// get {
// return catchClauses;
// }
// set {
// catchClauses = value ?? new List<CatchClause>();
// }
// }
//
// public Statement FinallyBlock {
// get {
// return finallyBlock;
// }
// set {
// finallyBlock = value ?? Statement.Null;
// if (!finallyBlock.IsNull) finallyBlock.Parent = this;
// }
// }
//
// public TryCatchStatement(Statement statementBlock, List<CatchClause> 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<TypeReference> baseTypes;
//
// List<TemplateDefinition> templates;
//
// Location bodyStartLocation;
//
// public string Name {
// get {
// return name;
// }
// set {
// name = value ?? "";
// }
// }
//
// public ClassType Type {
// get {
// return type;
// }
// set {
// type = value;
// }
// }
//
// public List<TypeReference> BaseTypes {
// get {
// return baseTypes;
// }
// set {
// baseTypes = value ?? new List<TypeReference>();
// }
// }
//
// public List<TemplateDefinition> Templates {
// get {
// return templates;
// }
// set {
// templates = value ?? new List<TemplateDefinition>();
// }
// }
//
// public Location BodyStartLocation {
// get {
// return bodyStartLocation;
// }
// set {
// bodyStartLocation = value;
// }
// }
//
// public TypeDeclaration(Modifiers modifier, List<AttributeSection> attributes) {
// Modifier = modifier;
// Attributes = attributes;
// name = "";
// baseTypes = new List<TypeReference>();
// templates = new List<TemplateDefinition>();
// 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<XmlExpression> expressions;
//
// public List<XmlExpression> Expressions {
// get {
// return expressions;
// }
// set {
// expressions = value ?? new List<XmlExpression>();
// }
// }
//
// public XmlDocumentExpression() {
// expressions = new List<XmlExpression>();
// }
//
// 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<XmlExpression> 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<XmlExpression> Attributes {
// get {
// return attributes;
// }
// set {
// attributes = value ?? new List<XmlExpression>();
// }
// }
//
// public XmlElementExpression() {
// content = Expression.Null;
// nameExpression = Expression.Null;
// xmlName = "";
// attributes = new List<XmlExpression>();
// }
//
// 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);
// }
// }
//}