//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.1 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ namespace ICSharpCode.NRefactory.VB.Visitors { using System; using System.Collections.Generic; using System.Diagnostics; using ICSharpCode.NRefactory.VB.Ast; /// /// The AbstractAstTransformer will iterate through the whole Ast, /// just like the AbstractAstVisitor. However, the AbstractAstTransformer allows /// you to modify the Ast at the same time: It does not use 'foreach' internally, /// so you can add members to collections of parents of the current node (but /// you cannot insert or delete items as that will make the index used invalid). /// You can use the methods ReplaceCurrentNode and RemoveCurrentNode to replace /// or remove the current node, totally independent from the type of the parent node. /// // public abstract class AbstractAstTransformer : IAstVisitor { // // private Stack nodeStack = new Stack(); // // public void ReplaceCurrentNode(INode newNode) { // nodeStack.Pop(); // nodeStack.Push(newNode); // } // // public void RemoveCurrentNode() { // nodeStack.Pop(); // nodeStack.Push(null); // } // // public virtual object VisitAddHandlerStatement(AddHandlerStatement addHandlerStatement, object data) { // Debug.Assert((addHandlerStatement != null)); // Debug.Assert((addHandlerStatement.EventExpression != null)); // Debug.Assert((addHandlerStatement.HandlerExpression != null)); // nodeStack.Push(addHandlerStatement.EventExpression); // addHandlerStatement.EventExpression.AcceptVisitor(this, data); // addHandlerStatement.EventExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(addHandlerStatement.HandlerExpression); // addHandlerStatement.HandlerExpression.AcceptVisitor(this, data); // addHandlerStatement.HandlerExpression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitAddressOfExpression(AddressOfExpression addressOfExpression, object data) { // Debug.Assert((addressOfExpression != null)); // Debug.Assert((addressOfExpression.Expression != null)); // nodeStack.Push(addressOfExpression.Expression); // addressOfExpression.Expression.AcceptVisitor(this, data); // addressOfExpression.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, object data) { // Debug.Assert((arrayCreateExpression != null)); // Debug.Assert((arrayCreateExpression.CreateType != null)); // Debug.Assert((arrayCreateExpression.Arguments != null)); // Debug.Assert((arrayCreateExpression.ArrayInitializer != null)); // nodeStack.Push(arrayCreateExpression.CreateType); // arrayCreateExpression.CreateType.AcceptVisitor(this, data); // arrayCreateExpression.CreateType = ((TypeReference)(nodeStack.Pop())); // for (int i = 0; i < arrayCreateExpression.Arguments.Count; i++) { // Expression o = arrayCreateExpression.Arguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // arrayCreateExpression.Arguments.RemoveAt(i--); // else // arrayCreateExpression.Arguments[i] = o; // } // nodeStack.Push(arrayCreateExpression.ArrayInitializer); // arrayCreateExpression.ArrayInitializer.AcceptVisitor(this, data); // arrayCreateExpression.ArrayInitializer = ((CollectionInitializerExpression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitAssignmentExpression(AssignmentExpression assignmentExpression, object data) { // Debug.Assert((assignmentExpression != null)); // Debug.Assert((assignmentExpression.Left != null)); // Debug.Assert((assignmentExpression.Right != null)); // nodeStack.Push(assignmentExpression.Left); // assignmentExpression.Left.AcceptVisitor(this, data); // assignmentExpression.Left = ((Expression)(nodeStack.Pop())); // nodeStack.Push(assignmentExpression.Right); // assignmentExpression.Right.AcceptVisitor(this, data); // assignmentExpression.Right = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitAttribute(ICSharpCode.NRefactory.VB.Ast.Attribute attribute, object data) { // Debug.Assert((attribute != null)); // Debug.Assert((attribute.PositionalArguments != null)); // Debug.Assert((attribute.NamedArguments != null)); // for (int i = 0; i < attribute.PositionalArguments.Count; i++) { // Expression o = attribute.PositionalArguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // attribute.PositionalArguments.RemoveAt(i--); // else // attribute.PositionalArguments[i] = o; // } // for (int i = 0; i < attribute.NamedArguments.Count; i++) { // NamedArgumentExpression o = attribute.NamedArguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (NamedArgumentExpression)nodeStack.Pop(); // if (o == null) // attribute.NamedArguments.RemoveAt(i--); // else // attribute.NamedArguments[i] = o; // } // return null; // } // // public virtual object VisitAttributeSection(AttributeSection attributeSection, object data) { // Debug.Assert((attributeSection != null)); // Debug.Assert((attributeSection.Attributes != null)); // for (int i = 0; i < attributeSection.Attributes.Count; i++) { // ICSharpCode.NRefactory.VB.Ast.Attribute o = attributeSection.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ICSharpCode.NRefactory.VB.Ast.Attribute)nodeStack.Pop(); // if (o == null) // attributeSection.Attributes.RemoveAt(i--); // else // attributeSection.Attributes[i] = o; // } // return null; // } // // public virtual object VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, object data) { // Debug.Assert((baseReferenceExpression != null)); // return null; // } // // public virtual object VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, object data) { // Debug.Assert((binaryOperatorExpression != null)); // Debug.Assert((binaryOperatorExpression.Left != null)); // Debug.Assert((binaryOperatorExpression.Right != null)); // nodeStack.Push(binaryOperatorExpression.Left); // binaryOperatorExpression.Left.AcceptVisitor(this, data); // binaryOperatorExpression.Left = ((Expression)(nodeStack.Pop())); // nodeStack.Push(binaryOperatorExpression.Right); // binaryOperatorExpression.Right.AcceptVisitor(this, data); // binaryOperatorExpression.Right = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitBlockStatement(BlockStatement blockStatement, object data) { // Debug.Assert((blockStatement != null)); // for (int i = 0; i < blockStatement.Children.Count; i++) { // INode o = blockStatement.Children[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = nodeStack.Pop(); // if (o == null) // blockStatement.Children.RemoveAt(i--); // else // blockStatement.Children[i] = o; // } // return null; // } // // public virtual object VisitCaseLabel(CaseLabel caseLabel, object data) { // Debug.Assert((caseLabel != null)); // Debug.Assert((caseLabel.Label != null)); // Debug.Assert((caseLabel.ToExpression != null)); // nodeStack.Push(caseLabel.Label); // caseLabel.Label.AcceptVisitor(this, data); // caseLabel.Label = ((Expression)(nodeStack.Pop())); // nodeStack.Push(caseLabel.ToExpression); // caseLabel.ToExpression.AcceptVisitor(this, data); // caseLabel.ToExpression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitCastExpression(CastExpression castExpression, object data) { // Debug.Assert((castExpression != null)); // Debug.Assert((castExpression.CastTo != null)); // Debug.Assert((castExpression.Expression != null)); // nodeStack.Push(castExpression.CastTo); // castExpression.CastTo.AcceptVisitor(this, data); // castExpression.CastTo = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(castExpression.Expression); // castExpression.Expression.AcceptVisitor(this, data); // castExpression.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitCatchClause(CatchClause catchClause, object data) { // Debug.Assert((catchClause != null)); // Debug.Assert((catchClause.TypeReference != null)); // Debug.Assert((catchClause.StatementBlock != null)); // Debug.Assert((catchClause.Condition != null)); // nodeStack.Push(catchClause.TypeReference); // catchClause.TypeReference.AcceptVisitor(this, data); // catchClause.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(catchClause.StatementBlock); // catchClause.StatementBlock.AcceptVisitor(this, data); // catchClause.StatementBlock = ((Statement)(nodeStack.Pop())); // nodeStack.Push(catchClause.Condition); // catchClause.Condition.AcceptVisitor(this, data); // catchClause.Condition = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitClassReferenceExpression(ClassReferenceExpression classReferenceExpression, object data) { // Debug.Assert((classReferenceExpression != null)); // return null; // } // // public virtual object VisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) { // Debug.Assert((collectionInitializerExpression != null)); // Debug.Assert((collectionInitializerExpression.CreateExpressions != null)); // for (int i = 0; i < collectionInitializerExpression.CreateExpressions.Count; i++) { // Expression o = collectionInitializerExpression.CreateExpressions[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // collectionInitializerExpression.CreateExpressions.RemoveAt(i--); // else // collectionInitializerExpression.CreateExpressions[i] = o; // } // return null; // } // // public virtual object VisitCollectionRangeVariable(CollectionRangeVariable collectionRangeVariable, object data) { // Debug.Assert((collectionRangeVariable != null)); // Debug.Assert((collectionRangeVariable.Expression != null)); // Debug.Assert((collectionRangeVariable.Type != null)); // nodeStack.Push(collectionRangeVariable.Expression); // collectionRangeVariable.Expression.AcceptVisitor(this, data); // collectionRangeVariable.Expression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(collectionRangeVariable.Type); // collectionRangeVariable.Type.AcceptVisitor(this, data); // collectionRangeVariable.Type = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitCompilationUnit(CompilationUnit compilationUnit, object data) { // Debug.Assert((compilationUnit != null)); // for (int i = 0; i < compilationUnit.Children.Count; i++) { // INode o = compilationUnit.Children[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = nodeStack.Pop(); // if (o == null) // compilationUnit.Children.RemoveAt(i--); // else // compilationUnit.Children[i] = o; // } // return null; // } // // public virtual object VisitConditionalExpression(ConditionalExpression conditionalExpression, object data) { // Debug.Assert((conditionalExpression != null)); // Debug.Assert((conditionalExpression.Condition != null)); // Debug.Assert((conditionalExpression.TrueExpression != null)); // Debug.Assert((conditionalExpression.FalseExpression != null)); // nodeStack.Push(conditionalExpression.Condition); // conditionalExpression.Condition.AcceptVisitor(this, data); // conditionalExpression.Condition = ((Expression)(nodeStack.Pop())); // nodeStack.Push(conditionalExpression.TrueExpression); // conditionalExpression.TrueExpression.AcceptVisitor(this, data); // conditionalExpression.TrueExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(conditionalExpression.FalseExpression); // conditionalExpression.FalseExpression.AcceptVisitor(this, data); // conditionalExpression.FalseExpression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, object data) { // Debug.Assert((constructorDeclaration != null)); // Debug.Assert((constructorDeclaration.Attributes != null)); // Debug.Assert((constructorDeclaration.Parameters != null)); // Debug.Assert((constructorDeclaration.ConstructorInitializer != null)); // Debug.Assert((constructorDeclaration.Body != null)); // for (int i = 0; i < constructorDeclaration.Attributes.Count; i++) { // AttributeSection o = constructorDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // constructorDeclaration.Attributes.RemoveAt(i--); // else // constructorDeclaration.Attributes[i] = o; // } // for (int i = 0; i < constructorDeclaration.Parameters.Count; i++) { // ParameterDeclarationExpression o = constructorDeclaration.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // constructorDeclaration.Parameters.RemoveAt(i--); // else // constructorDeclaration.Parameters[i] = o; // } // nodeStack.Push(constructorDeclaration.ConstructorInitializer); // constructorDeclaration.ConstructorInitializer.AcceptVisitor(this, data); // constructorDeclaration.ConstructorInitializer = ((ConstructorInitializer)(nodeStack.Pop())); // nodeStack.Push(constructorDeclaration.Body); // constructorDeclaration.Body.AcceptVisitor(this, data); // constructorDeclaration.Body = ((BlockStatement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) { // Debug.Assert((constructorInitializer != null)); // Debug.Assert((constructorInitializer.Arguments != null)); // for (int i = 0; i < constructorInitializer.Arguments.Count; i++) { // Expression o = constructorInitializer.Arguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // constructorInitializer.Arguments.RemoveAt(i--); // else // constructorInitializer.Arguments[i] = o; // } // return null; // } // // public virtual object VisitContinueStatement(ContinueStatement continueStatement, object data) { // Debug.Assert((continueStatement != null)); // return null; // } // // public virtual object VisitDeclareDeclaration(DeclareDeclaration declareDeclaration, object data) { // Debug.Assert((declareDeclaration != null)); // Debug.Assert((declareDeclaration.Attributes != null)); // Debug.Assert((declareDeclaration.Parameters != null)); // Debug.Assert((declareDeclaration.TypeReference != null)); // for (int i = 0; i < declareDeclaration.Attributes.Count; i++) { // AttributeSection o = declareDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // declareDeclaration.Attributes.RemoveAt(i--); // else // declareDeclaration.Attributes[i] = o; // } // for (int i = 0; i < declareDeclaration.Parameters.Count; i++) { // ParameterDeclarationExpression o = declareDeclaration.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // declareDeclaration.Parameters.RemoveAt(i--); // else // declareDeclaration.Parameters[i] = o; // } // nodeStack.Push(declareDeclaration.TypeReference); // declareDeclaration.TypeReference.AcceptVisitor(this, data); // declareDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) { // Debug.Assert((defaultValueExpression != null)); // Debug.Assert((defaultValueExpression.TypeReference != null)); // nodeStack.Push(defaultValueExpression.TypeReference); // defaultValueExpression.TypeReference.AcceptVisitor(this, data); // defaultValueExpression.TypeReference = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { // Debug.Assert((delegateDeclaration != null)); // Debug.Assert((delegateDeclaration.Attributes != null)); // Debug.Assert((delegateDeclaration.ReturnType != null)); // Debug.Assert((delegateDeclaration.Parameters != null)); // Debug.Assert((delegateDeclaration.Templates != null)); // for (int i = 0; i < delegateDeclaration.Attributes.Count; i++) { // AttributeSection o = delegateDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // delegateDeclaration.Attributes.RemoveAt(i--); // else // delegateDeclaration.Attributes[i] = o; // } // nodeStack.Push(delegateDeclaration.ReturnType); // delegateDeclaration.ReturnType.AcceptVisitor(this, data); // delegateDeclaration.ReturnType = ((TypeReference)(nodeStack.Pop())); // for (int i = 0; i < delegateDeclaration.Parameters.Count; i++) { // ParameterDeclarationExpression o = delegateDeclaration.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // delegateDeclaration.Parameters.RemoveAt(i--); // else // delegateDeclaration.Parameters[i] = o; // } // for (int i = 0; i < delegateDeclaration.Templates.Count; i++) { // TemplateDefinition o = delegateDeclaration.Templates[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TemplateDefinition)nodeStack.Pop(); // if (o == null) // delegateDeclaration.Templates.RemoveAt(i--); // else // delegateDeclaration.Templates[i] = o; // } // return null; // } // // public virtual object VisitDirectionExpression(DirectionExpression directionExpression, object data) { // Debug.Assert((directionExpression != null)); // Debug.Assert((directionExpression.Expression != null)); // nodeStack.Push(directionExpression.Expression); // directionExpression.Expression.AcceptVisitor(this, data); // directionExpression.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitDoLoopStatement(DoLoopStatement doLoopStatement, object data) { // Debug.Assert((doLoopStatement != null)); // Debug.Assert((doLoopStatement.Condition != null)); // Debug.Assert((doLoopStatement.EmbeddedStatement != null)); // nodeStack.Push(doLoopStatement.Condition); // doLoopStatement.Condition.AcceptVisitor(this, data); // doLoopStatement.Condition = ((Expression)(nodeStack.Pop())); // nodeStack.Push(doLoopStatement.EmbeddedStatement); // doLoopStatement.EmbeddedStatement.AcceptVisitor(this, data); // doLoopStatement.EmbeddedStatement = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitElseIfSection(ElseIfSection elseIfSection, object data) { // Debug.Assert((elseIfSection != null)); // Debug.Assert((elseIfSection.Condition != null)); // Debug.Assert((elseIfSection.EmbeddedStatement != null)); // nodeStack.Push(elseIfSection.Condition); // elseIfSection.Condition.AcceptVisitor(this, data); // elseIfSection.Condition = ((Expression)(nodeStack.Pop())); // nodeStack.Push(elseIfSection.EmbeddedStatement); // elseIfSection.EmbeddedStatement.AcceptVisitor(this, data); // elseIfSection.EmbeddedStatement = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitEndStatement(EndStatement endStatement, object data) { // Debug.Assert((endStatement != null)); // return null; // } // // public virtual object VisitEraseStatement(EraseStatement eraseStatement, object data) { // Debug.Assert((eraseStatement != null)); // Debug.Assert((eraseStatement.Expressions != null)); // for (int i = 0; i < eraseStatement.Expressions.Count; i++) { // Expression o = eraseStatement.Expressions[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // eraseStatement.Expressions.RemoveAt(i--); // else // eraseStatement.Expressions[i] = o; // } // return null; // } // // public virtual object VisitErrorStatement(ErrorStatement errorStatement, object data) { // Debug.Assert((errorStatement != null)); // Debug.Assert((errorStatement.Expression != null)); // nodeStack.Push(errorStatement.Expression); // errorStatement.Expression.AcceptVisitor(this, data); // errorStatement.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitEventAddRegion(EventAddRegion eventAddRegion, object data) { // Debug.Assert((eventAddRegion != null)); // Debug.Assert((eventAddRegion.Attributes != null)); // Debug.Assert((eventAddRegion.Block != null)); // Debug.Assert((eventAddRegion.Parameters != null)); // for (int i = 0; i < eventAddRegion.Attributes.Count; i++) { // AttributeSection o = eventAddRegion.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // eventAddRegion.Attributes.RemoveAt(i--); // else // eventAddRegion.Attributes[i] = o; // } // nodeStack.Push(eventAddRegion.Block); // eventAddRegion.Block.AcceptVisitor(this, data); // eventAddRegion.Block = ((BlockStatement)(nodeStack.Pop())); // for (int i = 0; i < eventAddRegion.Parameters.Count; i++) { // ParameterDeclarationExpression o = eventAddRegion.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // eventAddRegion.Parameters.RemoveAt(i--); // else // eventAddRegion.Parameters[i] = o; // } // return null; // } // // public virtual object VisitEventDeclaration(EventDeclaration eventDeclaration, object data) { // Debug.Assert((eventDeclaration != null)); // Debug.Assert((eventDeclaration.Attributes != null)); // Debug.Assert((eventDeclaration.Parameters != null)); // Debug.Assert((eventDeclaration.InterfaceImplementations != null)); // Debug.Assert((eventDeclaration.TypeReference != null)); // Debug.Assert((eventDeclaration.AddRegion != null)); // Debug.Assert((eventDeclaration.RemoveRegion != null)); // Debug.Assert((eventDeclaration.RaiseRegion != null)); // Debug.Assert((eventDeclaration.Initializer != null)); // for (int i = 0; i < eventDeclaration.Attributes.Count; i++) { // AttributeSection o = eventDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // eventDeclaration.Attributes.RemoveAt(i--); // else // eventDeclaration.Attributes[i] = o; // } // for (int i = 0; i < eventDeclaration.Parameters.Count; i++) { // ParameterDeclarationExpression o = eventDeclaration.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // eventDeclaration.Parameters.RemoveAt(i--); // else // eventDeclaration.Parameters[i] = o; // } // for (int i = 0; i < eventDeclaration.InterfaceImplementations.Count; i++) { // InterfaceImplementation o = eventDeclaration.InterfaceImplementations[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (InterfaceImplementation)nodeStack.Pop(); // if (o == null) // eventDeclaration.InterfaceImplementations.RemoveAt(i--); // else // eventDeclaration.InterfaceImplementations[i] = o; // } // nodeStack.Push(eventDeclaration.TypeReference); // eventDeclaration.TypeReference.AcceptVisitor(this, data); // eventDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(eventDeclaration.AddRegion); // eventDeclaration.AddRegion.AcceptVisitor(this, data); // eventDeclaration.AddRegion = ((EventAddRegion)(nodeStack.Pop())); // nodeStack.Push(eventDeclaration.RemoveRegion); // eventDeclaration.RemoveRegion.AcceptVisitor(this, data); // eventDeclaration.RemoveRegion = ((EventRemoveRegion)(nodeStack.Pop())); // nodeStack.Push(eventDeclaration.RaiseRegion); // eventDeclaration.RaiseRegion.AcceptVisitor(this, data); // eventDeclaration.RaiseRegion = ((EventRaiseRegion)(nodeStack.Pop())); // nodeStack.Push(eventDeclaration.Initializer); // eventDeclaration.Initializer.AcceptVisitor(this, data); // eventDeclaration.Initializer = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitEventRaiseRegion(EventRaiseRegion eventRaiseRegion, object data) { // Debug.Assert((eventRaiseRegion != null)); // Debug.Assert((eventRaiseRegion.Attributes != null)); // Debug.Assert((eventRaiseRegion.Block != null)); // Debug.Assert((eventRaiseRegion.Parameters != null)); // for (int i = 0; i < eventRaiseRegion.Attributes.Count; i++) { // AttributeSection o = eventRaiseRegion.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // eventRaiseRegion.Attributes.RemoveAt(i--); // else // eventRaiseRegion.Attributes[i] = o; // } // nodeStack.Push(eventRaiseRegion.Block); // eventRaiseRegion.Block.AcceptVisitor(this, data); // eventRaiseRegion.Block = ((BlockStatement)(nodeStack.Pop())); // for (int i = 0; i < eventRaiseRegion.Parameters.Count; i++) { // ParameterDeclarationExpression o = eventRaiseRegion.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // eventRaiseRegion.Parameters.RemoveAt(i--); // else // eventRaiseRegion.Parameters[i] = o; // } // return null; // } // // public virtual object VisitEventRemoveRegion(EventRemoveRegion eventRemoveRegion, object data) { // Debug.Assert((eventRemoveRegion != null)); // Debug.Assert((eventRemoveRegion.Attributes != null)); // Debug.Assert((eventRemoveRegion.Block != null)); // Debug.Assert((eventRemoveRegion.Parameters != null)); // for (int i = 0; i < eventRemoveRegion.Attributes.Count; i++) { // AttributeSection o = eventRemoveRegion.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // eventRemoveRegion.Attributes.RemoveAt(i--); // else // eventRemoveRegion.Attributes[i] = o; // } // nodeStack.Push(eventRemoveRegion.Block); // eventRemoveRegion.Block.AcceptVisitor(this, data); // eventRemoveRegion.Block = ((BlockStatement)(nodeStack.Pop())); // for (int i = 0; i < eventRemoveRegion.Parameters.Count; i++) { // ParameterDeclarationExpression o = eventRemoveRegion.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // eventRemoveRegion.Parameters.RemoveAt(i--); // else // eventRemoveRegion.Parameters[i] = o; // } // return null; // } // // public virtual object VisitExitStatement(ExitStatement exitStatement, object data) { // Debug.Assert((exitStatement != null)); // return null; // } // // public virtual object VisitExpressionRangeVariable(ExpressionRangeVariable expressionRangeVariable, object data) { // Debug.Assert((expressionRangeVariable != null)); // Debug.Assert((expressionRangeVariable.Expression != null)); // Debug.Assert((expressionRangeVariable.Type != null)); // nodeStack.Push(expressionRangeVariable.Expression); // expressionRangeVariable.Expression.AcceptVisitor(this, data); // expressionRangeVariable.Expression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(expressionRangeVariable.Type); // expressionRangeVariable.Type.AcceptVisitor(this, data); // expressionRangeVariable.Type = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitExpressionStatement(ExpressionStatement expressionStatement, object data) { // Debug.Assert((expressionStatement != null)); // Debug.Assert((expressionStatement.Expression != null)); // nodeStack.Push(expressionStatement.Expression); // expressionStatement.Expression.AcceptVisitor(this, data); // expressionStatement.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitExternAliasDirective(ExternAliasDirective externAliasDirective, object data) { // Debug.Assert((externAliasDirective != null)); // return null; // } // // public virtual object VisitFieldDeclaration(FieldDeclaration fieldDeclaration, object data) { // Debug.Assert((fieldDeclaration != null)); // Debug.Assert((fieldDeclaration.Attributes != null)); // Debug.Assert((fieldDeclaration.TypeReference != null)); // Debug.Assert((fieldDeclaration.Fields != null)); // for (int i = 0; i < fieldDeclaration.Attributes.Count; i++) { // AttributeSection o = fieldDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // fieldDeclaration.Attributes.RemoveAt(i--); // else // fieldDeclaration.Attributes[i] = o; // } // nodeStack.Push(fieldDeclaration.TypeReference); // fieldDeclaration.TypeReference.AcceptVisitor(this, data); // fieldDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // for (int i = 0; i < fieldDeclaration.Fields.Count; i++) { // VariableDeclaration o = fieldDeclaration.Fields[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (VariableDeclaration)nodeStack.Pop(); // if (o == null) // fieldDeclaration.Fields.RemoveAt(i--); // else // fieldDeclaration.Fields[i] = o; // } // return null; // } // // public virtual object VisitForeachStatement(ForeachStatement foreachStatement, object data) { // Debug.Assert((foreachStatement != null)); // Debug.Assert((foreachStatement.TypeReference != null)); // Debug.Assert((foreachStatement.Expression != null)); // Debug.Assert((foreachStatement.NextExpression != null)); // Debug.Assert((foreachStatement.EmbeddedStatement != null)); // nodeStack.Push(foreachStatement.TypeReference); // foreachStatement.TypeReference.AcceptVisitor(this, data); // foreachStatement.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(foreachStatement.Expression); // foreachStatement.Expression.AcceptVisitor(this, data); // foreachStatement.Expression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(foreachStatement.NextExpression); // foreachStatement.NextExpression.AcceptVisitor(this, data); // foreachStatement.NextExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(foreachStatement.EmbeddedStatement); // foreachStatement.EmbeddedStatement.AcceptVisitor(this, data); // foreachStatement.EmbeddedStatement = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitForNextStatement(ForNextStatement forNextStatement, object data) { // Debug.Assert((forNextStatement != null)); // Debug.Assert((forNextStatement.Start != null)); // Debug.Assert((forNextStatement.End != null)); // Debug.Assert((forNextStatement.Step != null)); // Debug.Assert((forNextStatement.NextExpressions != null)); // Debug.Assert((forNextStatement.TypeReference != null)); // Debug.Assert((forNextStatement.LoopVariableExpression != null)); // Debug.Assert((forNextStatement.EmbeddedStatement != null)); // nodeStack.Push(forNextStatement.Start); // forNextStatement.Start.AcceptVisitor(this, data); // forNextStatement.Start = ((Expression)(nodeStack.Pop())); // nodeStack.Push(forNextStatement.End); // forNextStatement.End.AcceptVisitor(this, data); // forNextStatement.End = ((Expression)(nodeStack.Pop())); // nodeStack.Push(forNextStatement.Step); // forNextStatement.Step.AcceptVisitor(this, data); // forNextStatement.Step = ((Expression)(nodeStack.Pop())); // for (int i = 0; i < forNextStatement.NextExpressions.Count; i++) { // Expression o = forNextStatement.NextExpressions[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // forNextStatement.NextExpressions.RemoveAt(i--); // else // forNextStatement.NextExpressions[i] = o; // } // nodeStack.Push(forNextStatement.TypeReference); // forNextStatement.TypeReference.AcceptVisitor(this, data); // forNextStatement.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(forNextStatement.LoopVariableExpression); // forNextStatement.LoopVariableExpression.AcceptVisitor(this, data); // forNextStatement.LoopVariableExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(forNextStatement.EmbeddedStatement); // forNextStatement.EmbeddedStatement.AcceptVisitor(this, data); // forNextStatement.EmbeddedStatement = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitGotoStatement(GotoStatement gotoStatement, object data) { // Debug.Assert((gotoStatement != null)); // return null; // } // // public virtual object VisitIdentifierExpression(SimpleNameExpression identifierExpression, object data) { // Debug.Assert((identifierExpression != null)); // Debug.Assert((identifierExpression.TypeArguments != null)); // for (int i = 0; i < identifierExpression.TypeArguments.Count; i++) { // TypeReference o = identifierExpression.TypeArguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TypeReference)nodeStack.Pop(); // if (o == null) // identifierExpression.TypeArguments.RemoveAt(i--); // else // identifierExpression.TypeArguments[i] = o; // } // return null; // } // // public virtual object VisitIfElseStatement(IfElseStatement ifElseStatement, object data) { // Debug.Assert((ifElseStatement != null)); // Debug.Assert((ifElseStatement.Condition != null)); // Debug.Assert((ifElseStatement.TrueStatement != null)); // Debug.Assert((ifElseStatement.FalseStatement != null)); // Debug.Assert((ifElseStatement.ElseIfSections != null)); // nodeStack.Push(ifElseStatement.Condition); // ifElseStatement.Condition.AcceptVisitor(this, data); // ifElseStatement.Condition = ((Expression)(nodeStack.Pop())); // for (int i = 0; i < ifElseStatement.TrueStatement.Count; i++) { // Statement o = ifElseStatement.TrueStatement[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Statement)nodeStack.Pop(); // if (o == null) // ifElseStatement.TrueStatement.RemoveAt(i--); // else // ifElseStatement.TrueStatement[i] = o; // } // for (int i = 0; i < ifElseStatement.FalseStatement.Count; i++) { // Statement o = ifElseStatement.FalseStatement[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Statement)nodeStack.Pop(); // if (o == null) // ifElseStatement.FalseStatement.RemoveAt(i--); // else // ifElseStatement.FalseStatement[i] = o; // } // for (int i = 0; i < ifElseStatement.ElseIfSections.Count; i++) { // ElseIfSection o = ifElseStatement.ElseIfSections[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ElseIfSection)nodeStack.Pop(); // if (o == null) // ifElseStatement.ElseIfSections.RemoveAt(i--); // else // ifElseStatement.ElseIfSections[i] = o; // } // return null; // } // // public virtual object VisitInnerClassTypeReference(InnerClassTypeReference innerClassTypeReference, object data) { // Debug.Assert((innerClassTypeReference != null)); // Debug.Assert((innerClassTypeReference.GenericTypes != null)); // Debug.Assert((innerClassTypeReference.BaseType != null)); // for (int i = 0; i < innerClassTypeReference.GenericTypes.Count; i++) { // TypeReference o = innerClassTypeReference.GenericTypes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TypeReference)nodeStack.Pop(); // if (o == null) // innerClassTypeReference.GenericTypes.RemoveAt(i--); // else // innerClassTypeReference.GenericTypes[i] = o; // } // nodeStack.Push(innerClassTypeReference.BaseType); // innerClassTypeReference.BaseType.AcceptVisitor(this, data); // innerClassTypeReference.BaseType = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitInterfaceImplementation(InterfaceImplementation interfaceImplementation, object data) { // Debug.Assert((interfaceImplementation != null)); // Debug.Assert((interfaceImplementation.InterfaceType != null)); // nodeStack.Push(interfaceImplementation.InterfaceType); // interfaceImplementation.InterfaceType.AcceptVisitor(this, data); // interfaceImplementation.InterfaceType = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitInvocationExpression(InvocationExpression invocationExpression, object data) { // Debug.Assert((invocationExpression != null)); // Debug.Assert((invocationExpression.TargetObject != null)); // Debug.Assert((invocationExpression.Arguments != null)); // nodeStack.Push(invocationExpression.TargetObject); // invocationExpression.TargetObject.AcceptVisitor(this, data); // invocationExpression.TargetObject = ((Expression)(nodeStack.Pop())); // for (int i = 0; i < invocationExpression.Arguments.Count; i++) { // Expression o = invocationExpression.Arguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // invocationExpression.Arguments.RemoveAt(i--); // else // invocationExpression.Arguments[i] = o; // } // return null; // } // // public virtual object VisitLabelStatement(LabelStatement labelStatement, object data) { // Debug.Assert((labelStatement != null)); // return null; // } // // public virtual object VisitLambdaExpression(LambdaExpression lambdaExpression, object data) { // Debug.Assert((lambdaExpression != null)); // Debug.Assert((lambdaExpression.Parameters != null)); // Debug.Assert((lambdaExpression.StatementBody != null)); // Debug.Assert((lambdaExpression.ExpressionBody != null)); // Debug.Assert((lambdaExpression.ReturnType != null)); // for (int i = 0; i < lambdaExpression.Parameters.Count; i++) { // ParameterDeclarationExpression o = lambdaExpression.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // lambdaExpression.Parameters.RemoveAt(i--); // else // lambdaExpression.Parameters[i] = o; // } // nodeStack.Push(lambdaExpression.StatementBody); // lambdaExpression.StatementBody.AcceptVisitor(this, data); // lambdaExpression.StatementBody = ((Statement)(nodeStack.Pop())); // nodeStack.Push(lambdaExpression.ExpressionBody); // lambdaExpression.ExpressionBody.AcceptVisitor(this, data); // lambdaExpression.ExpressionBody = ((Expression)(nodeStack.Pop())); // nodeStack.Push(lambdaExpression.ReturnType); // lambdaExpression.ReturnType.AcceptVisitor(this, data); // lambdaExpression.ReturnType = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitLocalVariableDeclaration(LocalVariableDeclaration localVariableDeclaration, object data) { // Debug.Assert((localVariableDeclaration != null)); // Debug.Assert((localVariableDeclaration.TypeReference != null)); // Debug.Assert((localVariableDeclaration.Variables != null)); // nodeStack.Push(localVariableDeclaration.TypeReference); // localVariableDeclaration.TypeReference.AcceptVisitor(this, data); // localVariableDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // for (int i = 0; i < localVariableDeclaration.Variables.Count; i++) { // VariableDeclaration o = localVariableDeclaration.Variables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (VariableDeclaration)nodeStack.Pop(); // if (o == null) // localVariableDeclaration.Variables.RemoveAt(i--); // else // localVariableDeclaration.Variables[i] = o; // } // return null; // } // // public virtual object VisitLockStatement(LockStatement lockStatement, object data) { // Debug.Assert((lockStatement != null)); // Debug.Assert((lockStatement.LockExpression != null)); // Debug.Assert((lockStatement.EmbeddedStatement != null)); // nodeStack.Push(lockStatement.LockExpression); // lockStatement.LockExpression.AcceptVisitor(this, data); // lockStatement.LockExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(lockStatement.EmbeddedStatement); // lockStatement.EmbeddedStatement.AcceptVisitor(this, data); // lockStatement.EmbeddedStatement = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitMemberInitializerExpression(MemberInitializerExpression memberInitializerExpression, object data) { // Debug.Assert((memberInitializerExpression != null)); // Debug.Assert((memberInitializerExpression.Expression != null)); // nodeStack.Push(memberInitializerExpression.Expression); // memberInitializerExpression.Expression.AcceptVisitor(this, data); // memberInitializerExpression.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, object data) { // Debug.Assert((memberReferenceExpression != null)); // Debug.Assert((memberReferenceExpression.TargetObject != null)); // Debug.Assert((memberReferenceExpression.TypeArguments != null)); // nodeStack.Push(memberReferenceExpression.TargetObject); // memberReferenceExpression.TargetObject.AcceptVisitor(this, data); // memberReferenceExpression.TargetObject = ((Expression)(nodeStack.Pop())); // for (int i = 0; i < memberReferenceExpression.TypeArguments.Count; i++) { // TypeReference o = memberReferenceExpression.TypeArguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TypeReference)nodeStack.Pop(); // if (o == null) // memberReferenceExpression.TypeArguments.RemoveAt(i--); // else // memberReferenceExpression.TypeArguments[i] = o; // } // return null; // } // // public virtual object VisitMethodDeclaration(MethodDeclaration methodDeclaration, object data) { // Debug.Assert((methodDeclaration != null)); // Debug.Assert((methodDeclaration.Attributes != null)); // Debug.Assert((methodDeclaration.Parameters != null)); // Debug.Assert((methodDeclaration.InterfaceImplementations != null)); // Debug.Assert((methodDeclaration.TypeReference != null)); // Debug.Assert((methodDeclaration.Body != null)); // Debug.Assert((methodDeclaration.Templates != null)); // for (int i = 0; i < methodDeclaration.Attributes.Count; i++) { // AttributeSection o = methodDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // methodDeclaration.Attributes.RemoveAt(i--); // else // methodDeclaration.Attributes[i] = o; // } // for (int i = 0; i < methodDeclaration.Parameters.Count; i++) { // ParameterDeclarationExpression o = methodDeclaration.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // methodDeclaration.Parameters.RemoveAt(i--); // else // methodDeclaration.Parameters[i] = o; // } // for (int i = 0; i < methodDeclaration.InterfaceImplementations.Count; i++) { // InterfaceImplementation o = methodDeclaration.InterfaceImplementations[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (InterfaceImplementation)nodeStack.Pop(); // if (o == null) // methodDeclaration.InterfaceImplementations.RemoveAt(i--); // else // methodDeclaration.InterfaceImplementations[i] = o; // } // nodeStack.Push(methodDeclaration.TypeReference); // methodDeclaration.TypeReference.AcceptVisitor(this, data); // methodDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(methodDeclaration.Body); // methodDeclaration.Body.AcceptVisitor(this, data); // methodDeclaration.Body = ((BlockStatement)(nodeStack.Pop())); // for (int i = 0; i < methodDeclaration.Templates.Count; i++) { // TemplateDefinition o = methodDeclaration.Templates[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TemplateDefinition)nodeStack.Pop(); // if (o == null) // methodDeclaration.Templates.RemoveAt(i--); // else // methodDeclaration.Templates[i] = o; // } // return null; // } // // public virtual object VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, object data) { // Debug.Assert((namedArgumentExpression != null)); // Debug.Assert((namedArgumentExpression.Expression != null)); // nodeStack.Push(namedArgumentExpression.Expression); // namedArgumentExpression.Expression.AcceptVisitor(this, data); // namedArgumentExpression.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, object data) { // Debug.Assert((namespaceDeclaration != null)); // for (int i = 0; i < namespaceDeclaration.Children.Count; i++) { // INode o = namespaceDeclaration.Children[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = nodeStack.Pop(); // if (o == null) // namespaceDeclaration.Children.RemoveAt(i--); // else // namespaceDeclaration.Children[i] = o; // } // return null; // } // // public virtual object VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression, object data) { // Debug.Assert((objectCreateExpression != null)); // Debug.Assert((objectCreateExpression.CreateType != null)); // Debug.Assert((objectCreateExpression.Parameters != null)); // Debug.Assert((objectCreateExpression.ObjectInitializer != null)); // nodeStack.Push(objectCreateExpression.CreateType); // objectCreateExpression.CreateType.AcceptVisitor(this, data); // objectCreateExpression.CreateType = ((TypeReference)(nodeStack.Pop())); // for (int i = 0; i < objectCreateExpression.Parameters.Count; i++) { // Expression o = objectCreateExpression.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // objectCreateExpression.Parameters.RemoveAt(i--); // else // objectCreateExpression.Parameters[i] = o; // } // nodeStack.Push(objectCreateExpression.ObjectInitializer); // objectCreateExpression.ObjectInitializer.AcceptVisitor(this, data); // objectCreateExpression.ObjectInitializer = ((CollectionInitializerExpression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitOnErrorStatement(OnErrorStatement onErrorStatement, object data) { // Debug.Assert((onErrorStatement != null)); // Debug.Assert((onErrorStatement.EmbeddedStatement != null)); // nodeStack.Push(onErrorStatement.EmbeddedStatement); // onErrorStatement.EmbeddedStatement.AcceptVisitor(this, data); // onErrorStatement.EmbeddedStatement = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, object data) { // Debug.Assert((operatorDeclaration != null)); // Debug.Assert((operatorDeclaration.Attributes != null)); // Debug.Assert((operatorDeclaration.Parameters != null)); // Debug.Assert((operatorDeclaration.InterfaceImplementations != null)); // Debug.Assert((operatorDeclaration.TypeReference != null)); // Debug.Assert((operatorDeclaration.Body != null)); // Debug.Assert((operatorDeclaration.Templates != null)); // for (int i = 0; i < operatorDeclaration.Attributes.Count; i++) { // AttributeSection o = operatorDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // operatorDeclaration.Attributes.RemoveAt(i--); // else // operatorDeclaration.Attributes[i] = o; // } // for (int i = 0; i < operatorDeclaration.Parameters.Count; i++) { // ParameterDeclarationExpression o = operatorDeclaration.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // operatorDeclaration.Parameters.RemoveAt(i--); // else // operatorDeclaration.Parameters[i] = o; // } // for (int i = 0; i < operatorDeclaration.InterfaceImplementations.Count; i++) { // InterfaceImplementation o = operatorDeclaration.InterfaceImplementations[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (InterfaceImplementation)nodeStack.Pop(); // if (o == null) // operatorDeclaration.InterfaceImplementations.RemoveAt(i--); // else // operatorDeclaration.InterfaceImplementations[i] = o; // } // nodeStack.Push(operatorDeclaration.TypeReference); // operatorDeclaration.TypeReference.AcceptVisitor(this, data); // operatorDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(operatorDeclaration.Body); // operatorDeclaration.Body.AcceptVisitor(this, data); // operatorDeclaration.Body = ((BlockStatement)(nodeStack.Pop())); // for (int i = 0; i < operatorDeclaration.Templates.Count; i++) { // TemplateDefinition o = operatorDeclaration.Templates[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TemplateDefinition)nodeStack.Pop(); // if (o == null) // operatorDeclaration.Templates.RemoveAt(i--); // else // operatorDeclaration.Templates[i] = o; // } // return null; // } // // public virtual object VisitOptionDeclaration(OptionDeclaration optionDeclaration, object data) { // Debug.Assert((optionDeclaration != null)); // return null; // } // // public virtual object VisitParameterDeclarationExpression(ParameterDeclarationExpression parameterDeclarationExpression, object data) { // Debug.Assert((parameterDeclarationExpression != null)); // Debug.Assert((parameterDeclarationExpression.Attributes != null)); // Debug.Assert((parameterDeclarationExpression.TypeReference != null)); // Debug.Assert((parameterDeclarationExpression.DefaultValue != null)); // for (int i = 0; i < parameterDeclarationExpression.Attributes.Count; i++) { // AttributeSection o = parameterDeclarationExpression.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // parameterDeclarationExpression.Attributes.RemoveAt(i--); // else // parameterDeclarationExpression.Attributes[i] = o; // } // nodeStack.Push(parameterDeclarationExpression.TypeReference); // parameterDeclarationExpression.TypeReference.AcceptVisitor(this, data); // parameterDeclarationExpression.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(parameterDeclarationExpression.DefaultValue); // parameterDeclarationExpression.DefaultValue.AcceptVisitor(this, data); // parameterDeclarationExpression.DefaultValue = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, object data) { // Debug.Assert((parenthesizedExpression != null)); // Debug.Assert((parenthesizedExpression.Expression != null)); // nodeStack.Push(parenthesizedExpression.Expression); // parenthesizedExpression.Expression.AcceptVisitor(this, data); // parenthesizedExpression.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, object data) { // Debug.Assert((primitiveExpression != null)); // return null; // } // // public virtual object VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, object data) { // Debug.Assert((propertyDeclaration != null)); // Debug.Assert((propertyDeclaration.Attributes != null)); // Debug.Assert((propertyDeclaration.Parameters != null)); // Debug.Assert((propertyDeclaration.InterfaceImplementations != null)); // Debug.Assert((propertyDeclaration.TypeReference != null)); // Debug.Assert((propertyDeclaration.GetRegion != null)); // Debug.Assert((propertyDeclaration.SetRegion != null)); // Debug.Assert((propertyDeclaration.Initializer != null)); // for (int i = 0; i < propertyDeclaration.Attributes.Count; i++) { // AttributeSection o = propertyDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // propertyDeclaration.Attributes.RemoveAt(i--); // else // propertyDeclaration.Attributes[i] = o; // } // for (int i = 0; i < propertyDeclaration.Parameters.Count; i++) { // ParameterDeclarationExpression o = propertyDeclaration.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // propertyDeclaration.Parameters.RemoveAt(i--); // else // propertyDeclaration.Parameters[i] = o; // } // for (int i = 0; i < propertyDeclaration.InterfaceImplementations.Count; i++) { // InterfaceImplementation o = propertyDeclaration.InterfaceImplementations[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (InterfaceImplementation)nodeStack.Pop(); // if (o == null) // propertyDeclaration.InterfaceImplementations.RemoveAt(i--); // else // propertyDeclaration.InterfaceImplementations[i] = o; // } // nodeStack.Push(propertyDeclaration.TypeReference); // propertyDeclaration.TypeReference.AcceptVisitor(this, data); // propertyDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(propertyDeclaration.GetRegion); // propertyDeclaration.GetRegion.AcceptVisitor(this, data); // propertyDeclaration.GetRegion = ((PropertyGetRegion)(nodeStack.Pop())); // nodeStack.Push(propertyDeclaration.SetRegion); // propertyDeclaration.SetRegion.AcceptVisitor(this, data); // propertyDeclaration.SetRegion = ((PropertySetRegion)(nodeStack.Pop())); // nodeStack.Push(propertyDeclaration.Initializer); // propertyDeclaration.Initializer.AcceptVisitor(this, data); // propertyDeclaration.Initializer = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) { // Debug.Assert((propertyGetRegion != null)); // Debug.Assert((propertyGetRegion.Attributes != null)); // Debug.Assert((propertyGetRegion.Block != null)); // for (int i = 0; i < propertyGetRegion.Attributes.Count; i++) { // AttributeSection o = propertyGetRegion.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // propertyGetRegion.Attributes.RemoveAt(i--); // else // propertyGetRegion.Attributes[i] = o; // } // nodeStack.Push(propertyGetRegion.Block); // propertyGetRegion.Block.AcceptVisitor(this, data); // propertyGetRegion.Block = ((BlockStatement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitPropertySetRegion(PropertySetRegion propertySetRegion, object data) { // Debug.Assert((propertySetRegion != null)); // Debug.Assert((propertySetRegion.Attributes != null)); // Debug.Assert((propertySetRegion.Block != null)); // Debug.Assert((propertySetRegion.Parameters != null)); // for (int i = 0; i < propertySetRegion.Attributes.Count; i++) { // AttributeSection o = propertySetRegion.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // propertySetRegion.Attributes.RemoveAt(i--); // else // propertySetRegion.Attributes[i] = o; // } // nodeStack.Push(propertySetRegion.Block); // propertySetRegion.Block.AcceptVisitor(this, data); // propertySetRegion.Block = ((BlockStatement)(nodeStack.Pop())); // for (int i = 0; i < propertySetRegion.Parameters.Count; i++) { // ParameterDeclarationExpression o = propertySetRegion.Parameters[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ParameterDeclarationExpression)nodeStack.Pop(); // if (o == null) // propertySetRegion.Parameters.RemoveAt(i--); // else // propertySetRegion.Parameters[i] = o; // } // return null; // } // // public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) { // Debug.Assert((queryExpression != null)); // Debug.Assert((queryExpression.Clauses != null)); // for (int i = 0; i < queryExpression.Clauses.Count; i++) { // QueryExpressionClause o = queryExpression.Clauses[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (QueryExpressionClause)nodeStack.Pop(); // if (o == null) // queryExpression.Clauses.RemoveAt(i--); // else // queryExpression.Clauses[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) { // Debug.Assert((queryExpressionAggregateClause != null)); // Debug.Assert((queryExpressionAggregateClause.Source != null)); // Debug.Assert((queryExpressionAggregateClause.MiddleClauses != null)); // Debug.Assert((queryExpressionAggregateClause.IntoVariables != null)); // nodeStack.Push(queryExpressionAggregateClause.Source); // queryExpressionAggregateClause.Source.AcceptVisitor(this, data); // queryExpressionAggregateClause.Source = ((CollectionRangeVariable)(nodeStack.Pop())); // for (int i = 0; i < queryExpressionAggregateClause.MiddleClauses.Count; i++) { // QueryExpressionClause o = queryExpressionAggregateClause.MiddleClauses[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (QueryExpressionClause)nodeStack.Pop(); // if (o == null) // queryExpressionAggregateClause.MiddleClauses.RemoveAt(i--); // else // queryExpressionAggregateClause.MiddleClauses[i] = o; // } // for (int i = 0; i < queryExpressionAggregateClause.IntoVariables.Count; i++) { // ExpressionRangeVariable o = queryExpressionAggregateClause.IntoVariables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ExpressionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionAggregateClause.IntoVariables.RemoveAt(i--); // else // queryExpressionAggregateClause.IntoVariables[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionDistinctClause(QueryExpressionDistinctClause queryExpressionDistinctClause, object data) { // Debug.Assert((queryExpressionDistinctClause != null)); // return null; // } // // public virtual object VisitQueryExpressionFromClause(QueryExpressionFromClause queryExpressionFromClause, object data) { // Debug.Assert((queryExpressionFromClause != null)); // Debug.Assert((queryExpressionFromClause.Sources != null)); // for (int i = 0; i < queryExpressionFromClause.Sources.Count; i++) { // CollectionRangeVariable o = queryExpressionFromClause.Sources[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (CollectionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionFromClause.Sources.RemoveAt(i--); // else // queryExpressionFromClause.Sources[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionGroupClause(QueryExpressionGroupClause queryExpressionGroupClause, object data) { // Debug.Assert((queryExpressionGroupClause != null)); // Debug.Assert((queryExpressionGroupClause.Projection != null)); // Debug.Assert((queryExpressionGroupClause.GroupBy != null)); // nodeStack.Push(queryExpressionGroupClause.Projection); // queryExpressionGroupClause.Projection.AcceptVisitor(this, data); // queryExpressionGroupClause.Projection = ((Expression)(nodeStack.Pop())); // nodeStack.Push(queryExpressionGroupClause.GroupBy); // queryExpressionGroupClause.GroupBy.AcceptVisitor(this, data); // queryExpressionGroupClause.GroupBy = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitQueryExpressionGroupJoinVBClause(QueryExpressionGroupJoinVBClause queryExpressionGroupJoinVBClause, object data) { // Debug.Assert((queryExpressionGroupJoinVBClause != null)); // Debug.Assert((queryExpressionGroupJoinVBClause.JoinClause != null)); // Debug.Assert((queryExpressionGroupJoinVBClause.IntoVariables != null)); // nodeStack.Push(queryExpressionGroupJoinVBClause.JoinClause); // queryExpressionGroupJoinVBClause.JoinClause.AcceptVisitor(this, data); // queryExpressionGroupJoinVBClause.JoinClause = ((QueryExpressionJoinVBClause)(nodeStack.Pop())); // for (int i = 0; i < queryExpressionGroupJoinVBClause.IntoVariables.Count; i++) { // ExpressionRangeVariable o = queryExpressionGroupJoinVBClause.IntoVariables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ExpressionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionGroupJoinVBClause.IntoVariables.RemoveAt(i--); // else // queryExpressionGroupJoinVBClause.IntoVariables[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionGroupVBClause(QueryExpressionGroupVBClause queryExpressionGroupVBClause, object data) { // Debug.Assert((queryExpressionGroupVBClause != null)); // Debug.Assert((queryExpressionGroupVBClause.GroupVariables != null)); // Debug.Assert((queryExpressionGroupVBClause.ByVariables != null)); // Debug.Assert((queryExpressionGroupVBClause.IntoVariables != null)); // for (int i = 0; i < queryExpressionGroupVBClause.GroupVariables.Count; i++) { // ExpressionRangeVariable o = queryExpressionGroupVBClause.GroupVariables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ExpressionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionGroupVBClause.GroupVariables.RemoveAt(i--); // else // queryExpressionGroupVBClause.GroupVariables[i] = o; // } // for (int i = 0; i < queryExpressionGroupVBClause.ByVariables.Count; i++) { // ExpressionRangeVariable o = queryExpressionGroupVBClause.ByVariables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ExpressionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionGroupVBClause.ByVariables.RemoveAt(i--); // else // queryExpressionGroupVBClause.ByVariables[i] = o; // } // for (int i = 0; i < queryExpressionGroupVBClause.IntoVariables.Count; i++) { // ExpressionRangeVariable o = queryExpressionGroupVBClause.IntoVariables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ExpressionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionGroupVBClause.IntoVariables.RemoveAt(i--); // else // queryExpressionGroupVBClause.IntoVariables[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) { // Debug.Assert((queryExpressionJoinClause != null)); // Debug.Assert((queryExpressionJoinClause.OnExpression != null)); // Debug.Assert((queryExpressionJoinClause.EqualsExpression != null)); // Debug.Assert((queryExpressionJoinClause.Source != null)); // nodeStack.Push(queryExpressionJoinClause.OnExpression); // queryExpressionJoinClause.OnExpression.AcceptVisitor(this, data); // queryExpressionJoinClause.OnExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(queryExpressionJoinClause.EqualsExpression); // queryExpressionJoinClause.EqualsExpression.AcceptVisitor(this, data); // queryExpressionJoinClause.EqualsExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(queryExpressionJoinClause.Source); // queryExpressionJoinClause.Source.AcceptVisitor(this, data); // queryExpressionJoinClause.Source = ((CollectionRangeVariable)(nodeStack.Pop())); // return null; // } // // public virtual object VisitQueryExpressionJoinConditionVB(QueryExpressionJoinConditionVB queryExpressionJoinConditionVB, object data) { // Debug.Assert((queryExpressionJoinConditionVB != null)); // Debug.Assert((queryExpressionJoinConditionVB.LeftSide != null)); // Debug.Assert((queryExpressionJoinConditionVB.RightSide != null)); // nodeStack.Push(queryExpressionJoinConditionVB.LeftSide); // queryExpressionJoinConditionVB.LeftSide.AcceptVisitor(this, data); // queryExpressionJoinConditionVB.LeftSide = ((Expression)(nodeStack.Pop())); // nodeStack.Push(queryExpressionJoinConditionVB.RightSide); // queryExpressionJoinConditionVB.RightSide.AcceptVisitor(this, data); // queryExpressionJoinConditionVB.RightSide = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitQueryExpressionJoinVBClause(QueryExpressionJoinVBClause queryExpressionJoinVBClause, object data) { // Debug.Assert((queryExpressionJoinVBClause != null)); // Debug.Assert((queryExpressionJoinVBClause.JoinVariable != null)); // Debug.Assert((queryExpressionJoinVBClause.SubJoin != null)); // Debug.Assert((queryExpressionJoinVBClause.Conditions != null)); // nodeStack.Push(queryExpressionJoinVBClause.JoinVariable); // queryExpressionJoinVBClause.JoinVariable.AcceptVisitor(this, data); // queryExpressionJoinVBClause.JoinVariable = ((CollectionRangeVariable)(nodeStack.Pop())); // nodeStack.Push(queryExpressionJoinVBClause.SubJoin); // queryExpressionJoinVBClause.SubJoin.AcceptVisitor(this, data); // queryExpressionJoinVBClause.SubJoin = ((QueryExpressionJoinVBClause)(nodeStack.Pop())); // for (int i = 0; i < queryExpressionJoinVBClause.Conditions.Count; i++) { // QueryExpressionJoinConditionVB o = queryExpressionJoinVBClause.Conditions[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (QueryExpressionJoinConditionVB)nodeStack.Pop(); // if (o == null) // queryExpressionJoinVBClause.Conditions.RemoveAt(i--); // else // queryExpressionJoinVBClause.Conditions[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionLetClause(QueryExpressionLetClause queryExpressionLetVBClause, object data) { // Debug.Assert((queryExpressionLetVBClause != null)); // Debug.Assert((queryExpressionLetVBClause.Variables != null)); // for (int i = 0; i < queryExpressionLetVBClause.Variables.Count; i++) { // ExpressionRangeVariable o = queryExpressionLetVBClause.Variables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ExpressionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionLetVBClause.Variables.RemoveAt(i--); // else // queryExpressionLetVBClause.Variables[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionOrderClause(QueryExpressionOrderClause queryExpressionOrderClause, object data) { // Debug.Assert((queryExpressionOrderClause != null)); // Debug.Assert((queryExpressionOrderClause.Orderings != null)); // for (int i = 0; i < queryExpressionOrderClause.Orderings.Count; i++) { // QueryExpressionOrdering o = queryExpressionOrderClause.Orderings[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (QueryExpressionOrdering)nodeStack.Pop(); // if (o == null) // queryExpressionOrderClause.Orderings.RemoveAt(i--); // else // queryExpressionOrderClause.Orderings[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionOrdering(QueryExpressionOrdering queryExpressionOrdering, object data) { // Debug.Assert((queryExpressionOrdering != null)); // Debug.Assert((queryExpressionOrdering.Criteria != null)); // nodeStack.Push(queryExpressionOrdering.Criteria); // queryExpressionOrdering.Criteria.AcceptVisitor(this, data); // queryExpressionOrdering.Criteria = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitQueryExpressionPartitionVBClause(QueryExpressionPartitionVBClause queryExpressionPartitionVBClause, object data) { // Debug.Assert((queryExpressionPartitionVBClause != null)); // Debug.Assert((queryExpressionPartitionVBClause.Expression != null)); // nodeStack.Push(queryExpressionPartitionVBClause.Expression); // queryExpressionPartitionVBClause.Expression.AcceptVisitor(this, data); // queryExpressionPartitionVBClause.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) { // Debug.Assert((queryExpressionSelectClause != null)); // Debug.Assert((queryExpressionSelectClause.Projection != null)); // nodeStack.Push(queryExpressionSelectClause.Projection); // queryExpressionSelectClause.Projection.AcceptVisitor(this, data); // queryExpressionSelectClause.Projection = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitQueryExpressionSelectVBClause(QueryExpressionSelectVBClause queryExpressionSelectVBClause, object data) { // Debug.Assert((queryExpressionSelectVBClause != null)); // Debug.Assert((queryExpressionSelectVBClause.Variables != null)); // for (int i = 0; i < queryExpressionSelectVBClause.Variables.Count; i++) { // ExpressionRangeVariable o = queryExpressionSelectVBClause.Variables[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ExpressionRangeVariable)nodeStack.Pop(); // if (o == null) // queryExpressionSelectVBClause.Variables.RemoveAt(i--); // else // queryExpressionSelectVBClause.Variables[i] = o; // } // return null; // } // // public virtual object VisitQueryExpressionWhereClause(QueryExpressionWhereClause queryExpressionWhereClause, object data) { // Debug.Assert((queryExpressionWhereClause != null)); // Debug.Assert((queryExpressionWhereClause.Condition != null)); // nodeStack.Push(queryExpressionWhereClause.Condition); // queryExpressionWhereClause.Condition.AcceptVisitor(this, data); // queryExpressionWhereClause.Condition = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitRaiseEventStatement(RaiseEventStatement raiseEventStatement, object data) { // Debug.Assert((raiseEventStatement != null)); // Debug.Assert((raiseEventStatement.Arguments != null)); // for (int i = 0; i < raiseEventStatement.Arguments.Count; i++) { // Expression o = raiseEventStatement.Arguments[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (Expression)nodeStack.Pop(); // if (o == null) // raiseEventStatement.Arguments.RemoveAt(i--); // else // raiseEventStatement.Arguments[i] = o; // } // return null; // } // // public virtual object VisitReDimStatement(ReDimStatement reDimStatement, object data) { // Debug.Assert((reDimStatement != null)); // Debug.Assert((reDimStatement.ReDimClauses != null)); // for (int i = 0; i < reDimStatement.ReDimClauses.Count; i++) { // InvocationExpression o = reDimStatement.ReDimClauses[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (InvocationExpression)nodeStack.Pop(); // if (o == null) // reDimStatement.ReDimClauses.RemoveAt(i--); // else // reDimStatement.ReDimClauses[i] = o; // } // return null; // } // // public virtual object VisitRemoveHandlerStatement(RemoveHandlerStatement removeHandlerStatement, object data) { // Debug.Assert((removeHandlerStatement != null)); // Debug.Assert((removeHandlerStatement.EventExpression != null)); // Debug.Assert((removeHandlerStatement.HandlerExpression != null)); // nodeStack.Push(removeHandlerStatement.EventExpression); // removeHandlerStatement.EventExpression.AcceptVisitor(this, data); // removeHandlerStatement.EventExpression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(removeHandlerStatement.HandlerExpression); // removeHandlerStatement.HandlerExpression.AcceptVisitor(this, data); // removeHandlerStatement.HandlerExpression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitResumeStatement(ResumeStatement resumeStatement, object data) { // Debug.Assert((resumeStatement != null)); // return null; // } // // public virtual object VisitReturnStatement(ReturnStatement returnStatement, object data) { // Debug.Assert((returnStatement != null)); // Debug.Assert((returnStatement.Expression != null)); // nodeStack.Push(returnStatement.Expression); // returnStatement.Expression.AcceptVisitor(this, data); // returnStatement.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitStopStatement(StopStatement stopStatement, object data) { // Debug.Assert((stopStatement != null)); // return null; // } // // public virtual object VisitSwitchSection(SwitchSection switchSection, object data) { // Debug.Assert((switchSection != null)); // Debug.Assert((switchSection.SwitchLabels != null)); // for (int i = 0; i < switchSection.SwitchLabels.Count; i++) { // CaseLabel o = switchSection.SwitchLabels[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (CaseLabel)nodeStack.Pop(); // if (o == null) // switchSection.SwitchLabels.RemoveAt(i--); // else // switchSection.SwitchLabels[i] = o; // } // for (int i = 0; i < switchSection.Children.Count; i++) { // INode o = switchSection.Children[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = nodeStack.Pop(); // if (o == null) // switchSection.Children.RemoveAt(i--); // else // switchSection.Children[i] = o; // } // return null; // } // // public virtual object VisitSwitchStatement(SwitchStatement switchStatement, object data) { // Debug.Assert((switchStatement != null)); // Debug.Assert((switchStatement.SwitchExpression != null)); // Debug.Assert((switchStatement.SwitchSections != null)); // nodeStack.Push(switchStatement.SwitchExpression); // switchStatement.SwitchExpression.AcceptVisitor(this, data); // switchStatement.SwitchExpression = ((Expression)(nodeStack.Pop())); // for (int i = 0; i < switchStatement.SwitchSections.Count; i++) { // SwitchSection o = switchStatement.SwitchSections[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (SwitchSection)nodeStack.Pop(); // if (o == null) // switchStatement.SwitchSections.RemoveAt(i--); // else // switchStatement.SwitchSections[i] = o; // } // return null; // } // // public virtual object VisitTemplateDefinition(TemplateDefinition templateDefinition, object data) { // Debug.Assert((templateDefinition != null)); // Debug.Assert((templateDefinition.Attributes != null)); // Debug.Assert((templateDefinition.Bases != null)); // for (int i = 0; i < templateDefinition.Attributes.Count; i++) { // AttributeSection o = templateDefinition.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // templateDefinition.Attributes.RemoveAt(i--); // else // templateDefinition.Attributes[i] = o; // } // for (int i = 0; i < templateDefinition.Bases.Count; i++) { // TypeReference o = templateDefinition.Bases[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TypeReference)nodeStack.Pop(); // if (o == null) // templateDefinition.Bases.RemoveAt(i--); // else // templateDefinition.Bases[i] = o; // } // return null; // } // // public virtual object VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, object data) { // Debug.Assert((thisReferenceExpression != null)); // return null; // } // // public virtual object VisitThrowStatement(ThrowStatement throwStatement, object data) { // Debug.Assert((throwStatement != null)); // Debug.Assert((throwStatement.Expression != null)); // nodeStack.Push(throwStatement.Expression); // throwStatement.Expression.AcceptVisitor(this, data); // throwStatement.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitTryCatchStatement(TryCatchStatement tryCatchStatement, object data) { // Debug.Assert((tryCatchStatement != null)); // Debug.Assert((tryCatchStatement.StatementBlock != null)); // Debug.Assert((tryCatchStatement.CatchClauses != null)); // Debug.Assert((tryCatchStatement.FinallyBlock != null)); // nodeStack.Push(tryCatchStatement.StatementBlock); // tryCatchStatement.StatementBlock.AcceptVisitor(this, data); // tryCatchStatement.StatementBlock = ((Statement)(nodeStack.Pop())); // for (int i = 0; i < tryCatchStatement.CatchClauses.Count; i++) { // CatchClause o = tryCatchStatement.CatchClauses[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (CatchClause)nodeStack.Pop(); // if (o == null) // tryCatchStatement.CatchClauses.RemoveAt(i--); // else // tryCatchStatement.CatchClauses[i] = o; // } // nodeStack.Push(tryCatchStatement.FinallyBlock); // tryCatchStatement.FinallyBlock.AcceptVisitor(this, data); // tryCatchStatement.FinallyBlock = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitTypeDeclaration(TypeDeclaration typeDeclaration, object data) { // Debug.Assert((typeDeclaration != null)); // Debug.Assert((typeDeclaration.Attributes != null)); // Debug.Assert((typeDeclaration.BaseTypes != null)); // Debug.Assert((typeDeclaration.Templates != null)); // for (int i = 0; i < typeDeclaration.Attributes.Count; i++) { // AttributeSection o = typeDeclaration.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (AttributeSection)nodeStack.Pop(); // if (o == null) // typeDeclaration.Attributes.RemoveAt(i--); // else // typeDeclaration.Attributes[i] = o; // } // for (int i = 0; i < typeDeclaration.BaseTypes.Count; i++) { // TypeReference o = typeDeclaration.BaseTypes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TypeReference)nodeStack.Pop(); // if (o == null) // typeDeclaration.BaseTypes.RemoveAt(i--); // else // typeDeclaration.BaseTypes[i] = o; // } // for (int i = 0; i < typeDeclaration.Templates.Count; i++) { // TemplateDefinition o = typeDeclaration.Templates[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TemplateDefinition)nodeStack.Pop(); // if (o == null) // typeDeclaration.Templates.RemoveAt(i--); // else // typeDeclaration.Templates[i] = o; // } // for (int i = 0; i < typeDeclaration.Children.Count; i++) { // INode o = typeDeclaration.Children[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = nodeStack.Pop(); // if (o == null) // typeDeclaration.Children.RemoveAt(i--); // else // typeDeclaration.Children[i] = o; // } // return null; // } // // public virtual object VisitTypeOfExpression(TypeOfExpression typeOfExpression, object data) { // Debug.Assert((typeOfExpression != null)); // Debug.Assert((typeOfExpression.TypeReference != null)); // nodeStack.Push(typeOfExpression.TypeReference); // typeOfExpression.TypeReference.AcceptVisitor(this, data); // typeOfExpression.TypeReference = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitTypeOfIsExpression(TypeOfIsExpression typeOfIsExpression, object data) { // Debug.Assert((typeOfIsExpression != null)); // Debug.Assert((typeOfIsExpression.Expression != null)); // Debug.Assert((typeOfIsExpression.TypeReference != null)); // nodeStack.Push(typeOfIsExpression.Expression); // typeOfIsExpression.Expression.AcceptVisitor(this, data); // typeOfIsExpression.Expression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(typeOfIsExpression.TypeReference); // typeOfIsExpression.TypeReference.AcceptVisitor(this, data); // typeOfIsExpression.TypeReference = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitTypeReference(TypeReference typeReference, object data) { // Debug.Assert((typeReference != null)); // Debug.Assert((typeReference.GenericTypes != null)); // for (int i = 0; i < typeReference.GenericTypes.Count; i++) { // TypeReference o = typeReference.GenericTypes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (TypeReference)nodeStack.Pop(); // if (o == null) // typeReference.GenericTypes.RemoveAt(i--); // else // typeReference.GenericTypes[i] = o; // } // return null; // } // // public virtual object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data) { // Debug.Assert((typeReferenceExpression != null)); // Debug.Assert((typeReferenceExpression.TypeReference != null)); // nodeStack.Push(typeReferenceExpression.TypeReference); // typeReferenceExpression.TypeReference.AcceptVisitor(this, data); // typeReferenceExpression.TypeReference = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, object data) { // Debug.Assert((unaryOperatorExpression != null)); // Debug.Assert((unaryOperatorExpression.Expression != null)); // nodeStack.Push(unaryOperatorExpression.Expression); // unaryOperatorExpression.Expression.AcceptVisitor(this, data); // unaryOperatorExpression.Expression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitUsing(ImportsClause @using, object data) { // Debug.Assert((@using != null)); // Debug.Assert((@using.Alias != null)); // nodeStack.Push(@using.Alias); // @using.Alias.AcceptVisitor(this, data); // @using.Alias = ((TypeReference)(nodeStack.Pop())); // return null; // } // // public virtual object VisitUsingDeclaration(ImportsStatement usingDeclaration, object data) { // Debug.Assert((usingDeclaration != null)); // Debug.Assert((usingDeclaration.ImportsClauses != null)); // for (int i = 0; i < usingDeclaration.ImportsClauses.Count; i++) { // ImportsClause o = usingDeclaration.ImportsClauses[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (ImportsClause)nodeStack.Pop(); // if (o == null) // usingDeclaration.ImportsClauses.RemoveAt(i--); // else // usingDeclaration.ImportsClauses[i] = o; // } // return null; // } // // public virtual object VisitUsingStatement(UsingStatement usingStatement, object data) { // Debug.Assert((usingStatement != null)); // Debug.Assert((usingStatement.ResourceAcquisition != null)); // Debug.Assert((usingStatement.EmbeddedStatement != null)); // nodeStack.Push(usingStatement.ResourceAcquisition); // usingStatement.ResourceAcquisition.AcceptVisitor(this, data); // usingStatement.ResourceAcquisition = ((Statement)(nodeStack.Pop())); // nodeStack.Push(usingStatement.EmbeddedStatement); // usingStatement.EmbeddedStatement.AcceptVisitor(this, data); // usingStatement.EmbeddedStatement = ((Statement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitVariableDeclaration(VariableDeclaration variableDeclaration, object data) { // Debug.Assert((variableDeclaration != null)); // Debug.Assert((variableDeclaration.Initializer != null)); // Debug.Assert((variableDeclaration.TypeReference != null)); // Debug.Assert((variableDeclaration.FixedArrayInitialization != null)); // nodeStack.Push(variableDeclaration.Initializer); // variableDeclaration.Initializer.AcceptVisitor(this, data); // variableDeclaration.Initializer = ((Expression)(nodeStack.Pop())); // nodeStack.Push(variableDeclaration.TypeReference); // variableDeclaration.TypeReference.AcceptVisitor(this, data); // variableDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop())); // nodeStack.Push(variableDeclaration.FixedArrayInitialization); // variableDeclaration.FixedArrayInitialization.AcceptVisitor(this, data); // variableDeclaration.FixedArrayInitialization = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitWithStatement(WithStatement withStatement, object data) { // Debug.Assert((withStatement != null)); // Debug.Assert((withStatement.Expression != null)); // Debug.Assert((withStatement.Body != null)); // nodeStack.Push(withStatement.Expression); // withStatement.Expression.AcceptVisitor(this, data); // withStatement.Expression = ((Expression)(nodeStack.Pop())); // nodeStack.Push(withStatement.Body); // withStatement.Body.AcceptVisitor(this, data); // withStatement.Body = ((BlockStatement)(nodeStack.Pop())); // return null; // } // // public virtual object VisitXmlAttributeExpression(XmlAttributeExpression xmlAttributeExpression, object data) { // Debug.Assert((xmlAttributeExpression != null)); // Debug.Assert((xmlAttributeExpression.ExpressionValue != null)); // nodeStack.Push(xmlAttributeExpression.ExpressionValue); // xmlAttributeExpression.ExpressionValue.AcceptVisitor(this, data); // xmlAttributeExpression.ExpressionValue = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitXmlContentExpression(XmlContentExpression xmlContentExpression, object data) { // Debug.Assert((xmlContentExpression != null)); // return null; // } // // public virtual object VisitXmlDocumentExpression(XmlDocumentExpression xmlDocumentExpression, object data) { // Debug.Assert((xmlDocumentExpression != null)); // Debug.Assert((xmlDocumentExpression.Expressions != null)); // for (int i = 0; i < xmlDocumentExpression.Expressions.Count; i++) { // XmlExpression o = xmlDocumentExpression.Expressions[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (XmlExpression)nodeStack.Pop(); // if (o == null) // xmlDocumentExpression.Expressions.RemoveAt(i--); // else // xmlDocumentExpression.Expressions[i] = o; // } // return null; // } // // public virtual object VisitXmlElementExpression(XmlElementExpression xmlElementExpression, object data) { // Debug.Assert((xmlElementExpression != null)); // Debug.Assert((xmlElementExpression.Content != null)); // Debug.Assert((xmlElementExpression.NameExpression != null)); // Debug.Assert((xmlElementExpression.Attributes != null)); // nodeStack.Push(xmlElementExpression.Content); // xmlElementExpression.Content.AcceptVisitor(this, data); // xmlElementExpression.Content = ((Expression)(nodeStack.Pop())); // nodeStack.Push(xmlElementExpression.NameExpression); // xmlElementExpression.NameExpression.AcceptVisitor(this, data); // xmlElementExpression.NameExpression = ((Expression)(nodeStack.Pop())); // for (int i = 0; i < xmlElementExpression.Attributes.Count; i++) { // XmlExpression o = xmlElementExpression.Attributes[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = (XmlExpression)nodeStack.Pop(); // if (o == null) // xmlElementExpression.Attributes.RemoveAt(i--); // else // xmlElementExpression.Attributes[i] = o; // } // for (int i = 0; i < xmlElementExpression.Children.Count; i++) { // INode o = xmlElementExpression.Children[i]; // Debug.Assert(o != null); // nodeStack.Push(o); // o.AcceptVisitor(this, data); // o = nodeStack.Pop(); // if (o == null) // xmlElementExpression.Children.RemoveAt(i--); // else // xmlElementExpression.Children[i] = o; // } // return null; // } // // public virtual object VisitXmlEmbeddedExpression(XmlEmbeddedExpression xmlEmbeddedExpression, object data) { // Debug.Assert((xmlEmbeddedExpression != null)); // Debug.Assert((xmlEmbeddedExpression.InlineVBExpression != null)); // nodeStack.Push(xmlEmbeddedExpression.InlineVBExpression); // xmlEmbeddedExpression.InlineVBExpression.AcceptVisitor(this, data); // xmlEmbeddedExpression.InlineVBExpression = ((Expression)(nodeStack.Pop())); // return null; // } // // public virtual object VisitXmlMemberAccessExpression(XmlMemberAccessExpression xmlMemberAccessExpression, object data) { // Debug.Assert((xmlMemberAccessExpression != null)); // Debug.Assert((xmlMemberAccessExpression.TargetObject != null)); // nodeStack.Push(xmlMemberAccessExpression.TargetObject); // xmlMemberAccessExpression.TargetObject.AcceptVisitor(this, data); // xmlMemberAccessExpression.TargetObject = ((Expression)(nodeStack.Pop())); // return null; // } // } }