private StatementSyntax WrapRootExpression(ExpressionSyntax expressionSyntax)
        {
            InvocationExpressionSyntax invocationExpression = expressionSyntax as InvocationExpressionSyntax;

            if (invocationExpression != null)
            {
                var lastExpression = expressionSyntax.FollowProperty(exp => exp.TypeSwitch(
                                                                         (InvocationExpressionSyntax e) => e.Expression,
                                                                         (ParenthesizedExpressionSyntax e) => e.Expression,
                                                                         (CastExpressionSyntax e) => e.Expression,
                                                                         (MemberAccessExpressionSyntax e) => e.Expression
                                                                         )).LastOrDefault();
                if (lastExpression != null && !(lastExpression is IdentifierNameSyntax || lastExpression is InstanceExpressionSyntax))
                {
                    return(SyntaxFactory.CallStatement(expressionSyntax));
                }
            }
            return(SyntaxFactory.ExpressionStatement(expressionSyntax));
        }