public override void VisitNamespaceDeclaration(NamespaceDeclarationSyntax node)
        {
            MainDeclaration.Instance.RoslynWatch.Start();
            INamespaceSymbol namescpaceSymbol = MainDeclaration.Instance.Model.GetDeclaredSymbol(node);

            MainDeclaration.Instance.RoslynWatch.Stop();

            INamespaceSymbol actualNamespaceFromMergedNamespace = GetActualNamespaceFromMergedNamespace(namescpaceSymbol, node);

            Package limNode = SymbolBuilder.BuildDispatch <Package, INamespaceSymbol>(actualNamespaceFromMergedNamespace);

            MainDeclaration.Instance.LimOrigin.addCompIdCsharpIdLimIdToMap(MainDeclaration.Instance.Component.Id, _map[node], limNode.Id);

            node.CreateCommentNode(actualNamespaceFromMergedNamespace);
            node.CreateCommentForCU();

            base.VisitNamespaceDeclaration(node);

            if (MainDeclaration.Instance.NamespaceStack.Peek() > 0 && MainDeclaration.Instance.UsesStack.Count > 0)
            {
                Package package = (Package)MainDeclaration.Instance.LimFactory.getRef(
                    MainDeclaration.Instance.NamespaceStack.Peek()
                    );
                Commons.Common.AddUses(package);
                MainDeclaration.Instance.UsesStack.Pop();
            }

            limNode.SetCLOC(node);
            var location = node.GetLocation();

            location.CalculateFileLevelCommentLines();
            location.CalculateFileLevelNumberOfBranches();
        }