diff --git a/ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs
index b7f6328f3e..c1cca008eb 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/InsertParenthesesVisitorTests.cs
@@ -345,5 +345,38 @@ namespace ICSharpCode.NRefactory.CSharp
Assert.AreEqual("a && (b || c)", InsertRequired(expr));
Assert.AreEqual("a && (b || c)", InsertReadable(expr));
}
+
+ [Test]
+ public void ArrayCreationInIndexer()
+ {
+ Expression expr = new IndexerExpression {
+ Target = new ArrayCreateExpression {
+ Type = new PrimitiveType("int"),
+ Arguments = { new PrimitiveExpression(1) }
+ },
+ Arguments = { new PrimitiveExpression(0) }
+ };
+
+ Assert.AreEqual("(new int[1]) [0]", InsertRequired(expr));
+ Assert.AreEqual("(new int[1]) [0]", InsertReadable(expr));
+ }
+
+ [Test]
+ public void ArrayCreationWithInitializerInIndexer()
+ {
+ Expression expr = new IndexerExpression {
+ Target = new ArrayCreateExpression {
+ Type = new PrimitiveType("int"),
+ Arguments = { new PrimitiveExpression(1) },
+ Initializer = new ArrayInitializerExpression {
+ Elements = { new PrimitiveExpression(42) }
+ }
+ },
+ Arguments = { new PrimitiveExpression(0) }
+ };
+
+ Assert.AreEqual("new int[1] { 42 } [0]", InsertRequired(expr));
+ Assert.AreEqual("(new int[1] { 42 }) [0]", InsertReadable(expr));
+ }
}
}
diff --git a/ICSharpCode.NRefactory.VB/AstBuilder/ExpressionBuilder.cs b/ICSharpCode.NRefactory.VB/AstBuilder/ExpressionBuilder.cs
deleted file mode 100644
index 7ac2ef32ce..0000000000
--- a/ICSharpCode.NRefactory.VB/AstBuilder/ExpressionBuilder.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-// 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;
-using ICSharpCode.NRefactory.VB.Ast;
-
-namespace ICSharpCode.NRefactory.VB.AstBuilder
-{
- ///
- /// Extension methods for NRefactory.Dom.Expression.
- ///
- public static class ExpressionBuilder
- {/*
- public static SimpleNameExpression Identifier(string identifier)
- {
- return new SimpleNameExpression(identifier);
- }
-
- public static MemberReferenceExpression Member(this Expression targetObject, string memberName)
- {
- if (targetObject == null)
- throw new ArgumentNullException("targetObject");
- return new MemberReferenceExpression(targetObject, memberName);
- }
-
- public static InvocationExpression Call(this Expression callTarget, string methodName, params Expression[] arguments)
- {
- if (callTarget == null)
- throw new ArgumentNullException("callTarget");
- return Call(Member(callTarget, methodName), arguments);
- }
-
- public static InvocationExpression Call(this Expression callTarget, params Expression[] arguments)
- {
- if (callTarget == null)
- throw new ArgumentNullException("callTarget");
- if (arguments == null)
- throw new ArgumentNullException("arguments");
- return new InvocationExpression(callTarget, new List(arguments));
- }
-
- public static ObjectCreateExpression New(this TypeReference createType, params Expression[] arguments)
- {
- if (createType == null)
- throw new ArgumentNullException("createType");
- if (arguments == null)
- throw new ArgumentNullException("arguments");
- return new ObjectCreateExpression(createType, new List(arguments));
- }
-
- public static Expression CreateDefaultValueForType(TypeReference type)
- {
- if (type != null && !type.IsArrayType) {
- switch (type.Type) {
- case "System.SByte":
- case "System.Byte":
- case "System.Int16":
- case "System.UInt16":
- case "System.Int32":
- case "System.UInt32":
- case "System.Int64":
- case "System.UInt64":
- case "System.Single":
- case "System.Double":
- return new PrimitiveExpression(0, "0");
- case "System.Char":
- return new PrimitiveExpression('\0', "'\\0'");
- case "System.Object":
- case "System.String":
- return new PrimitiveExpression(null, "null");
- case "System.Boolean":
- return new PrimitiveExpression(false, "false");
- default:
- return new DefaultValueExpression(type);
- }
- } else {
- return new PrimitiveExpression(null, "null");
- }
- }
-
- ///
- /// Just calls the BinaryOperatorExpression constructor,
- /// but being an extension method; this allows for a nicer
- /// infix syntax in some cases.
- ///
- public static BinaryOperatorExpression Operator(this Expression left, BinaryOperatorType op, Expression right)
- {
- return new BinaryOperatorExpression(left, op, right);
- }*/
- }
-}
diff --git a/ICSharpCode.NRefactory.VB/AstBuilder/StatementBuilder.cs b/ICSharpCode.NRefactory.VB/AstBuilder/StatementBuilder.cs
deleted file mode 100644
index eb227171f9..0000000000
--- a/ICSharpCode.NRefactory.VB/AstBuilder/StatementBuilder.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-// 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;
-using ICSharpCode.NRefactory.VB.Ast;
-
-namespace ICSharpCode.NRefactory.VB.AstBuilder
-{
- ///
- /// Extension methods for NRefactory.Dom.Expression.
- ///
-// public static class StatementBuilder
-// {
-// public static void AddStatement(this BlockStatement block, Statement statement)
-// {
-// if (block == null)
-// throw new ArgumentNullException("block");
-// if (statement == null)
-// throw new ArgumentNullException("statement");
-// block.AddChild(statement);
-// statement.Parent = block;
-// }
-//
-// public static void AddStatement(this BlockStatement block, Expression expressionStatement)
-// {
-// if (expressionStatement == null)
-// throw new ArgumentNullException("expressionStatement");
-// AddStatement(block, new ExpressionStatement(expressionStatement));
-// }
-//
-// public static void Throw(this BlockStatement block, Expression expression)
-// {
-// if (expression == null)
-// throw new ArgumentNullException("expression");
-// AddStatement(block, new ThrowStatement(expression));
-// }
-//
-// public static void Return(this BlockStatement block, Expression expression)
-// {
-// if (expression == null)
-// throw new ArgumentNullException("expression");
-// AddStatement(block, new ReturnStatement(expression));
-// }
-//
-// public static void Assign(this BlockStatement block, Expression left, Expression right)
-// {
-// if (left == null)
-// throw new ArgumentNullException("left");
-// if (right == null)
-// throw new ArgumentNullException("right");
-// AddStatement(block, new AssignmentExpression(left, AssignmentOperatorType.Assign, right));
-// }
-// }
-}
diff --git a/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj b/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj
index c100ed7176..c36731804f 100644
--- a/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj
+++ b/ICSharpCode.NRefactory.VB/ICSharpCode.NRefactory.VB.csproj
@@ -45,8 +45,6 @@
-
-
@@ -180,14 +178,10 @@
-
-
-
-
diff --git a/ICSharpCode.NRefactory.VB/OutputVisitor/OutputVisitor.cs b/ICSharpCode.NRefactory.VB/OutputVisitor/OutputVisitor.cs
index d359cb8973..d27615fd4b 100644
--- a/ICSharpCode.NRefactory.VB/OutputVisitor/OutputVisitor.cs
+++ b/ICSharpCode.NRefactory.VB/OutputVisitor/OutputVisitor.cs
@@ -115,7 +115,7 @@ namespace ICSharpCode.NRefactory.VB
StartNode(parameterDeclaration);
WriteAttributes(parameterDeclaration.Attributes);
WriteModifiers(parameterDeclaration.ModifierTokens);
- WriteIdentifier(parameterDeclaration.Name.Name);
+ parameterDeclaration.Name.AcceptVisitor(this, data);
if (!parameterDeclaration.Type.IsNull) {
WriteKeyword("As");
parameterDeclaration.Type.AcceptVisitor(this, data);
@@ -1053,7 +1053,7 @@ namespace ICSharpCode.NRefactory.VB
#endregion
#region IsKeyword Test
- static readonly HashSet unconditionalKeywords = new HashSet {
+ static readonly HashSet unconditionalKeywords = new HashSet(StringComparer.OrdinalIgnoreCase) {
"AddHandler", "AddressOf", "Alias", "And", "AndAlso", "As", "Boolean", "ByRef", "Byte",
"ByVal", "Call", "Case", "Catch", "CBool", "CByte", "CChar", "CInt", "Class", "CLng",
"CObj", "Const", "Continue", "CSByte", "CShort", "CSng", "CStr", "CType", "CUInt",
@@ -1705,6 +1705,11 @@ namespace ICSharpCode.NRefactory.VB
WriteCommaSeparatedListInParenthesis(objectCreationExpression.Arguments, false);
if (!objectCreationExpression.Initializer.IsNull) {
Space();
+ if (objectCreationExpression.Initializer.Elements.Any(x => x is FieldInitializerExpression))
+ WriteKeyword("With");
+ else
+ WriteKeyword("From");
+ Space();
objectCreationExpression.Initializer.AcceptVisitor(this, data);
}
@@ -1870,7 +1875,7 @@ namespace ICSharpCode.NRefactory.VB
{
StartNode(fieldInitializerExpression);
- if (fieldInitializerExpression.IsKey) {
+ if (fieldInitializerExpression.IsKey && fieldInitializerExpression.Parent is AnonymousObjectCreationExpression) {
WriteKeyword("Key");
Space();
}
diff --git a/ICSharpCode.NRefactory.VB/Visitors/AbstractAstTransformer.cs b/ICSharpCode.NRefactory.VB/Visitors/AbstractAstTransformer.cs
deleted file mode 100644
index 5441575067..0000000000
--- a/ICSharpCode.NRefactory.VB/Visitors/AbstractAstTransformer.cs
+++ /dev/null
@@ -1,2078 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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;
-// }
-// }
-}
diff --git a/ICSharpCode.NRefactory.VB/Visitors/AbstractAstVisitor.cs b/ICSharpCode.NRefactory.VB/Visitors/AbstractAstVisitor.cs
deleted file mode 100644
index 6f44974418..0000000000
--- a/ICSharpCode.NRefactory.VB/Visitors/AbstractAstVisitor.cs
+++ /dev/null
@@ -1,1156 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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;
-
-
-// public abstract class AbstractAstVisitor : IAstVisitor {
-//
-// public virtual object VisitAddHandlerStatement(AddHandlerStatement addHandlerStatement, object data) {
-// Debug.Assert((addHandlerStatement != null));
-// Debug.Assert((addHandlerStatement.EventExpression != null));
-// Debug.Assert((addHandlerStatement.HandlerExpression != null));
-// addHandlerStatement.EventExpression.AcceptVisitor(this, data);
-// return addHandlerStatement.HandlerExpression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitAddressOfExpression(AddressOfExpression addressOfExpression, object data) {
-// Debug.Assert((addressOfExpression != null));
-// Debug.Assert((addressOfExpression.Expression != null));
-// return addressOfExpression.Expression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// arrayCreateExpression.CreateType.AcceptVisitor(this, data);
-// foreach (Expression o in arrayCreateExpression.Arguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return arrayCreateExpression.ArrayInitializer.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitAssignmentExpression(AssignmentExpression assignmentExpression, object data) {
-// Debug.Assert((assignmentExpression != null));
-// Debug.Assert((assignmentExpression.Left != null));
-// Debug.Assert((assignmentExpression.Right != null));
-// assignmentExpression.Left.AcceptVisitor(this, data);
-// return assignmentExpression.Right.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (Expression o in attribute.PositionalArguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (NamedArgumentExpression o in attribute.NamedArguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitAttributeSection(AttributeSection attributeSection, object data) {
-// Debug.Assert((attributeSection != null));
-// Debug.Assert((attributeSection.Attributes != null));
-// foreach (ICSharpCode.NRefactory.VB.Ast.Attribute o in attributeSection.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// binaryOperatorExpression.Left.AcceptVisitor(this, data);
-// return binaryOperatorExpression.Right.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitBlockStatement(BlockStatement blockStatement, object data) {
-// Debug.Assert((blockStatement != null));
-// return blockStatement.AcceptChildren(this, data);
-// }
-//
-// public virtual object VisitCaseLabel(CaseLabel caseLabel, object data) {
-// Debug.Assert((caseLabel != null));
-// Debug.Assert((caseLabel.Label != null));
-// Debug.Assert((caseLabel.ToExpression != null));
-// caseLabel.Label.AcceptVisitor(this, data);
-// return caseLabel.ToExpression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitCastExpression(CastExpression castExpression, object data) {
-// Debug.Assert((castExpression != null));
-// Debug.Assert((castExpression.CastTo != null));
-// Debug.Assert((castExpression.Expression != null));
-// castExpression.CastTo.AcceptVisitor(this, data);
-// return castExpression.Expression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// catchClause.TypeReference.AcceptVisitor(this, data);
-// catchClause.StatementBlock.AcceptVisitor(this, data);
-// return catchClause.Condition.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (Expression o in collectionInitializerExpression.CreateExpressions) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitCollectionRangeVariable(CollectionRangeVariable collectionRangeVariable, object data) {
-// Debug.Assert((collectionRangeVariable != null));
-// Debug.Assert((collectionRangeVariable.Expression != null));
-// Debug.Assert((collectionRangeVariable.Type != null));
-// collectionRangeVariable.Expression.AcceptVisitor(this, data);
-// return collectionRangeVariable.Type.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitCompilationUnit(CompilationUnit compilationUnit, object data) {
-// Debug.Assert((compilationUnit != null));
-// return compilationUnit.AcceptChildren(this, data);
-// }
-//
-// 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));
-// conditionalExpression.Condition.AcceptVisitor(this, data);
-// conditionalExpression.TrueExpression.AcceptVisitor(this, data);
-// return conditionalExpression.FalseExpression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in constructorDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ParameterDeclarationExpression o in constructorDeclaration.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// constructorDeclaration.ConstructorInitializer.AcceptVisitor(this, data);
-// return constructorDeclaration.Body.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) {
-// Debug.Assert((constructorInitializer != null));
-// Debug.Assert((constructorInitializer.Arguments != null));
-// foreach (Expression o in constructorInitializer.Arguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (AttributeSection o in declareDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ParameterDeclarationExpression o in declareDeclaration.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return declareDeclaration.TypeReference.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
-// Debug.Assert((defaultValueExpression != null));
-// Debug.Assert((defaultValueExpression.TypeReference != null));
-// return defaultValueExpression.TypeReference.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in delegateDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// delegateDeclaration.ReturnType.AcceptVisitor(this, data);
-// foreach (ParameterDeclarationExpression o in delegateDeclaration.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (TemplateDefinition o in delegateDeclaration.Templates) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitDirectionExpression(DirectionExpression directionExpression, object data) {
-// Debug.Assert((directionExpression != null));
-// Debug.Assert((directionExpression.Expression != null));
-// return directionExpression.Expression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitDoLoopStatement(DoLoopStatement doLoopStatement, object data) {
-// Debug.Assert((doLoopStatement != null));
-// Debug.Assert((doLoopStatement.Condition != null));
-// Debug.Assert((doLoopStatement.EmbeddedStatement != null));
-// doLoopStatement.Condition.AcceptVisitor(this, data);
-// return doLoopStatement.EmbeddedStatement.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitElseIfSection(ElseIfSection elseIfSection, object data) {
-// Debug.Assert((elseIfSection != null));
-// Debug.Assert((elseIfSection.Condition != null));
-// Debug.Assert((elseIfSection.EmbeddedStatement != null));
-// elseIfSection.Condition.AcceptVisitor(this, data);
-// return elseIfSection.EmbeddedStatement.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (Expression o in eraseStatement.Expressions) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitErrorStatement(ErrorStatement errorStatement, object data) {
-// Debug.Assert((errorStatement != null));
-// Debug.Assert((errorStatement.Expression != null));
-// return errorStatement.Expression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in eventAddRegion.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// eventAddRegion.Block.AcceptVisitor(this, data);
-// foreach (ParameterDeclarationExpression o in eventAddRegion.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (AttributeSection o in eventDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ParameterDeclarationExpression o in eventDeclaration.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (InterfaceImplementation o in eventDeclaration.InterfaceImplementations) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// eventDeclaration.TypeReference.AcceptVisitor(this, data);
-// eventDeclaration.AddRegion.AcceptVisitor(this, data);
-// eventDeclaration.RemoveRegion.AcceptVisitor(this, data);
-// eventDeclaration.RaiseRegion.AcceptVisitor(this, data);
-// return eventDeclaration.Initializer.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in eventRaiseRegion.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// eventRaiseRegion.Block.AcceptVisitor(this, data);
-// foreach (ParameterDeclarationExpression o in eventRaiseRegion.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (AttributeSection o in eventRemoveRegion.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// eventRemoveRegion.Block.AcceptVisitor(this, data);
-// foreach (ParameterDeclarationExpression o in eventRemoveRegion.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// expressionRangeVariable.Expression.AcceptVisitor(this, data);
-// return expressionRangeVariable.Type.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
-// Debug.Assert((expressionStatement != null));
-// Debug.Assert((expressionStatement.Expression != null));
-// return expressionStatement.Expression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in fieldDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// fieldDeclaration.TypeReference.AcceptVisitor(this, data);
-// foreach (VariableDeclaration o in fieldDeclaration.Fields) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreachStatement.TypeReference.AcceptVisitor(this, data);
-// foreachStatement.Expression.AcceptVisitor(this, data);
-// foreachStatement.NextExpression.AcceptVisitor(this, data);
-// return foreachStatement.EmbeddedStatement.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// forNextStatement.Start.AcceptVisitor(this, data);
-// forNextStatement.End.AcceptVisitor(this, data);
-// forNextStatement.Step.AcceptVisitor(this, data);
-// foreach (Expression o in forNextStatement.NextExpressions) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// forNextStatement.TypeReference.AcceptVisitor(this, data);
-// forNextStatement.LoopVariableExpression.AcceptVisitor(this, data);
-// return forNextStatement.EmbeddedStatement.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (TypeReference o in identifierExpression.TypeArguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// ifElseStatement.Condition.AcceptVisitor(this, data);
-// foreach (Statement o in ifElseStatement.TrueStatement) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (Statement o in ifElseStatement.FalseStatement) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ElseIfSection o in ifElseStatement.ElseIfSections) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitInnerClassTypeReference(InnerClassTypeReference innerClassTypeReference, object data) {
-// Debug.Assert((innerClassTypeReference != null));
-// Debug.Assert((innerClassTypeReference.GenericTypes != null));
-// Debug.Assert((innerClassTypeReference.BaseType != null));
-// foreach (TypeReference o in innerClassTypeReference.GenericTypes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return innerClassTypeReference.BaseType.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitInterfaceImplementation(InterfaceImplementation interfaceImplementation, object data) {
-// Debug.Assert((interfaceImplementation != null));
-// Debug.Assert((interfaceImplementation.InterfaceType != null));
-// return interfaceImplementation.InterfaceType.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitInvocationExpression(InvocationExpression invocationExpression, object data) {
-// Debug.Assert((invocationExpression != null));
-// Debug.Assert((invocationExpression.TargetObject != null));
-// Debug.Assert((invocationExpression.Arguments != null));
-// invocationExpression.TargetObject.AcceptVisitor(this, data);
-// foreach (Expression o in invocationExpression.Arguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (ParameterDeclarationExpression o in lambdaExpression.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// lambdaExpression.StatementBody.AcceptVisitor(this, data);
-// lambdaExpression.ExpressionBody.AcceptVisitor(this, data);
-// return lambdaExpression.ReturnType.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitLocalVariableDeclaration(LocalVariableDeclaration localVariableDeclaration, object data) {
-// Debug.Assert((localVariableDeclaration != null));
-// Debug.Assert((localVariableDeclaration.TypeReference != null));
-// Debug.Assert((localVariableDeclaration.Variables != null));
-// localVariableDeclaration.TypeReference.AcceptVisitor(this, data);
-// foreach (VariableDeclaration o in localVariableDeclaration.Variables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitLockStatement(LockStatement lockStatement, object data) {
-// Debug.Assert((lockStatement != null));
-// Debug.Assert((lockStatement.LockExpression != null));
-// Debug.Assert((lockStatement.EmbeddedStatement != null));
-// lockStatement.LockExpression.AcceptVisitor(this, data);
-// return lockStatement.EmbeddedStatement.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitMemberInitializerExpression(MemberInitializerExpression memberInitializerExpression, object data) {
-// Debug.Assert((memberInitializerExpression != null));
-// Debug.Assert((memberInitializerExpression.Expression != null));
-// return memberInitializerExpression.Expression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, object data) {
-// Debug.Assert((memberReferenceExpression != null));
-// Debug.Assert((memberReferenceExpression.TargetObject != null));
-// Debug.Assert((memberReferenceExpression.TypeArguments != null));
-// memberReferenceExpression.TargetObject.AcceptVisitor(this, data);
-// foreach (TypeReference o in memberReferenceExpression.TypeArguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (AttributeSection o in methodDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ParameterDeclarationExpression o in methodDeclaration.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (InterfaceImplementation o in methodDeclaration.InterfaceImplementations) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// methodDeclaration.TypeReference.AcceptVisitor(this, data);
-// methodDeclaration.Body.AcceptVisitor(this, data);
-// foreach (TemplateDefinition o in methodDeclaration.Templates) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, object data) {
-// Debug.Assert((namedArgumentExpression != null));
-// Debug.Assert((namedArgumentExpression.Expression != null));
-// return namedArgumentExpression.Expression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, object data) {
-// Debug.Assert((namespaceDeclaration != null));
-// return namespaceDeclaration.AcceptChildren(this, data);
-// }
-//
-// 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));
-// objectCreateExpression.CreateType.AcceptVisitor(this, data);
-// foreach (Expression o in objectCreateExpression.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return objectCreateExpression.ObjectInitializer.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitOnErrorStatement(OnErrorStatement onErrorStatement, object data) {
-// Debug.Assert((onErrorStatement != null));
-// Debug.Assert((onErrorStatement.EmbeddedStatement != null));
-// return onErrorStatement.EmbeddedStatement.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in operatorDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ParameterDeclarationExpression o in operatorDeclaration.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (InterfaceImplementation o in operatorDeclaration.InterfaceImplementations) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// operatorDeclaration.TypeReference.AcceptVisitor(this, data);
-// operatorDeclaration.Body.AcceptVisitor(this, data);
-// foreach (TemplateDefinition o in operatorDeclaration.Templates) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (AttributeSection o in parameterDeclarationExpression.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// parameterDeclarationExpression.TypeReference.AcceptVisitor(this, data);
-// return parameterDeclarationExpression.DefaultValue.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, object data) {
-// Debug.Assert((parenthesizedExpression != null));
-// Debug.Assert((parenthesizedExpression.Expression != null));
-// return parenthesizedExpression.Expression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in propertyDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ParameterDeclarationExpression o in propertyDeclaration.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (InterfaceImplementation o in propertyDeclaration.InterfaceImplementations) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// propertyDeclaration.TypeReference.AcceptVisitor(this, data);
-// propertyDeclaration.GetRegion.AcceptVisitor(this, data);
-// propertyDeclaration.SetRegion.AcceptVisitor(this, data);
-// return propertyDeclaration.Initializer.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
-// Debug.Assert((propertyGetRegion != null));
-// Debug.Assert((propertyGetRegion.Attributes != null));
-// Debug.Assert((propertyGetRegion.Block != null));
-// foreach (AttributeSection o in propertyGetRegion.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return propertyGetRegion.Block.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in propertySetRegion.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// propertySetRegion.Block.AcceptVisitor(this, data);
-// foreach (ParameterDeclarationExpression o in propertySetRegion.Parameters) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitQueryExpression(QueryExpression queryExpression, object data) {
-// Debug.Assert((queryExpression != null));
-// Debug.Assert((queryExpression.Clauses != null));
-// foreach (QueryExpressionClause o in queryExpression.Clauses) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// queryExpressionAggregateClause.Source.AcceptVisitor(this, data);
-// foreach (QueryExpressionClause o in queryExpressionAggregateClause.MiddleClauses) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ExpressionRangeVariable o in queryExpressionAggregateClause.IntoVariables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (CollectionRangeVariable o in queryExpressionFromClause.Sources) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitQueryExpressionGroupClause(QueryExpressionGroupClause queryExpressionGroupClause, object data) {
-// Debug.Assert((queryExpressionGroupClause != null));
-// Debug.Assert((queryExpressionGroupClause.Projection != null));
-// Debug.Assert((queryExpressionGroupClause.GroupBy != null));
-// queryExpressionGroupClause.Projection.AcceptVisitor(this, data);
-// return queryExpressionGroupClause.GroupBy.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitQueryExpressionGroupJoinVBClause(QueryExpressionGroupJoinVBClause queryExpressionGroupJoinVBClause, object data) {
-// Debug.Assert((queryExpressionGroupJoinVBClause != null));
-// Debug.Assert((queryExpressionGroupJoinVBClause.JoinClause != null));
-// Debug.Assert((queryExpressionGroupJoinVBClause.IntoVariables != null));
-// queryExpressionGroupJoinVBClause.JoinClause.AcceptVisitor(this, data);
-// foreach (ExpressionRangeVariable o in queryExpressionGroupJoinVBClause.IntoVariables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// foreach (ExpressionRangeVariable o in queryExpressionGroupVBClause.GroupVariables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ExpressionRangeVariable o in queryExpressionGroupVBClause.ByVariables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (ExpressionRangeVariable o in queryExpressionGroupVBClause.IntoVariables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// queryExpressionJoinClause.OnExpression.AcceptVisitor(this, data);
-// queryExpressionJoinClause.EqualsExpression.AcceptVisitor(this, data);
-// return queryExpressionJoinClause.Source.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitQueryExpressionJoinConditionVB(QueryExpressionJoinConditionVB queryExpressionJoinConditionVB, object data) {
-// Debug.Assert((queryExpressionJoinConditionVB != null));
-// Debug.Assert((queryExpressionJoinConditionVB.LeftSide != null));
-// Debug.Assert((queryExpressionJoinConditionVB.RightSide != null));
-// queryExpressionJoinConditionVB.LeftSide.AcceptVisitor(this, data);
-// return queryExpressionJoinConditionVB.RightSide.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// queryExpressionJoinVBClause.JoinVariable.AcceptVisitor(this, data);
-// queryExpressionJoinVBClause.SubJoin.AcceptVisitor(this, data);
-// foreach (QueryExpressionJoinConditionVB o in queryExpressionJoinVBClause.Conditions) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitQueryExpressionLetClause(QueryExpressionLetClause queryExpressionLetClause, object data) {
-// Debug.Assert((queryExpressionLetClause != null));
-// Debug.Assert((queryExpressionLetClause.Expression != null));
-// return queryExpressionLetClause.Expression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitQueryExpressionLetVBClause(QueryExpressionLetClause queryExpressionLetVBClause, object data) {
-// Debug.Assert((queryExpressionLetVBClause != null));
-// Debug.Assert((queryExpressionLetVBClause.Variables != null));
-// foreach (ExpressionRangeVariable o in queryExpressionLetVBClause.Variables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitQueryExpressionOrderClause(QueryExpressionOrderClause queryExpressionOrderClause, object data) {
-// Debug.Assert((queryExpressionOrderClause != null));
-// Debug.Assert((queryExpressionOrderClause.Orderings != null));
-// foreach (QueryExpressionOrdering o in queryExpressionOrderClause.Orderings) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitQueryExpressionOrdering(QueryExpressionOrdering queryExpressionOrdering, object data) {
-// Debug.Assert((queryExpressionOrdering != null));
-// Debug.Assert((queryExpressionOrdering.Criteria != null));
-// return queryExpressionOrdering.Criteria.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitQueryExpressionPartitionVBClause(QueryExpressionPartitionVBClause queryExpressionPartitionVBClause, object data) {
-// Debug.Assert((queryExpressionPartitionVBClause != null));
-// Debug.Assert((queryExpressionPartitionVBClause.Expression != null));
-// return queryExpressionPartitionVBClause.Expression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
-// Debug.Assert((queryExpressionSelectClause != null));
-// Debug.Assert((queryExpressionSelectClause.Projection != null));
-// return queryExpressionSelectClause.Projection.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitQueryExpressionSelectVBClause(QueryExpressionSelectVBClause queryExpressionSelectVBClause, object data) {
-// Debug.Assert((queryExpressionSelectVBClause != null));
-// Debug.Assert((queryExpressionSelectVBClause.Variables != null));
-// foreach (ExpressionRangeVariable o in queryExpressionSelectVBClause.Variables) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitQueryExpressionWhereClause(QueryExpressionWhereClause queryExpressionWhereClause, object data) {
-// Debug.Assert((queryExpressionWhereClause != null));
-// Debug.Assert((queryExpressionWhereClause.Condition != null));
-// return queryExpressionWhereClause.Condition.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitRaiseEventStatement(RaiseEventStatement raiseEventStatement, object data) {
-// Debug.Assert((raiseEventStatement != null));
-// Debug.Assert((raiseEventStatement.Arguments != null));
-// foreach (Expression o in raiseEventStatement.Arguments) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitReDimStatement(ReDimStatement reDimStatement, object data) {
-// Debug.Assert((reDimStatement != null));
-// Debug.Assert((reDimStatement.ReDimClauses != null));
-// foreach (InvocationExpression o in reDimStatement.ReDimClauses) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitRemoveHandlerStatement(RemoveHandlerStatement removeHandlerStatement, object data) {
-// Debug.Assert((removeHandlerStatement != null));
-// Debug.Assert((removeHandlerStatement.EventExpression != null));
-// Debug.Assert((removeHandlerStatement.HandlerExpression != null));
-// removeHandlerStatement.EventExpression.AcceptVisitor(this, data);
-// return removeHandlerStatement.HandlerExpression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// return returnStatement.Expression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (CaseLabel o in switchSection.SwitchLabels) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return switchSection.AcceptChildren(this, data);
-// }
-//
-// public virtual object VisitSwitchStatement(SwitchStatement switchStatement, object data) {
-// Debug.Assert((switchStatement != null));
-// Debug.Assert((switchStatement.SwitchExpression != null));
-// Debug.Assert((switchStatement.SwitchSections != null));
-// switchStatement.SwitchExpression.AcceptVisitor(this, data);
-// foreach (SwitchSection o in switchStatement.SwitchSections) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitTemplateDefinition(TemplateDefinition templateDefinition, object data) {
-// Debug.Assert((templateDefinition != null));
-// Debug.Assert((templateDefinition.Attributes != null));
-// Debug.Assert((templateDefinition.Bases != null));
-// foreach (AttributeSection o in templateDefinition.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (TypeReference o in templateDefinition.Bases) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// return throwStatement.Expression.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// tryCatchStatement.StatementBlock.AcceptVisitor(this, data);
-// foreach (CatchClause o in tryCatchStatement.CatchClauses) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return tryCatchStatement.FinallyBlock.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (AttributeSection o in typeDeclaration.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (TypeReference o in typeDeclaration.BaseTypes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// foreach (TemplateDefinition o in typeDeclaration.Templates) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return typeDeclaration.AcceptChildren(this, data);
-// }
-//
-// public virtual object VisitTypeOfExpression(TypeOfExpression typeOfExpression, object data) {
-// Debug.Assert((typeOfExpression != null));
-// Debug.Assert((typeOfExpression.TypeReference != null));
-// return typeOfExpression.TypeReference.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitTypeOfIsExpression(TypeOfIsExpression typeOfIsExpression, object data) {
-// Debug.Assert((typeOfIsExpression != null));
-// Debug.Assert((typeOfIsExpression.Expression != null));
-// Debug.Assert((typeOfIsExpression.TypeReference != null));
-// typeOfIsExpression.Expression.AcceptVisitor(this, data);
-// return typeOfIsExpression.TypeReference.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitTypeReference(TypeReference typeReference, object data) {
-// Debug.Assert((typeReference != null));
-// Debug.Assert((typeReference.GenericTypes != null));
-// foreach (TypeReference o in typeReference.GenericTypes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data) {
-// Debug.Assert((typeReferenceExpression != null));
-// Debug.Assert((typeReferenceExpression.TypeReference != null));
-// return typeReferenceExpression.TypeReference.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, object data) {
-// Debug.Assert((unaryOperatorExpression != null));
-// Debug.Assert((unaryOperatorExpression.Expression != null));
-// return unaryOperatorExpression.Expression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitUsing(ImportsClause @using, object data) {
-// Debug.Assert((@using != null));
-// Debug.Assert((@using.Alias != null));
-// return @using.Alias.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitUsingDeclaration(ImportsStatement usingDeclaration, object data) {
-// Debug.Assert((usingDeclaration != null));
-// Debug.Assert((usingDeclaration.ImportsClauses != null));
-// foreach (ImportsClause o in usingDeclaration.ImportsClauses) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return null;
-// }
-//
-// public virtual object VisitUsingStatement(UsingStatement usingStatement, object data) {
-// Debug.Assert((usingStatement != null));
-// Debug.Assert((usingStatement.ResourceAcquisition != null));
-// Debug.Assert((usingStatement.EmbeddedStatement != null));
-// usingStatement.ResourceAcquisition.AcceptVisitor(this, data);
-// return usingStatement.EmbeddedStatement.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// variableDeclaration.Initializer.AcceptVisitor(this, data);
-// variableDeclaration.TypeReference.AcceptVisitor(this, data);
-// return variableDeclaration.FixedArrayInitialization.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitWithStatement(WithStatement withStatement, object data) {
-// Debug.Assert((withStatement != null));
-// Debug.Assert((withStatement.Expression != null));
-// Debug.Assert((withStatement.Body != null));
-// withStatement.Expression.AcceptVisitor(this, data);
-// return withStatement.Body.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitXmlAttributeExpression(XmlAttributeExpression xmlAttributeExpression, object data) {
-// Debug.Assert((xmlAttributeExpression != null));
-// Debug.Assert((xmlAttributeExpression.ExpressionValue != null));
-// return xmlAttributeExpression.ExpressionValue.AcceptVisitor(this, data);
-// }
-//
-// 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));
-// foreach (XmlExpression o in xmlDocumentExpression.Expressions) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// 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));
-// xmlElementExpression.Content.AcceptVisitor(this, data);
-// xmlElementExpression.NameExpression.AcceptVisitor(this, data);
-// foreach (XmlExpression o in xmlElementExpression.Attributes) {
-// Debug.Assert(o != null);
-// o.AcceptVisitor(this, data);
-// }
-// return xmlElementExpression.AcceptChildren(this, data);
-// }
-//
-// public virtual object VisitXmlEmbeddedExpression(XmlEmbeddedExpression xmlEmbeddedExpression, object data) {
-// Debug.Assert((xmlEmbeddedExpression != null));
-// Debug.Assert((xmlEmbeddedExpression.InlineVBExpression != null));
-// return xmlEmbeddedExpression.InlineVBExpression.AcceptVisitor(this, data);
-// }
-//
-// public virtual object VisitXmlMemberAccessExpression(XmlMemberAccessExpression xmlMemberAccessExpression, object data) {
-// Debug.Assert((xmlMemberAccessExpression != null));
-// Debug.Assert((xmlMemberAccessExpression.TargetObject != null));
-// return xmlMemberAccessExpression.TargetObject.AcceptVisitor(this, data);
-// }
-// }
-}
diff --git a/ICSharpCode.NRefactory.VB/Visitors/NodeTrackingAstVisitor.cs b/ICSharpCode.NRefactory.VB/Visitors/NodeTrackingAstVisitor.cs
deleted file mode 100644
index a94cb0333e..0000000000
--- a/ICSharpCode.NRefactory.VB/Visitors/NodeTrackingAstVisitor.cs
+++ /dev/null
@@ -1,1266 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 ICSharpCode.NRefactory.VB.Ast;
-
-
- ///
- /// The NodeTrackingAstVisitor will iterate through the whole Ast,
- /// just like the AbstractAstVisitor, and calls the virtual methods
- /// BeginVisit and EndVisit for each node being visited.
- ///
- ///
- /// base.Visit(node, data) calls this.TrackedVisit(node, data), so if
- /// you want to visit child nodes using the default visiting behaviour,
- /// use base.TrackedVisit(parentNode, data).
- ///
-// public abstract class NodeTrackingAstVisitor : AbstractAstVisitor {
-//
-// protected virtual void BeginVisit(INode node) {
-// }
-//
-// protected virtual void EndVisit(INode node) {
-// }
-//
-// public sealed override object VisitAddHandlerStatement(AddHandlerStatement addHandlerStatement, object data) {
-// this.BeginVisit(addHandlerStatement);
-// object result = this.TrackedVisitAddHandlerStatement(addHandlerStatement, data);
-// this.EndVisit(addHandlerStatement);
-// return result;
-// }
-//
-// public sealed override object VisitAddressOfExpression(AddressOfExpression addressOfExpression, object data) {
-// this.BeginVisit(addressOfExpression);
-// object result = this.TrackedVisitAddressOfExpression(addressOfExpression, data);
-// this.EndVisit(addressOfExpression);
-// return result;
-// }
-//
-// public sealed override object VisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, object data) {
-// this.BeginVisit(arrayCreateExpression);
-// object result = this.TrackedVisitArrayCreateExpression(arrayCreateExpression, data);
-// this.EndVisit(arrayCreateExpression);
-// return result;
-// }
-//
-// public sealed override object VisitAssignmentExpression(AssignmentExpression assignmentExpression, object data) {
-// this.BeginVisit(assignmentExpression);
-// object result = this.TrackedVisitAssignmentExpression(assignmentExpression, data);
-// this.EndVisit(assignmentExpression);
-// return result;
-// }
-//
-// public sealed override object VisitAttribute(ICSharpCode.NRefactory.VB.Ast.Attribute attribute, object data) {
-// this.BeginVisit(attribute);
-// object result = this.TrackedVisitAttribute(attribute, data);
-// this.EndVisit(attribute);
-// return result;
-// }
-//
-// public sealed override object VisitAttributeSection(AttributeSection attributeSection, object data) {
-// this.BeginVisit(attributeSection);
-// object result = this.TrackedVisitAttributeSection(attributeSection, data);
-// this.EndVisit(attributeSection);
-// return result;
-// }
-//
-// public sealed override object VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, object data) {
-// this.BeginVisit(baseReferenceExpression);
-// object result = this.TrackedVisitBaseReferenceExpression(baseReferenceExpression, data);
-// this.EndVisit(baseReferenceExpression);
-// return result;
-// }
-//
-// public sealed override object VisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, object data) {
-// this.BeginVisit(binaryOperatorExpression);
-// object result = this.TrackedVisitBinaryOperatorExpression(binaryOperatorExpression, data);
-// this.EndVisit(binaryOperatorExpression);
-// return result;
-// }
-//
-// public sealed override object VisitBlockStatement(BlockStatement blockStatement, object data) {
-// this.BeginVisit(blockStatement);
-// object result = this.TrackedVisitBlockStatement(blockStatement, data);
-// this.EndVisit(blockStatement);
-// return result;
-// }
-//
-// public sealed override object VisitCaseLabel(CaseLabel caseLabel, object data) {
-// this.BeginVisit(caseLabel);
-// object result = this.TrackedVisitCaseLabel(caseLabel, data);
-// this.EndVisit(caseLabel);
-// return result;
-// }
-//
-// public sealed override object VisitCastExpression(CastExpression castExpression, object data) {
-// this.BeginVisit(castExpression);
-// object result = this.TrackedVisitCastExpression(castExpression, data);
-// this.EndVisit(castExpression);
-// return result;
-// }
-//
-// public sealed override object VisitCatchClause(CatchClause catchClause, object data) {
-// this.BeginVisit(catchClause);
-// object result = this.TrackedVisitCatchClause(catchClause, data);
-// this.EndVisit(catchClause);
-// return result;
-// }
-//
-// public sealed override object VisitClassReferenceExpression(ClassReferenceExpression classReferenceExpression, object data) {
-// this.BeginVisit(classReferenceExpression);
-// object result = this.TrackedVisitClassReferenceExpression(classReferenceExpression, data);
-// this.EndVisit(classReferenceExpression);
-// return result;
-// }
-//
-// public sealed override object VisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) {
-// this.BeginVisit(collectionInitializerExpression);
-// object result = this.TrackedVisitCollectionInitializerExpression(collectionInitializerExpression, data);
-// this.EndVisit(collectionInitializerExpression);
-// return result;
-// }
-//
-// public sealed override object VisitCollectionRangeVariable(CollectionRangeVariable collectionRangeVariable, object data) {
-// this.BeginVisit(collectionRangeVariable);
-// object result = this.TrackedVisitCollectionRangeVariable(collectionRangeVariable, data);
-// this.EndVisit(collectionRangeVariable);
-// return result;
-// }
-//
-// public sealed override object VisitCompilationUnit(CompilationUnit compilationUnit, object data) {
-// this.BeginVisit(compilationUnit);
-// object result = this.TrackedVisitCompilationUnit(compilationUnit, data);
-// this.EndVisit(compilationUnit);
-// return result;
-// }
-//
-// public sealed override object VisitConditionalExpression(ConditionalExpression conditionalExpression, object data) {
-// this.BeginVisit(conditionalExpression);
-// object result = this.TrackedVisitConditionalExpression(conditionalExpression, data);
-// this.EndVisit(conditionalExpression);
-// return result;
-// }
-//
-// public sealed override object VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, object data) {
-// this.BeginVisit(constructorDeclaration);
-// object result = this.TrackedVisitConstructorDeclaration(constructorDeclaration, data);
-// this.EndVisit(constructorDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) {
-// this.BeginVisit(constructorInitializer);
-// object result = this.TrackedVisitConstructorInitializer(constructorInitializer, data);
-// this.EndVisit(constructorInitializer);
-// return result;
-// }
-//
-// public sealed override object VisitContinueStatement(ContinueStatement continueStatement, object data) {
-// this.BeginVisit(continueStatement);
-// object result = this.TrackedVisitContinueStatement(continueStatement, data);
-// this.EndVisit(continueStatement);
-// return result;
-// }
-//
-// public sealed override object VisitDeclareDeclaration(DeclareDeclaration declareDeclaration, object data) {
-// this.BeginVisit(declareDeclaration);
-// object result = this.TrackedVisitDeclareDeclaration(declareDeclaration, data);
-// this.EndVisit(declareDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
-// this.BeginVisit(defaultValueExpression);
-// object result = this.TrackedVisitDefaultValueExpression(defaultValueExpression, data);
-// this.EndVisit(defaultValueExpression);
-// return result;
-// }
-//
-// public sealed override object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) {
-// this.BeginVisit(delegateDeclaration);
-// object result = this.TrackedVisitDelegateDeclaration(delegateDeclaration, data);
-// this.EndVisit(delegateDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitDirectionExpression(DirectionExpression directionExpression, object data) {
-// this.BeginVisit(directionExpression);
-// object result = this.TrackedVisitDirectionExpression(directionExpression, data);
-// this.EndVisit(directionExpression);
-// return result;
-// }
-//
-// public sealed override object VisitDoLoopStatement(DoLoopStatement doLoopStatement, object data) {
-// this.BeginVisit(doLoopStatement);
-// object result = this.TrackedVisitDoLoopStatement(doLoopStatement, data);
-// this.EndVisit(doLoopStatement);
-// return result;
-// }
-//
-// public sealed override object VisitElseIfSection(ElseIfSection elseIfSection, object data) {
-// this.BeginVisit(elseIfSection);
-// object result = this.TrackedVisitElseIfSection(elseIfSection, data);
-// this.EndVisit(elseIfSection);
-// return result;
-// }
-//
-// public sealed override object VisitEndStatement(EndStatement endStatement, object data) {
-// this.BeginVisit(endStatement);
-// object result = this.TrackedVisitEndStatement(endStatement, data);
-// this.EndVisit(endStatement);
-// return result;
-// }
-//
-// public sealed override object VisitEraseStatement(EraseStatement eraseStatement, object data) {
-// this.BeginVisit(eraseStatement);
-// object result = this.TrackedVisitEraseStatement(eraseStatement, data);
-// this.EndVisit(eraseStatement);
-// return result;
-// }
-//
-// public sealed override object VisitErrorStatement(ErrorStatement errorStatement, object data) {
-// this.BeginVisit(errorStatement);
-// object result = this.TrackedVisitErrorStatement(errorStatement, data);
-// this.EndVisit(errorStatement);
-// return result;
-// }
-//
-// public sealed override object VisitEventAddRegion(EventAddRegion eventAddRegion, object data) {
-// this.BeginVisit(eventAddRegion);
-// object result = this.TrackedVisitEventAddRegion(eventAddRegion, data);
-// this.EndVisit(eventAddRegion);
-// return result;
-// }
-//
-// public sealed override object VisitEventDeclaration(EventDeclaration eventDeclaration, object data) {
-// this.BeginVisit(eventDeclaration);
-// object result = this.TrackedVisitEventDeclaration(eventDeclaration, data);
-// this.EndVisit(eventDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitEventRaiseRegion(EventRaiseRegion eventRaiseRegion, object data) {
-// this.BeginVisit(eventRaiseRegion);
-// object result = this.TrackedVisitEventRaiseRegion(eventRaiseRegion, data);
-// this.EndVisit(eventRaiseRegion);
-// return result;
-// }
-//
-// public sealed override object VisitEventRemoveRegion(EventRemoveRegion eventRemoveRegion, object data) {
-// this.BeginVisit(eventRemoveRegion);
-// object result = this.TrackedVisitEventRemoveRegion(eventRemoveRegion, data);
-// this.EndVisit(eventRemoveRegion);
-// return result;
-// }
-//
-// public sealed override object VisitExitStatement(ExitStatement exitStatement, object data) {
-// this.BeginVisit(exitStatement);
-// object result = this.TrackedVisitExitStatement(exitStatement, data);
-// this.EndVisit(exitStatement);
-// return result;
-// }
-//
-// public sealed override object VisitExpressionRangeVariable(ExpressionRangeVariable expressionRangeVariable, object data) {
-// this.BeginVisit(expressionRangeVariable);
-// object result = this.TrackedVisitExpressionRangeVariable(expressionRangeVariable, data);
-// this.EndVisit(expressionRangeVariable);
-// return result;
-// }
-//
-// public sealed override object VisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
-// this.BeginVisit(expressionStatement);
-// object result = this.TrackedVisitExpressionStatement(expressionStatement, data);
-// this.EndVisit(expressionStatement);
-// return result;
-// }
-//
-// public sealed override object VisitExternAliasDirective(ExternAliasDirective externAliasDirective, object data) {
-// this.BeginVisit(externAliasDirective);
-// object result = this.TrackedVisitExternAliasDirective(externAliasDirective, data);
-// this.EndVisit(externAliasDirective);
-// return result;
-// }
-//
-// public sealed override object VisitFieldDeclaration(FieldDeclaration fieldDeclaration, object data) {
-// this.BeginVisit(fieldDeclaration);
-// object result = this.TrackedVisitFieldDeclaration(fieldDeclaration, data);
-// this.EndVisit(fieldDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitForeachStatement(ForeachStatement foreachStatement, object data) {
-// this.BeginVisit(foreachStatement);
-// object result = this.TrackedVisitForeachStatement(foreachStatement, data);
-// this.EndVisit(foreachStatement);
-// return result;
-// }
-//
-// public sealed override object VisitForNextStatement(ForNextStatement forNextStatement, object data) {
-// this.BeginVisit(forNextStatement);
-// object result = this.TrackedVisitForNextStatement(forNextStatement, data);
-// this.EndVisit(forNextStatement);
-// return result;
-// }
-//
-// public sealed override object VisitGotoStatement(GotoStatement gotoStatement, object data) {
-// this.BeginVisit(gotoStatement);
-// object result = this.TrackedVisitGotoStatement(gotoStatement, data);
-// this.EndVisit(gotoStatement);
-// return result;
-// }
-//
-// public sealed override object VisitIdentifierExpression(SimpleNameExpression identifierExpression, object data) {
-// this.BeginVisit(identifierExpression);
-// object result = this.TrackedVisitIdentifierExpression(identifierExpression, data);
-// this.EndVisit(identifierExpression);
-// return result;
-// }
-//
-// public sealed override object VisitIfElseStatement(IfElseStatement ifElseStatement, object data) {
-// this.BeginVisit(ifElseStatement);
-// object result = this.TrackedVisitIfElseStatement(ifElseStatement, data);
-// this.EndVisit(ifElseStatement);
-// return result;
-// }
-//
-// public sealed override object VisitInnerClassTypeReference(InnerClassTypeReference innerClassTypeReference, object data) {
-// this.BeginVisit(innerClassTypeReference);
-// object result = this.TrackedVisitInnerClassTypeReference(innerClassTypeReference, data);
-// this.EndVisit(innerClassTypeReference);
-// return result;
-// }
-//
-// public sealed override object VisitInterfaceImplementation(InterfaceImplementation interfaceImplementation, object data) {
-// this.BeginVisit(interfaceImplementation);
-// object result = this.TrackedVisitInterfaceImplementation(interfaceImplementation, data);
-// this.EndVisit(interfaceImplementation);
-// return result;
-// }
-//
-// public sealed override object VisitInvocationExpression(InvocationExpression invocationExpression, object data) {
-// this.BeginVisit(invocationExpression);
-// object result = this.TrackedVisitInvocationExpression(invocationExpression, data);
-// this.EndVisit(invocationExpression);
-// return result;
-// }
-//
-// public sealed override object VisitLabelStatement(LabelStatement labelStatement, object data) {
-// this.BeginVisit(labelStatement);
-// object result = this.TrackedVisitLabelStatement(labelStatement, data);
-// this.EndVisit(labelStatement);
-// return result;
-// }
-//
-// public sealed override object VisitLambdaExpression(LambdaExpression lambdaExpression, object data) {
-// this.BeginVisit(lambdaExpression);
-// object result = this.TrackedVisitLambdaExpression(lambdaExpression, data);
-// this.EndVisit(lambdaExpression);
-// return result;
-// }
-//
-// public sealed override object VisitLocalVariableDeclaration(LocalVariableDeclaration localVariableDeclaration, object data) {
-// this.BeginVisit(localVariableDeclaration);
-// object result = this.TrackedVisitLocalVariableDeclaration(localVariableDeclaration, data);
-// this.EndVisit(localVariableDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitLockStatement(LockStatement lockStatement, object data) {
-// this.BeginVisit(lockStatement);
-// object result = this.TrackedVisitLockStatement(lockStatement, data);
-// this.EndVisit(lockStatement);
-// return result;
-// }
-//
-// public sealed override object VisitMemberInitializerExpression(MemberInitializerExpression memberInitializerExpression, object data) {
-// this.BeginVisit(memberInitializerExpression);
-// object result = this.TrackedVisitMemberInitializerExpression(memberInitializerExpression, data);
-// this.EndVisit(memberInitializerExpression);
-// return result;
-// }
-//
-// public sealed override object VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, object data) {
-// this.BeginVisit(memberReferenceExpression);
-// object result = this.TrackedVisitMemberReferenceExpression(memberReferenceExpression, data);
-// this.EndVisit(memberReferenceExpression);
-// return result;
-// }
-//
-// public sealed override object VisitMethodDeclaration(MethodDeclaration methodDeclaration, object data) {
-// this.BeginVisit(methodDeclaration);
-// object result = this.TrackedVisitMethodDeclaration(methodDeclaration, data);
-// this.EndVisit(methodDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, object data) {
-// this.BeginVisit(namedArgumentExpression);
-// object result = this.TrackedVisitNamedArgumentExpression(namedArgumentExpression, data);
-// this.EndVisit(namedArgumentExpression);
-// return result;
-// }
-//
-// public sealed override object VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, object data) {
-// this.BeginVisit(namespaceDeclaration);
-// object result = this.TrackedVisitNamespaceDeclaration(namespaceDeclaration, data);
-// this.EndVisit(namespaceDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression, object data) {
-// this.BeginVisit(objectCreateExpression);
-// object result = this.TrackedVisitObjectCreateExpression(objectCreateExpression, data);
-// this.EndVisit(objectCreateExpression);
-// return result;
-// }
-//
-// public sealed override object VisitOnErrorStatement(OnErrorStatement onErrorStatement, object data) {
-// this.BeginVisit(onErrorStatement);
-// object result = this.TrackedVisitOnErrorStatement(onErrorStatement, data);
-// this.EndVisit(onErrorStatement);
-// return result;
-// }
-//
-// public sealed override object VisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, object data) {
-// this.BeginVisit(operatorDeclaration);
-// object result = this.TrackedVisitOperatorDeclaration(operatorDeclaration, data);
-// this.EndVisit(operatorDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitOptionDeclaration(OptionDeclaration optionDeclaration, object data) {
-// this.BeginVisit(optionDeclaration);
-// object result = this.TrackedVisitOptionDeclaration(optionDeclaration, data);
-// this.EndVisit(optionDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitParameterDeclarationExpression(ParameterDeclarationExpression parameterDeclarationExpression, object data) {
-// this.BeginVisit(parameterDeclarationExpression);
-// object result = this.TrackedVisitParameterDeclarationExpression(parameterDeclarationExpression, data);
-// this.EndVisit(parameterDeclarationExpression);
-// return result;
-// }
-//
-// public sealed override object VisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, object data) {
-// this.BeginVisit(parenthesizedExpression);
-// object result = this.TrackedVisitParenthesizedExpression(parenthesizedExpression, data);
-// this.EndVisit(parenthesizedExpression);
-// return result;
-// }
-//
-// public sealed override object VisitPrimitiveExpression(PrimitiveExpression primitiveExpression, object data) {
-// this.BeginVisit(primitiveExpression);
-// object result = this.TrackedVisitPrimitiveExpression(primitiveExpression, data);
-// this.EndVisit(primitiveExpression);
-// return result;
-// }
-//
-// public sealed override object VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, object data) {
-// this.BeginVisit(propertyDeclaration);
-// object result = this.TrackedVisitPropertyDeclaration(propertyDeclaration, data);
-// this.EndVisit(propertyDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
-// this.BeginVisit(propertyGetRegion);
-// object result = this.TrackedVisitPropertyGetRegion(propertyGetRegion, data);
-// this.EndVisit(propertyGetRegion);
-// return result;
-// }
-//
-// public sealed override object VisitPropertySetRegion(PropertySetRegion propertySetRegion, object data) {
-// this.BeginVisit(propertySetRegion);
-// object result = this.TrackedVisitPropertySetRegion(propertySetRegion, data);
-// this.EndVisit(propertySetRegion);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpression(QueryExpression queryExpression, object data) {
-// this.BeginVisit(queryExpression);
-// object result = this.TrackedVisitQueryExpression(queryExpression, data);
-// this.EndVisit(queryExpression);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
-// this.BeginVisit(queryExpressionAggregateClause);
-// object result = this.TrackedVisitQueryExpressionAggregateClause(queryExpressionAggregateClause, data);
-// this.EndVisit(queryExpressionAggregateClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionDistinctClause(QueryExpressionDistinctClause queryExpressionDistinctClause, object data) {
-// this.BeginVisit(queryExpressionDistinctClause);
-// object result = this.TrackedVisitQueryExpressionDistinctClause(queryExpressionDistinctClause, data);
-// this.EndVisit(queryExpressionDistinctClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionFromClause(QueryExpressionFromClause queryExpressionFromClause, object data) {
-// this.BeginVisit(queryExpressionFromClause);
-// object result = this.TrackedVisitQueryExpressionFromClause(queryExpressionFromClause, data);
-// this.EndVisit(queryExpressionFromClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionGroupClause(QueryExpressionGroupClause queryExpressionGroupClause, object data) {
-// this.BeginVisit(queryExpressionGroupClause);
-// object result = this.TrackedVisitQueryExpressionGroupClause(queryExpressionGroupClause, data);
-// this.EndVisit(queryExpressionGroupClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionGroupJoinVBClause(QueryExpressionGroupJoinVBClause queryExpressionGroupJoinVBClause, object data) {
-// this.BeginVisit(queryExpressionGroupJoinVBClause);
-// object result = this.TrackedVisitQueryExpressionGroupJoinVBClause(queryExpressionGroupJoinVBClause, data);
-// this.EndVisit(queryExpressionGroupJoinVBClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionGroupVBClause(QueryExpressionGroupVBClause queryExpressionGroupVBClause, object data) {
-// this.BeginVisit(queryExpressionGroupVBClause);
-// object result = this.TrackedVisitQueryExpressionGroupVBClause(queryExpressionGroupVBClause, data);
-// this.EndVisit(queryExpressionGroupVBClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) {
-// this.BeginVisit(queryExpressionJoinClause);
-// object result = this.TrackedVisitQueryExpressionJoinClause(queryExpressionJoinClause, data);
-// this.EndVisit(queryExpressionJoinClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionJoinConditionVB(QueryExpressionJoinConditionVB queryExpressionJoinConditionVB, object data) {
-// this.BeginVisit(queryExpressionJoinConditionVB);
-// object result = this.TrackedVisitQueryExpressionJoinConditionVB(queryExpressionJoinConditionVB, data);
-// this.EndVisit(queryExpressionJoinConditionVB);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionJoinVBClause(QueryExpressionJoinVBClause queryExpressionJoinVBClause, object data) {
-// this.BeginVisit(queryExpressionJoinVBClause);
-// object result = this.TrackedVisitQueryExpressionJoinVBClause(queryExpressionJoinVBClause, data);
-// this.EndVisit(queryExpressionJoinVBClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionLetClause(QueryExpressionLetClause queryExpressionLetClause, object data) {
-// this.BeginVisit(queryExpressionLetClause);
-// object result = this.TrackedVisitQueryExpressionLetClause(queryExpressionLetClause, data);
-// this.EndVisit(queryExpressionLetClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionLetVBClause(QueryExpressionLetClause queryExpressionLetVBClause, object data) {
-// this.BeginVisit(queryExpressionLetVBClause);
-// object result = this.TrackedVisitQueryExpressionLetVBClause(queryExpressionLetVBClause, data);
-// this.EndVisit(queryExpressionLetVBClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionOrderClause(QueryExpressionOrderClause queryExpressionOrderClause, object data) {
-// this.BeginVisit(queryExpressionOrderClause);
-// object result = this.TrackedVisitQueryExpressionOrderClause(queryExpressionOrderClause, data);
-// this.EndVisit(queryExpressionOrderClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionOrdering(QueryExpressionOrdering queryExpressionOrdering, object data) {
-// this.BeginVisit(queryExpressionOrdering);
-// object result = this.TrackedVisitQueryExpressionOrdering(queryExpressionOrdering, data);
-// this.EndVisit(queryExpressionOrdering);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionPartitionVBClause(QueryExpressionPartitionVBClause queryExpressionPartitionVBClause, object data) {
-// this.BeginVisit(queryExpressionPartitionVBClause);
-// object result = this.TrackedVisitQueryExpressionPartitionVBClause(queryExpressionPartitionVBClause, data);
-// this.EndVisit(queryExpressionPartitionVBClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
-// this.BeginVisit(queryExpressionSelectClause);
-// object result = this.TrackedVisitQueryExpressionSelectClause(queryExpressionSelectClause, data);
-// this.EndVisit(queryExpressionSelectClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionSelectVBClause(QueryExpressionSelectVBClause queryExpressionSelectVBClause, object data) {
-// this.BeginVisit(queryExpressionSelectVBClause);
-// object result = this.TrackedVisitQueryExpressionSelectVBClause(queryExpressionSelectVBClause, data);
-// this.EndVisit(queryExpressionSelectVBClause);
-// return result;
-// }
-//
-// public sealed override object VisitQueryExpressionWhereClause(QueryExpressionWhereClause queryExpressionWhereClause, object data) {
-// this.BeginVisit(queryExpressionWhereClause);
-// object result = this.TrackedVisitQueryExpressionWhereClause(queryExpressionWhereClause, data);
-// this.EndVisit(queryExpressionWhereClause);
-// return result;
-// }
-//
-// public sealed override object VisitRaiseEventStatement(RaiseEventStatement raiseEventStatement, object data) {
-// this.BeginVisit(raiseEventStatement);
-// object result = this.TrackedVisitRaiseEventStatement(raiseEventStatement, data);
-// this.EndVisit(raiseEventStatement);
-// return result;
-// }
-//
-// public sealed override object VisitReDimStatement(ReDimStatement reDimStatement, object data) {
-// this.BeginVisit(reDimStatement);
-// object result = this.TrackedVisitReDimStatement(reDimStatement, data);
-// this.EndVisit(reDimStatement);
-// return result;
-// }
-//
-// public sealed override object VisitRemoveHandlerStatement(RemoveHandlerStatement removeHandlerStatement, object data) {
-// this.BeginVisit(removeHandlerStatement);
-// object result = this.TrackedVisitRemoveHandlerStatement(removeHandlerStatement, data);
-// this.EndVisit(removeHandlerStatement);
-// return result;
-// }
-//
-// public sealed override object VisitResumeStatement(ResumeStatement resumeStatement, object data) {
-// this.BeginVisit(resumeStatement);
-// object result = this.TrackedVisitResumeStatement(resumeStatement, data);
-// this.EndVisit(resumeStatement);
-// return result;
-// }
-//
-// public sealed override object VisitReturnStatement(ReturnStatement returnStatement, object data) {
-// this.BeginVisit(returnStatement);
-// object result = this.TrackedVisitReturnStatement(returnStatement, data);
-// this.EndVisit(returnStatement);
-// return result;
-// }
-//
-// public sealed override object VisitStopStatement(StopStatement stopStatement, object data) {
-// this.BeginVisit(stopStatement);
-// object result = this.TrackedVisitStopStatement(stopStatement, data);
-// this.EndVisit(stopStatement);
-// return result;
-// }
-//
-// public sealed override object VisitSwitchSection(SwitchSection switchSection, object data) {
-// this.BeginVisit(switchSection);
-// object result = this.TrackedVisitSwitchSection(switchSection, data);
-// this.EndVisit(switchSection);
-// return result;
-// }
-//
-// public sealed override object VisitSwitchStatement(SwitchStatement switchStatement, object data) {
-// this.BeginVisit(switchStatement);
-// object result = this.TrackedVisitSwitchStatement(switchStatement, data);
-// this.EndVisit(switchStatement);
-// return result;
-// }
-//
-// public sealed override object VisitTemplateDefinition(TemplateDefinition templateDefinition, object data) {
-// this.BeginVisit(templateDefinition);
-// object result = this.TrackedVisitTemplateDefinition(templateDefinition, data);
-// this.EndVisit(templateDefinition);
-// return result;
-// }
-//
-// public sealed override object VisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, object data) {
-// this.BeginVisit(thisReferenceExpression);
-// object result = this.TrackedVisitThisReferenceExpression(thisReferenceExpression, data);
-// this.EndVisit(thisReferenceExpression);
-// return result;
-// }
-//
-// public sealed override object VisitThrowStatement(ThrowStatement throwStatement, object data) {
-// this.BeginVisit(throwStatement);
-// object result = this.TrackedVisitThrowStatement(throwStatement, data);
-// this.EndVisit(throwStatement);
-// return result;
-// }
-//
-// public sealed override object VisitTryCatchStatement(TryCatchStatement tryCatchStatement, object data) {
-// this.BeginVisit(tryCatchStatement);
-// object result = this.TrackedVisitTryCatchStatement(tryCatchStatement, data);
-// this.EndVisit(tryCatchStatement);
-// return result;
-// }
-//
-// public sealed override object VisitTypeDeclaration(TypeDeclaration typeDeclaration, object data) {
-// this.BeginVisit(typeDeclaration);
-// object result = this.TrackedVisitTypeDeclaration(typeDeclaration, data);
-// this.EndVisit(typeDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitTypeOfExpression(TypeOfExpression typeOfExpression, object data) {
-// this.BeginVisit(typeOfExpression);
-// object result = this.TrackedVisitTypeOfExpression(typeOfExpression, data);
-// this.EndVisit(typeOfExpression);
-// return result;
-// }
-//
-// public sealed override object VisitTypeOfIsExpression(TypeOfIsExpression typeOfIsExpression, object data) {
-// this.BeginVisit(typeOfIsExpression);
-// object result = this.TrackedVisitTypeOfIsExpression(typeOfIsExpression, data);
-// this.EndVisit(typeOfIsExpression);
-// return result;
-// }
-//
-// public sealed override object VisitTypeReference(TypeReference typeReference, object data) {
-// this.BeginVisit(typeReference);
-// object result = this.TrackedVisitTypeReference(typeReference, data);
-// this.EndVisit(typeReference);
-// return result;
-// }
-//
-// public sealed override object VisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data) {
-// this.BeginVisit(typeReferenceExpression);
-// object result = this.TrackedVisitTypeReferenceExpression(typeReferenceExpression, data);
-// this.EndVisit(typeReferenceExpression);
-// return result;
-// }
-//
-// public sealed override object VisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, object data) {
-// this.BeginVisit(unaryOperatorExpression);
-// object result = this.TrackedVisitUnaryOperatorExpression(unaryOperatorExpression, data);
-// this.EndVisit(unaryOperatorExpression);
-// return result;
-// }
-//
-// public sealed override object VisitUsing(ImportsClause @using, object data) {
-// this.BeginVisit(@using);
-// object result = this.TrackedVisitUsing(@using, data);
-// this.EndVisit(@using);
-// return result;
-// }
-//
-// public sealed override object VisitUsingDeclaration(ImportsStatement usingDeclaration, object data) {
-// this.BeginVisit(usingDeclaration);
-// object result = this.TrackedVisitUsingDeclaration(usingDeclaration, data);
-// this.EndVisit(usingDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitUsingStatement(UsingStatement usingStatement, object data) {
-// this.BeginVisit(usingStatement);
-// object result = this.TrackedVisitUsingStatement(usingStatement, data);
-// this.EndVisit(usingStatement);
-// return result;
-// }
-//
-// public sealed override object VisitVariableDeclaration(VariableDeclaration variableDeclaration, object data) {
-// this.BeginVisit(variableDeclaration);
-// object result = this.TrackedVisitVariableDeclaration(variableDeclaration, data);
-// this.EndVisit(variableDeclaration);
-// return result;
-// }
-//
-// public sealed override object VisitWithStatement(WithStatement withStatement, object data) {
-// this.BeginVisit(withStatement);
-// object result = this.TrackedVisitWithStatement(withStatement, data);
-// this.EndVisit(withStatement);
-// return result;
-// }
-//
-// public sealed override object VisitXmlAttributeExpression(XmlAttributeExpression xmlAttributeExpression, object data) {
-// this.BeginVisit(xmlAttributeExpression);
-// object result = this.TrackedVisitXmlAttributeExpression(xmlAttributeExpression, data);
-// this.EndVisit(xmlAttributeExpression);
-// return result;
-// }
-//
-// public sealed override object VisitXmlContentExpression(XmlContentExpression xmlContentExpression, object data) {
-// this.BeginVisit(xmlContentExpression);
-// object result = this.TrackedVisitXmlContentExpression(xmlContentExpression, data);
-// this.EndVisit(xmlContentExpression);
-// return result;
-// }
-//
-// public sealed override object VisitXmlDocumentExpression(XmlDocumentExpression xmlDocumentExpression, object data) {
-// this.BeginVisit(xmlDocumentExpression);
-// object result = this.TrackedVisitXmlDocumentExpression(xmlDocumentExpression, data);
-// this.EndVisit(xmlDocumentExpression);
-// return result;
-// }
-//
-// public sealed override object VisitXmlElementExpression(XmlElementExpression xmlElementExpression, object data) {
-// this.BeginVisit(xmlElementExpression);
-// object result = this.TrackedVisitXmlElementExpression(xmlElementExpression, data);
-// this.EndVisit(xmlElementExpression);
-// return result;
-// }
-//
-// public sealed override object VisitXmlEmbeddedExpression(XmlEmbeddedExpression xmlEmbeddedExpression, object data) {
-// this.BeginVisit(xmlEmbeddedExpression);
-// object result = this.TrackedVisitXmlEmbeddedExpression(xmlEmbeddedExpression, data);
-// this.EndVisit(xmlEmbeddedExpression);
-// return result;
-// }
-//
-// public sealed override object VisitXmlMemberAccessExpression(XmlMemberAccessExpression xmlMemberAccessExpression, object data) {
-// this.BeginVisit(xmlMemberAccessExpression);
-// object result = this.TrackedVisitXmlMemberAccessExpression(xmlMemberAccessExpression, data);
-// this.EndVisit(xmlMemberAccessExpression);
-// return result;
-// }
-//
-// public virtual object TrackedVisitAddHandlerStatement(AddHandlerStatement addHandlerStatement, object data) {
-// return base.VisitAddHandlerStatement(addHandlerStatement, data);
-// }
-//
-// public virtual object TrackedVisitAddressOfExpression(AddressOfExpression addressOfExpression, object data) {
-// return base.VisitAddressOfExpression(addressOfExpression, data);
-// }
-//
-// public virtual object TrackedVisitArrayCreateExpression(ArrayCreateExpression arrayCreateExpression, object data) {
-// return base.VisitArrayCreateExpression(arrayCreateExpression, data);
-// }
-//
-// public virtual object TrackedVisitAssignmentExpression(AssignmentExpression assignmentExpression, object data) {
-// return base.VisitAssignmentExpression(assignmentExpression, data);
-// }
-//
-// public virtual object TrackedVisitAttribute(ICSharpCode.NRefactory.VB.Ast.Attribute attribute, object data) {
-// return base.VisitAttribute(attribute, data);
-// }
-//
-// public virtual object TrackedVisitAttributeSection(AttributeSection attributeSection, object data) {
-// return base.VisitAttributeSection(attributeSection, data);
-// }
-//
-// public virtual object TrackedVisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, object data) {
-// return base.VisitBaseReferenceExpression(baseReferenceExpression, data);
-// }
-//
-// public virtual object TrackedVisitBinaryOperatorExpression(BinaryOperatorExpression binaryOperatorExpression, object data) {
-// return base.VisitBinaryOperatorExpression(binaryOperatorExpression, data);
-// }
-//
-// public virtual object TrackedVisitBlockStatement(BlockStatement blockStatement, object data) {
-// return base.VisitBlockStatement(blockStatement, data);
-// }
-//
-// public virtual object TrackedVisitCaseLabel(CaseLabel caseLabel, object data) {
-// return base.VisitCaseLabel(caseLabel, data);
-// }
-//
-// public virtual object TrackedVisitCastExpression(CastExpression castExpression, object data) {
-// return base.VisitCastExpression(castExpression, data);
-// }
-//
-// public virtual object TrackedVisitCatchClause(CatchClause catchClause, object data) {
-// return base.VisitCatchClause(catchClause, data);
-// }
-//
-// public virtual object TrackedVisitClassReferenceExpression(ClassReferenceExpression classReferenceExpression, object data) {
-// return base.VisitClassReferenceExpression(classReferenceExpression, data);
-// }
-//
-// public virtual object TrackedVisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) {
-// return base.VisitCollectionInitializerExpression(collectionInitializerExpression, data);
-// }
-//
-// public virtual object TrackedVisitCollectionRangeVariable(CollectionRangeVariable collectionRangeVariable, object data) {
-// return base.VisitCollectionRangeVariable(collectionRangeVariable, data);
-// }
-//
-// public virtual object TrackedVisitCompilationUnit(CompilationUnit compilationUnit, object data) {
-// return base.VisitCompilationUnit(compilationUnit, data);
-// }
-//
-// public virtual object TrackedVisitConditionalExpression(ConditionalExpression conditionalExpression, object data) {
-// return base.VisitConditionalExpression(conditionalExpression, data);
-// }
-//
-// public virtual object TrackedVisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, object data) {
-// return base.VisitConstructorDeclaration(constructorDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) {
-// return base.VisitConstructorInitializer(constructorInitializer, data);
-// }
-//
-// public virtual object TrackedVisitContinueStatement(ContinueStatement continueStatement, object data) {
-// return base.VisitContinueStatement(continueStatement, data);
-// }
-//
-// public virtual object TrackedVisitDeclareDeclaration(DeclareDeclaration declareDeclaration, object data) {
-// return base.VisitDeclareDeclaration(declareDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitDefaultValueExpression(DefaultValueExpression defaultValueExpression, object data) {
-// return base.VisitDefaultValueExpression(defaultValueExpression, data);
-// }
-//
-// public virtual object TrackedVisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) {
-// return base.VisitDelegateDeclaration(delegateDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitDirectionExpression(DirectionExpression directionExpression, object data) {
-// return base.VisitDirectionExpression(directionExpression, data);
-// }
-//
-// public virtual object TrackedVisitDoLoopStatement(DoLoopStatement doLoopStatement, object data) {
-// return base.VisitDoLoopStatement(doLoopStatement, data);
-// }
-//
-// public virtual object TrackedVisitElseIfSection(ElseIfSection elseIfSection, object data) {
-// return base.VisitElseIfSection(elseIfSection, data);
-// }
-//
-// public virtual object TrackedVisitEndStatement(EndStatement endStatement, object data) {
-// return base.VisitEndStatement(endStatement, data);
-// }
-//
-// public virtual object TrackedVisitEraseStatement(EraseStatement eraseStatement, object data) {
-// return base.VisitEraseStatement(eraseStatement, data);
-// }
-//
-// public virtual object TrackedVisitErrorStatement(ErrorStatement errorStatement, object data) {
-// return base.VisitErrorStatement(errorStatement, data);
-// }
-//
-// public virtual object TrackedVisitEventAddRegion(EventAddRegion eventAddRegion, object data) {
-// return base.VisitEventAddRegion(eventAddRegion, data);
-// }
-//
-// public virtual object TrackedVisitEventDeclaration(EventDeclaration eventDeclaration, object data) {
-// return base.VisitEventDeclaration(eventDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitEventRaiseRegion(EventRaiseRegion eventRaiseRegion, object data) {
-// return base.VisitEventRaiseRegion(eventRaiseRegion, data);
-// }
-//
-// public virtual object TrackedVisitEventRemoveRegion(EventRemoveRegion eventRemoveRegion, object data) {
-// return base.VisitEventRemoveRegion(eventRemoveRegion, data);
-// }
-//
-// public virtual object TrackedVisitExitStatement(ExitStatement exitStatement, object data) {
-// return base.VisitExitStatement(exitStatement, data);
-// }
-//
-// public virtual object TrackedVisitExpressionRangeVariable(ExpressionRangeVariable expressionRangeVariable, object data) {
-// return base.VisitExpressionRangeVariable(expressionRangeVariable, data);
-// }
-//
-// public virtual object TrackedVisitExpressionStatement(ExpressionStatement expressionStatement, object data) {
-// return base.VisitExpressionStatement(expressionStatement, data);
-// }
-//
-// public virtual object TrackedVisitExternAliasDirective(ExternAliasDirective externAliasDirective, object data) {
-// return base.VisitExternAliasDirective(externAliasDirective, data);
-// }
-//
-// public virtual object TrackedVisitFieldDeclaration(FieldDeclaration fieldDeclaration, object data) {
-// return base.VisitFieldDeclaration(fieldDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitForeachStatement(ForeachStatement foreachStatement, object data) {
-// return base.VisitForeachStatement(foreachStatement, data);
-// }
-//
-// public virtual object TrackedVisitForNextStatement(ForNextStatement forNextStatement, object data) {
-// return base.VisitForNextStatement(forNextStatement, data);
-// }
-//
-// public virtual object TrackedVisitGotoStatement(GotoStatement gotoStatement, object data) {
-// return base.VisitGotoStatement(gotoStatement, data);
-// }
-//
-// public virtual object TrackedVisitIdentifierExpression(SimpleNameExpression identifierExpression, object data) {
-// return base.VisitIdentifierExpression(identifierExpression, data);
-// }
-//
-// public virtual object TrackedVisitIfElseStatement(IfElseStatement ifElseStatement, object data) {
-// return base.VisitIfElseStatement(ifElseStatement, data);
-// }
-//
-// public virtual object TrackedVisitInnerClassTypeReference(InnerClassTypeReference innerClassTypeReference, object data) {
-// return base.VisitInnerClassTypeReference(innerClassTypeReference, data);
-// }
-//
-// public virtual object TrackedVisitInterfaceImplementation(InterfaceImplementation interfaceImplementation, object data) {
-// return base.VisitInterfaceImplementation(interfaceImplementation, data);
-// }
-//
-// public virtual object TrackedVisitInvocationExpression(InvocationExpression invocationExpression, object data) {
-// return base.VisitInvocationExpression(invocationExpression, data);
-// }
-//
-// public virtual object TrackedVisitLabelStatement(LabelStatement labelStatement, object data) {
-// return base.VisitLabelStatement(labelStatement, data);
-// }
-//
-// public virtual object TrackedVisitLambdaExpression(LambdaExpression lambdaExpression, object data) {
-// return base.VisitLambdaExpression(lambdaExpression, data);
-// }
-//
-// public virtual object TrackedVisitLocalVariableDeclaration(LocalVariableDeclaration localVariableDeclaration, object data) {
-// return base.VisitLocalVariableDeclaration(localVariableDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitLockStatement(LockStatement lockStatement, object data) {
-// return base.VisitLockStatement(lockStatement, data);
-// }
-//
-// public virtual object TrackedVisitMemberInitializerExpression(MemberInitializerExpression memberInitializerExpression, object data) {
-// return base.VisitMemberInitializerExpression(memberInitializerExpression, data);
-// }
-//
-// public virtual object TrackedVisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression, object data) {
-// return base.VisitMemberReferenceExpression(memberReferenceExpression, data);
-// }
-//
-// public virtual object TrackedVisitMethodDeclaration(MethodDeclaration methodDeclaration, object data) {
-// return base.VisitMethodDeclaration(methodDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitNamedArgumentExpression(NamedArgumentExpression namedArgumentExpression, object data) {
-// return base.VisitNamedArgumentExpression(namedArgumentExpression, data);
-// }
-//
-// public virtual object TrackedVisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, object data) {
-// return base.VisitNamespaceDeclaration(namespaceDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression, object data) {
-// return base.VisitObjectCreateExpression(objectCreateExpression, data);
-// }
-//
-// public virtual object TrackedVisitOnErrorStatement(OnErrorStatement onErrorStatement, object data) {
-// return base.VisitOnErrorStatement(onErrorStatement, data);
-// }
-//
-// public virtual object TrackedVisitOperatorDeclaration(OperatorDeclaration operatorDeclaration, object data) {
-// return base.VisitOperatorDeclaration(operatorDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitOptionDeclaration(OptionDeclaration optionDeclaration, object data) {
-// return base.VisitOptionDeclaration(optionDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitParameterDeclarationExpression(ParameterDeclarationExpression parameterDeclarationExpression, object data) {
-// return base.VisitParameterDeclarationExpression(parameterDeclarationExpression, data);
-// }
-//
-// public virtual object TrackedVisitParenthesizedExpression(ParenthesizedExpression parenthesizedExpression, object data) {
-// return base.VisitParenthesizedExpression(parenthesizedExpression, data);
-// }
-//
-// public virtual object TrackedVisitPrimitiveExpression(PrimitiveExpression primitiveExpression, object data) {
-// return base.VisitPrimitiveExpression(primitiveExpression, data);
-// }
-//
-// public virtual object TrackedVisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, object data) {
-// return base.VisitPropertyDeclaration(propertyDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
-// return base.VisitPropertyGetRegion(propertyGetRegion, data);
-// }
-//
-// public virtual object TrackedVisitPropertySetRegion(PropertySetRegion propertySetRegion, object data) {
-// return base.VisitPropertySetRegion(propertySetRegion, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpression(QueryExpression queryExpression, object data) {
-// return base.VisitQueryExpression(queryExpression, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionAggregateClause(QueryExpressionAggregateClause queryExpressionAggregateClause, object data) {
-// return base.VisitQueryExpressionAggregateClause(queryExpressionAggregateClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionDistinctClause(QueryExpressionDistinctClause queryExpressionDistinctClause, object data) {
-// return base.VisitQueryExpressionDistinctClause(queryExpressionDistinctClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionFromClause(QueryExpressionFromClause queryExpressionFromClause, object data) {
-// return base.VisitQueryExpressionFromClause(queryExpressionFromClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionGroupClause(QueryExpressionGroupClause queryExpressionGroupClause, object data) {
-// return base.VisitQueryExpressionGroupClause(queryExpressionGroupClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionGroupJoinVBClause(QueryExpressionGroupJoinVBClause queryExpressionGroupJoinVBClause, object data) {
-// return base.VisitQueryExpressionGroupJoinVBClause(queryExpressionGroupJoinVBClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionGroupVBClause(QueryExpressionGroupVBClause queryExpressionGroupVBClause, object data) {
-// return base.VisitQueryExpressionGroupVBClause(queryExpressionGroupVBClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) {
-// return base.VisitQueryExpressionJoinClause(queryExpressionJoinClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionJoinConditionVB(QueryExpressionJoinConditionVB queryExpressionJoinConditionVB, object data) {
-// return base.VisitQueryExpressionJoinConditionVB(queryExpressionJoinConditionVB, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionJoinVBClause(QueryExpressionJoinVBClause queryExpressionJoinVBClause, object data) {
-// return base.VisitQueryExpressionJoinVBClause(queryExpressionJoinVBClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionLetClause(QueryExpressionLetClause queryExpressionLetClause, object data) {
-// return base.VisitQueryExpressionLetClause(queryExpressionLetClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionLetVBClause(QueryExpressionLetClause queryExpressionLetVBClause, object data) {
-// return base.VisitQueryExpressionLetVBClause(queryExpressionLetVBClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionOrderClause(QueryExpressionOrderClause queryExpressionOrderClause, object data) {
-// return base.VisitQueryExpressionOrderClause(queryExpressionOrderClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionOrdering(QueryExpressionOrdering queryExpressionOrdering, object data) {
-// return base.VisitQueryExpressionOrdering(queryExpressionOrdering, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionPartitionVBClause(QueryExpressionPartitionVBClause queryExpressionPartitionVBClause, object data) {
-// return base.VisitQueryExpressionPartitionVBClause(queryExpressionPartitionVBClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionSelectClause(QueryExpressionSelectClause queryExpressionSelectClause, object data) {
-// return base.VisitQueryExpressionSelectClause(queryExpressionSelectClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionSelectVBClause(QueryExpressionSelectVBClause queryExpressionSelectVBClause, object data) {
-// return base.VisitQueryExpressionSelectVBClause(queryExpressionSelectVBClause, data);
-// }
-//
-// public virtual object TrackedVisitQueryExpressionWhereClause(QueryExpressionWhereClause queryExpressionWhereClause, object data) {
-// return base.VisitQueryExpressionWhereClause(queryExpressionWhereClause, data);
-// }
-//
-// public virtual object TrackedVisitRaiseEventStatement(RaiseEventStatement raiseEventStatement, object data) {
-// return base.VisitRaiseEventStatement(raiseEventStatement, data);
-// }
-//
-// public virtual object TrackedVisitReDimStatement(ReDimStatement reDimStatement, object data) {
-// return base.VisitReDimStatement(reDimStatement, data);
-// }
-//
-// public virtual object TrackedVisitRemoveHandlerStatement(RemoveHandlerStatement removeHandlerStatement, object data) {
-// return base.VisitRemoveHandlerStatement(removeHandlerStatement, data);
-// }
-//
-// public virtual object TrackedVisitResumeStatement(ResumeStatement resumeStatement, object data) {
-// return base.VisitResumeStatement(resumeStatement, data);
-// }
-//
-// public virtual object TrackedVisitReturnStatement(ReturnStatement returnStatement, object data) {
-// return base.VisitReturnStatement(returnStatement, data);
-// }
-//
-// public virtual object TrackedVisitStopStatement(StopStatement stopStatement, object data) {
-// return base.VisitStopStatement(stopStatement, data);
-// }
-//
-// public virtual object TrackedVisitSwitchSection(SwitchSection switchSection, object data) {
-// return base.VisitSwitchSection(switchSection, data);
-// }
-//
-// public virtual object TrackedVisitSwitchStatement(SwitchStatement switchStatement, object data) {
-// return base.VisitSwitchStatement(switchStatement, data);
-// }
-//
-// public virtual object TrackedVisitTemplateDefinition(TemplateDefinition templateDefinition, object data) {
-// return base.VisitTemplateDefinition(templateDefinition, data);
-// }
-//
-// public virtual object TrackedVisitThisReferenceExpression(ThisReferenceExpression thisReferenceExpression, object data) {
-// return base.VisitThisReferenceExpression(thisReferenceExpression, data);
-// }
-//
-// public virtual object TrackedVisitThrowStatement(ThrowStatement throwStatement, object data) {
-// return base.VisitThrowStatement(throwStatement, data);
-// }
-//
-// public virtual object TrackedVisitTryCatchStatement(TryCatchStatement tryCatchStatement, object data) {
-// return base.VisitTryCatchStatement(tryCatchStatement, data);
-// }
-//
-// public virtual object TrackedVisitTypeDeclaration(TypeDeclaration typeDeclaration, object data) {
-// return base.VisitTypeDeclaration(typeDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitTypeOfExpression(TypeOfExpression typeOfExpression, object data) {
-// return base.VisitTypeOfExpression(typeOfExpression, data);
-// }
-//
-// public virtual object TrackedVisitTypeOfIsExpression(TypeOfIsExpression typeOfIsExpression, object data) {
-// return base.VisitTypeOfIsExpression(typeOfIsExpression, data);
-// }
-//
-// public virtual object TrackedVisitTypeReference(TypeReference typeReference, object data) {
-// return base.VisitTypeReference(typeReference, data);
-// }
-//
-// public virtual object TrackedVisitTypeReferenceExpression(TypeReferenceExpression typeReferenceExpression, object data) {
-// return base.VisitTypeReferenceExpression(typeReferenceExpression, data);
-// }
-//
-// public virtual object TrackedVisitUnaryOperatorExpression(UnaryOperatorExpression unaryOperatorExpression, object data) {
-// return base.VisitUnaryOperatorExpression(unaryOperatorExpression, data);
-// }
-//
-// public virtual object TrackedVisitUsing(ImportsClause @using, object data) {
-// return base.VisitUsing(@using, data);
-// }
-//
-// public virtual object TrackedVisitUsingDeclaration(ImportsStatement usingDeclaration, object data) {
-// return base.VisitUsingDeclaration(usingDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitUsingStatement(UsingStatement usingStatement, object data) {
-// return base.VisitUsingStatement(usingStatement, data);
-// }
-//
-// public virtual object TrackedVisitVariableDeclaration(VariableDeclaration variableDeclaration, object data) {
-// return base.VisitVariableDeclaration(variableDeclaration, data);
-// }
-//
-// public virtual object TrackedVisitWithStatement(WithStatement withStatement, object data) {
-// return base.VisitWithStatement(withStatement, data);
-// }
-//
-// public virtual object TrackedVisitXmlAttributeExpression(XmlAttributeExpression xmlAttributeExpression, object data) {
-// return base.VisitXmlAttributeExpression(xmlAttributeExpression, data);
-// }
-//
-// public virtual object TrackedVisitXmlContentExpression(XmlContentExpression xmlContentExpression, object data) {
-// return base.VisitXmlContentExpression(xmlContentExpression, data);
-// }
-//
-// public virtual object TrackedVisitXmlDocumentExpression(XmlDocumentExpression xmlDocumentExpression, object data) {
-// return base.VisitXmlDocumentExpression(xmlDocumentExpression, data);
-// }
-//
-// public virtual object TrackedVisitXmlElementExpression(XmlElementExpression xmlElementExpression, object data) {
-// return base.VisitXmlElementExpression(xmlElementExpression, data);
-// }
-//
-// public virtual object TrackedVisitXmlEmbeddedExpression(XmlEmbeddedExpression xmlEmbeddedExpression, object data) {
-// return base.VisitXmlEmbeddedExpression(xmlEmbeddedExpression, data);
-// }
-//
-// public virtual object TrackedVisitXmlMemberAccessExpression(XmlMemberAccessExpression xmlMemberAccessExpression, object data) {
-// return base.VisitXmlMemberAccessExpression(xmlMemberAccessExpression, data);
-// }
-// }
-}
diff --git a/ICSharpCode.NRefactory/CSharp/OutputVisitor/InsertParenthesesVisitor.cs b/ICSharpCode.NRefactory/CSharp/OutputVisitor/InsertParenthesesVisitor.cs
index 8e2e5981b3..dab89495b9 100644
--- a/ICSharpCode.NRefactory/CSharp/OutputVisitor/InsertParenthesesVisitor.cs
+++ b/ICSharpCode.NRefactory/CSharp/OutputVisitor/InsertParenthesesVisitor.cs
@@ -132,6 +132,11 @@ namespace ICSharpCode.NRefactory.CSharp
public override object VisitIndexerExpression(IndexerExpression indexerExpression, object data)
{
ParenthesizeIfRequired(indexerExpression.Target, Primary);
+ ArrayCreateExpression ace = indexerExpression.Target as ArrayCreateExpression;
+ if (ace != null && (InsertParenthesesForReadability || ace.Initializer.IsNull)) {
+ // require parentheses for "(new int[1])[0]"
+ Parenthesize(indexerExpression.Target);
+ }
return base.VisitIndexerExpression(indexerExpression, data);
}