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; }
/// <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)); }