Microsoft.Zing.Checker.VisitEventPattern C# (CSharp) Méthode

VisitEventPattern() private méthode

private VisitEventPattern ( EventPattern ep ) : EventPattern
ep EventPattern
Résultat EventPattern
        private EventPattern VisitEventPattern(EventPattern ep)
        {
            if (ep == null) return null;

            if (!currentSelectStatement.visible)
            {
                this.HandleError(ep, Error.InvalidEventPattern);
                return null;
            }

            ep.direction = this.VisitExpression(ep.direction);

            if (ep.direction != null && ep.direction.Type != SystemTypes.Boolean)
            {
                this.HandleError(ep.direction, Error.BooleanExpressionRequired);
                return null;
            }

            ep.channelNumber = this.VisitExpression(ep.channelNumber);

            if (ep.channelNumber != null)
            {
                if (ep.channelNumber.Type == SystemTypes.UInt8)
                {
                    ep.channelNumber = new BinaryExpression(ep.channelNumber, new MemberBinding(null, SystemTypes.Int32),
                        NodeType.Castclass, ep.channelNumber.SourceContext);
                    ep.channelNumber.Type = SystemTypes.Int32;
                }
                else if (ep.channelNumber.Type != SystemTypes.Int32)
                {
                    this.HandleError(ep.channelNumber, Error.IntegerExpressionRequired);
                    return null;
                }
            }

            ep.messageType = this.VisitExpression(ep.messageType);

            if (ep.messageType != null)
            {
                if (ep.messageType.Type == SystemTypes.UInt8)
                {
                    ep.messageType = new BinaryExpression(ep.messageType, new MemberBinding(null, SystemTypes.Int32),
                        NodeType.Castclass, ep.messageType.SourceContext);
                    ep.messageType.Type = SystemTypes.Int32;
                }
                else if (ep.messageType.Type != SystemTypes.Int32)
                {
                    this.HandleError(ep.messageType, Error.IntegerExpressionRequired);
                    return null;
                }
            }
            return ep;
        }