private static void AnalyzeConditionalExpression(SyntaxNodeAnalysisContext context)
        {
            var conditionalExpression = (ConditionalExpressionSyntax)context.Node;

            if (conditionalExpression.ContainsDiagnostics)
            {
                return;
            }

            ExpressionSyntax condition = conditionalExpression.Condition;

            if (condition == null)
            {
                return;
            }

            ConditionalExpressionParenthesesStyle style = context.GetConditionalExpressionParenthesesStyle();

            if (style == ConditionalExpressionParenthesesStyle.None)
            {
                return;
            }

            SyntaxKind kind = condition.Kind();

            if (kind == SyntaxKind.ParenthesizedExpression)
            {
                var parenthesizedExpression = (ParenthesizedExpressionSyntax)condition;

                ExpressionSyntax expression = parenthesizedExpression.Expression;

                if (!expression.IsMissing)
                {
                    if (style == ConditionalExpressionParenthesesStyle.Omit ||
                        (style == ConditionalExpressionParenthesesStyle.OmitWhenConditionIsSingleToken &&
                         CSharpFacts.IsSingleTokenExpression(expression.Kind())))
                    {
                        DiagnosticHelpers.ReportDiagnostic(context, DiagnosticRules.AddOrRemoveParenthesesFromConditionInConditionalOperator, condition, "Remove", "from");
                    }
                }
            }
            else if (style == ConditionalExpressionParenthesesStyle.Include ||
                     (style == ConditionalExpressionParenthesesStyle.OmitWhenConditionIsSingleToken &&
                      !CSharpFacts.IsSingleTokenExpression(kind)))
            {
                DiagnosticHelpers.ReportDiagnostic(context, DiagnosticRules.AddOrRemoveParenthesesFromConditionInConditionalOperator, condition, "Add", "to");
            }
        }