public override SyntaxNode VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node)
        {
            string declaredType = node.Declaration.Type.ToString();

            bool basicType = SyntaxFactoryExtensions.IsBasicType(declaredType);

            if (!basicType)
            {
                return(node);
            }

            if (declaredType.Equals("int"))
            {
                return(node);
            }
            if (declaredType.Equals("bool"))
            {
                return(node);
            }
            if (declaredType.Equals("char"))
            {
                return(node);
            }
            if (declaredType.Equals("string"))
            {
                return(node);
            }

            foreach (var variable in node.Declaration.Variables)
            {
                if (variable.Initializer == null)
                {
                    continue;
                }
                var oldRightValue = variable.Initializer.Value;
                markedNodes.Add(oldRightValue);

                var newRightValue = SyntaxFactory.BinaryExpression(SyntaxKind.AddExpression, oldRightValue,
                                                                   SyntaxFactoryExtensions.DefaultValue(declaredType));
                replacementNodes.Add(new Tuple <ExpressionSyntax, ExpressionSyntax> (oldRightValue, newRightValue));
            }

            return(node);
        }