⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractasttransformer.cs

📁 根据cs源码解析为codedom
💻 CS
📖 第 1 页 / 共 5 页
字号:
				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 VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration, object data) {
			Debug.Assert((indexerDeclaration != null));
			Debug.Assert((indexerDeclaration.Attributes != null));
			Debug.Assert((indexerDeclaration.Parameters != null));
			Debug.Assert((indexerDeclaration.InterfaceImplementations != null));
			Debug.Assert((indexerDeclaration.TypeReference != null));
			Debug.Assert((indexerDeclaration.GetRegion != null));
			Debug.Assert((indexerDeclaration.SetRegion != null));
			for (int i = 0; i < indexerDeclaration.Attributes.Count; i++) {				AttributeSection o = indexerDeclaration.Attributes[i];				Debug.Assert(o != null);				nodeStack.Push(o);				o.AcceptVisitor(this, data);				o = (AttributeSection)nodeStack.Pop();				if (o == null)					indexerDeclaration.Attributes.RemoveAt(i--);				else					indexerDeclaration.Attributes[i] = o;			}
			for (int i = 0; i < indexerDeclaration.Parameters.Count; i++) {				ParameterDeclarationExpression o = indexerDeclaration.Parameters[i];				Debug.Assert(o != null);				nodeStack.Push(o);				o.AcceptVisitor(this, data);				o = (ParameterDeclarationExpression)nodeStack.Pop();				if (o == null)					indexerDeclaration.Parameters.RemoveAt(i--);				else					indexerDeclaration.Parameters[i] = o;			}
			for (int i = 0; i < indexerDeclaration.InterfaceImplementations.Count; i++) {				InterfaceImplementation o = indexerDeclaration.InterfaceImplementations[i];				Debug.Assert(o != null);				nodeStack.Push(o);				o.AcceptVisitor(this, data);				o = (InterfaceImplementation)nodeStack.Pop();				if (o == null)					indexerDeclaration.InterfaceImplementations.RemoveAt(i--);				else					indexerDeclaration.InterfaceImplementations[i] = o;			}
			nodeStack.Push(indexerDeclaration.TypeReference);
			indexerDeclaration.TypeReference.AcceptVisitor(this, data);
			indexerDeclaration.TypeReference = ((TypeReference)(nodeStack.Pop()));
			nodeStack.Push(indexerDeclaration.GetRegion);
			indexerDeclaration.GetRegion.AcceptVisitor(this, data);
			indexerDeclaration.GetRegion = ((PropertyGetRegion)(nodeStack.Pop()));
			nodeStack.Push(indexerDeclaration.SetRegion);
			indexerDeclaration.SetRegion.AcceptVisitor(this, data);
			indexerDeclaration.SetRegion = ((PropertySetRegion)(nodeStack.Pop()));
			return null;
		}
		
		public virtual object VisitIndexerExpression(IndexerExpression indexerExpression, object data) {
			Debug.Assert((indexerExpression != null));
			Debug.Assert((indexerExpression.TargetObject != null));
			Debug.Assert((indexerExpression.Indexes != null));
			nodeStack.Push(indexerExpression.TargetObject);
			indexerExpression.TargetObject.AcceptVisitor(this, data);
			indexerExpression.TargetObject = ((Expression)(nodeStack.Pop()));
			for (int i = 0; i < indexerExpression.Indexes.Count; i++) {				Expression o = indexerExpression.Indexes[i];				Debug.Assert(o != null);				nodeStack.Push(o);				o.AcceptVisitor(this, data);				o = (Expression)nodeStack.Pop();				if (o == null)					indexerExpression.Indexes.RemoveAt(i--);				else					indexerExpression.Indexes[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));
			Debug.Assert((invocationExpression.TypeArguments != 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;			}
			for (int i = 0; i < invocationExpression.TypeArguments.Count; i++) {				TypeReference o = invocationExpression.TypeArguments[i];				Debug.Assert(o != null);				nodeStack.Push(o);				o.AcceptVisitor(this, data);				o = (TypeReference)nodeStack.Pop();				if (o == null)					invocationExpression.TypeArguments.RemoveAt(i--);				else					invocationExpression.TypeArguments[i] = o;			}
			return null;
		}
		
		public virtual object VisitLabelStatement(LabelStatement labelStatement, object data) {
			Debug.Assert((labelStatement != null));
			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 VisitMethodDeclaration(MethodDeclaration methodDeclaration, object data) {
			Debug.Assert((methodDeclaration != null));
			Debug.Assert((methodDeclaration.Attributes != null));
			Debug.Assert((methodDeclaration.Parameters != null));
			Debug.Assert((methodDeclaration.TypeReference != null));
			Debug.Assert((methodDeclaration.Body != null));
			Debug.Assert((methodDeclaration.InterfaceImplementations != 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;			}
			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.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;			}
			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));
			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)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -