abstractastvisitor.cs

来自「全功能c#编译器」· CS 代码 · 共 812 行 · 第 1/2 页

CS
812
字号
		
		public virtual object Visit(ReDimClause reDimClause, object data)
		{
			foreach (Expression e in reDimClause.Initializers) {
				e.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(UsingStatement usingStatement, object data)
		{
			if (usingStatement.ResourceAcquisition != null) {
				usingStatement.ResourceAcquisition.AcceptVisitor(this, data);
			}
			if (usingStatement.EmbeddedStatement != null) {
				usingStatement.EmbeddedStatement.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(WithStatement withStatement, object data)
		{
			if (withStatement.Expression != null) {
				withStatement.Expression.AcceptVisitor(this, data);
			}
			if (withStatement.Body != null) {
				withStatement.Body.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(EmptyStatement emptyStatement, object data)
		{
			return data;
		}
		
		public virtual object Visit(LocalVariableDeclaration localVariableDeclaration, object data)
		{
			Debug.Assert(localVariableDeclaration.TypeReference != null);
			localVariableDeclaration.TypeReference.AcceptVisitor(this, data);
			foreach (VariableDeclaration decl in localVariableDeclaration.Variables) {
				decl.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(IfElseStatement ifElseStatement, object data)
		{
			if (ifElseStatement.Condition != null) {
				ifElseStatement.Condition.AcceptVisitor(this, data);
			}
			if (ifElseStatement.TrueStatement != null) {
				ifElseStatement.TrueStatement.AcceptVisitor(this, data);
			}
			if (ifElseStatement.FalseStatement != null) {
				ifElseStatement.FalseStatement.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(DoLoopStatement doLoopStatement, object data)
		{
			doLoopStatement.Condition.AcceptVisitor(this, data);
			doLoopStatement.EmbeddedStatement.AcceptVisitor(this, data);
			return data;
		}
		
		public virtual object Visit(ForStatement forStatement, object data)
		{
			foreach(INode n in forStatement.Initializers) {
				n.AcceptVisitor(this, data);
			}
			if (forStatement.Condition != null) {
				forStatement.Condition.AcceptVisitor(this, data);
			}
			foreach(INode n in forStatement.Iterator) {
				n.AcceptVisitor(this, data);
			}
			if (forStatement.EmbeddedStatement == null) {
				return forStatement.EmbeddedStatement.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(ForeachStatement foreachStatement, object data)
		{
			foreachStatement.TypeReference.AcceptVisitor(this, data);
			if (foreachStatement.Expression != null) {
				foreachStatement.Expression.AcceptVisitor(this, data);
			}
			if (foreachStatement.EmbeddedStatement != null) {
				return foreachStatement.EmbeddedStatement.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(LabelStatement labelStatement, object data)
		{
			return data;
		}
		public virtual object Visit(GotoStatement gotoStatement, object data)
		{
			return data;
		}
		public virtual object Visit(GotoCaseStatement gotoCaseStatement, object data)
		{
			if (!gotoCaseStatement.IsDefaultCase) {
				gotoCaseStatement.Expression.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(BreakStatement breakStatement, object data)
		{
			return data;
		}
		public virtual object Visit(StopStatement stopStatement, object data)
		{
			return data;
		}
		public virtual object Visit(ResumeStatement breakStatement, object data)
		{
			return data;
		}
		public virtual object Visit(EndStatement endStatement, object data)
		{
			return data;
		}
		public virtual object Visit(ContinueStatement emptyStatement, object data)
		{
			return data;
		}
		public virtual object Visit(ReturnStatement returnStatement, object data)
		{
			if (returnStatement.Expression != null) {
				return returnStatement.Expression.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(SwitchStatement switchStatement, object data)
		{
			if (switchStatement == null) {
				return null;
			}
			if (switchStatement.SwitchExpression != null) {
				switchStatement.SwitchExpression.AcceptVisitor(this, data);
			}
			foreach (SwitchSection section in switchStatement.SwitchSections) {
				section.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(SwitchSection switchSection, object data)
		{
			foreach (CaseLabel label in switchSection.SwitchLabels) {
				label.AcceptVisitor(this, data);
			}
			switchSection.AcceptChildren(this, data);
			return switchSection.AcceptChildren(this, data);
		}
		
		public virtual object Visit(CaseLabel caseLabel, object data)
		{
			if (caseLabel.Label != null) {
				return caseLabel.Label.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(LockStatement lockStatement, object data)
		{
			if (lockStatement.EmbeddedStatement != null) {
				return lockStatement.EmbeddedStatement.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(FixedStatement fixedStatement, object data)
		{
			fixedStatement.TypeReference.AcceptVisitor(this, data);
			foreach (VariableDeclaration var in fixedStatement.PointerDeclarators) {
				var.AcceptVisitor(this, data);
			}
			fixedStatement.EmbeddedStatement.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(UnsafeStatement unsafeStatement, object data)
		{
			unsafeStatement.Block.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(CheckedStatement checkedStatement, object data)
		{
			checkedStatement.Block.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(UncheckedStatement uncheckedStatement, object data)
		{
			uncheckedStatement.Block.AcceptVisitor(this, data);
			return data;
		}
		
		public virtual object Visit(TryCatchStatement tryCatchStatement, object data)
		{
			if (tryCatchStatement.StatementBlock != null) {
				tryCatchStatement.StatementBlock.AcceptVisitor(this, data);
			}
			foreach (CatchClause catchClause in tryCatchStatement.CatchClauses) {
				catchClause.AcceptVisitor(this, data);
			}
			if (tryCatchStatement.FinallyBlock != null) {
				return tryCatchStatement.FinallyBlock.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(CatchClause catchClause, object data)
		{
			if (catchClause.StatementBlock != null) {
				return catchClause.StatementBlock.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(ThrowStatement throwStatement, object data)
		{
			if (throwStatement.Expression != null) {
				return throwStatement.Expression.AcceptVisitor(this, data);
			}
			return data;
		}
		
		public virtual object Visit(StatementExpression statementExpression, object data)
		{
			if (statementExpression.Expression != null) {
				return statementExpression.Expression.AcceptVisitor(this, data);
			}
			return data;
		}
#endregion
		
#region expressions
		public virtual object Visit(LoopControlVariableExpression loopControlVariableExpression, object data)
		{
			loopControlVariableExpression.Type.AcceptVisitor(this, data);
			loopControlVariableExpression.Expression.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(PrimitiveExpression primitiveExpression, object data)
		{
			return data;
		}
		public virtual object Visit(UnaryOperatorExpression unaryOperatorExpression, object data)
		{
			return unaryOperatorExpression.Expression.AcceptVisitor(this, data);
		}
		public virtual object Visit(BinaryOperatorExpression binaryOperatorExpression, object data)
		{
			binaryOperatorExpression.Left.AcceptVisitor(this, data);
			return binaryOperatorExpression.Right.AcceptVisitor(this, data);;
		}
		public virtual object Visit(ConditionalExpression conditionalExpression, object data)
		{
			conditionalExpression.Condition.AcceptVisitor(this, data);
			conditionalExpression.TrueExpression.AcceptVisitor(this, data);
			conditionalExpression.FalseExpression.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(ParenthesizedExpression parenthesizedExpression, object data)
		{
			return parenthesizedExpression.Expression.AcceptVisitor(this, data);
		}
		public virtual object Visit(ClassReferenceExpression classReferenceExpression, object data)
		{
			return data;
		}
		public virtual object Visit(FieldReferenceExpression fieldReferenceExpression, object data)
		{
			if (fieldReferenceExpression.TargetObject != null) {
				return fieldReferenceExpression.TargetObject.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(IndexerExpression indexerExpression, object data)
		{
			if (indexerExpression.TargetObject != null) {
				indexerExpression.TargetObject.AcceptVisitor(this, data);
			}
			foreach (Expression e in indexerExpression.Indices) {
				e.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(InvocationExpression invocationExpression, object data)
		{
			if (invocationExpression.TargetObject != null) {
				invocationExpression.TargetObject.AcceptVisitor(this, data);
			}
			foreach (ParameterDeclarationExpression p in invocationExpression.Parameters) {
				p.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(IdentifierExpression identifierExpression, object data)
		{
			return data;
		}
		public virtual object Visit(TypeReferenceExpression typeReferenceExpression, object data)
		{
			typeReferenceExpression.TypeReference.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(AssignmentExpression assignmentExpression, object data)
		{
			assignmentExpression.Left.AcceptVisitor(this, data);
			return assignmentExpression.Right.AcceptVisitor(this, data);
		}
		public virtual object Visit(CastExpression castExpression, object data)
		{
			return castExpression.Expression.AcceptVisitor(this, data);
		}
		public virtual object Visit(ThisReferenceExpression thisReferenceExpression, object data)
		{
			return data;
		}
		public virtual object Visit(BaseReferenceExpression baseReferenceExpression, object data)
		{
			return data;
		}
		public virtual object Visit(ObjectCreateExpression objectCreateExpression, object data)
		{
			objectCreateExpression.CreateType.AcceptVisitor(this, data);
			foreach (Expression e in objectCreateExpression.Parameters) {
				e.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(ArrayCreateExpression arrayCreateExpression, object data)
		{
			arrayCreateExpression.CreateType.AcceptVisitor(this, data);
			foreach (ParameterDeclarationExpression p in arrayCreateExpression.Parameters) {
				p.AcceptVisitor(this, data);
			}
			if (arrayCreateExpression.ArrayInitializer != null) {
				return arrayCreateExpression.ArrayInitializer.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(ArrayInitializerExpression arrayInitializerExpression, object data)
		{
			foreach (Expression e in arrayInitializerExpression.CreateExpressions) {
				e.AcceptVisitor(this, data);
			}
			return data;
		}
		public virtual object Visit(CheckedExpression checkedExpression, object data)
		{
			checkedExpression.Expression.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(UncheckedExpression uncheckedExpression, object data)
		{
			uncheckedExpression.Expression.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(TypeOfIsExpression typeOfIsExpression, object data)
		{
			typeOfIsExpression.Expression.AcceptVisitor(this, data);
			typeOfIsExpression.TypeReference.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(TypeOfExpression typeOfExpression, object data)
		{
			typeOfExpression.TypeReference.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(AddressOfExpression addressOfExpression, object data)
		{
			addressOfExpression.Expression.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(SizeOfExpression sizeOfExpression, object data)
		{
			sizeOfExpression.TypeReference.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(PointerReferenceExpression pointerReferenceExpression, object data)
		{
			pointerReferenceExpression.TargetObject.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(DirectionExpression directionExpression, object data)
		{
			directionExpression.Expression.AcceptVisitor(this, data);
			return data;
		}
		public virtual object Visit(StackAllocExpression stackAllocExpression, object data)
		{
			stackAllocExpression.TypeReference.AcceptVisitor(this, data);
			stackAllocExpression.Expression.AcceptVisitor(this, data);
			return data;
		}
#endregion
#endregion 
	}
}

⌨️ 快捷键说明

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