Ejemplo n.º 1
0
        public static SyntaxKind GetSyntaxKind(ConditionalStatements conditional)
        {
            switch (conditional)
            {
            case ConditionalStatements.Equal:
                return(SyntaxKind.EqualsExpression);

            case ConditionalStatements.NotEqual:
                return(SyntaxKind.NotEqualsExpression);

            case ConditionalStatements.GreaterThan:
                return(SyntaxKind.GreaterThanExpression);

            case ConditionalStatements.GreaterThanOrEqual:
                return(SyntaxKind.GreaterThanOrEqualExpression);

            case ConditionalStatements.LessThan:
                return(SyntaxKind.LessThanExpression);

            case ConditionalStatements.LessThanOrEqual:
                return(SyntaxKind.LessThanOrEqualExpression);

            default:
                throw new ArgumentOutOfRangeException(nameof(conditional), conditional, null);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ConditionalBinaryExpression"/> class.
        /// </summary>
        /// <param name="leftExpression">The left expression.</param>
        /// <param name="rigthExpression">The right expression.</param>
        /// <param name="conditional">The conditional statement between two expressions.</param>
        public ConditionalBinaryExpression(
            ExpressionSyntax leftExpression,
            ExpressionSyntax rigthExpression,
            ConditionalStatements conditional)
        {
            if (leftExpression == null)
            {
                throw new ArgumentNullException(nameof(leftExpression));
            }

            if (rigthExpression == null)
            {
                throw new ArgumentNullException(nameof(rigthExpression));
            }

            _leftExpression  = leftExpression;
            _rightExpression = rigthExpression;
            _conditional     = conditional;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ConditionalBinaryExpression"/> class.
        /// </summary>
        /// <param name="leftReference">The left reference.</param>
        /// <param name="rightReference">The right reference.</param>
        /// <param name="conditional">The conditional statement between two expressions.</param>
        public ConditionalBinaryExpression(
            VariableReference leftReference,
            VariableReference rightReference,
            ConditionalStatements conditional)
        {
            if (leftReference == null)
            {
                throw new ArgumentNullException(nameof(leftReference));
            }

            if (rightReference == null)
            {
                throw new ArgumentNullException(nameof(rightReference));
            }

            _leftExpression  = ReferenceGenerator.Create(leftReference);
            _rightExpression = ReferenceGenerator.Create(rightReference);
            _conditional     = conditional;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Create the statement syntax for a if-conditional with a single statement.
        /// </summary>
        /// <param name="leftArgument">The left argument of the if-statement.</param>
        /// <param name="rightArgument">The right argument of the if-statement.</param>
        /// <param name="conditional">The conditional.</param>
        /// <param name="expressionStatement">Statement inside the if.</param>
        /// <returns>The declared statement syntax.</returns>
        public StatementSyntax If(IArgument leftArgument, IArgument rightArgument, ConditionalStatements conditional, ExpressionStatementSyntax expressionStatement)
        {
            if (leftArgument == null)
            {
                throw new ArgumentNullException(nameof(leftArgument));
            }

            if (rightArgument == null)
            {
                throw new ArgumentNullException(nameof(rightArgument));
            }

            return
                (IfStatement(
                     BinaryExpression(
                         ConditionalFactory.GetSyntaxKind(conditional),
                         leftArgument.GetArgumentSyntax().Expression,
                         rightArgument.GetArgumentSyntax().Expression),
                     expressionStatement));
        }