Ejemplo n.º 1
0
        private Namespace TraverseNamespace(NamespaceDeclarationSyntax nds)
        {
            Namespace retNS = new Namespace();

            retNS.Name = nds.Name.ToString();

            if (nds.HasLeadingTrivia)
            {
                SetOuterComments(retNS, nds.GetLeadingTrivia().ToFullString());
            }

            if (nds.HasTrailingTrivia)
            {
                SetInnerComments(retNS, nds.GetTrailingTrivia().ToFullString());
            }

            //First, grab any objects defined at the beginning of the namespace (even delegates!)
            var delegates = from aDelegate in nds.ChildNodes().OfType<DelegateDeclarationSyntax>() select aDelegate;
            foreach (DelegateDeclarationSyntax dds in delegates)
            {
                //TraverseDelegate
            }

            //Next, traverse any classes
            var classes = from cls in nds.ChildNodes().OfType<ClassDeclarationSyntax>() select cls;
            foreach (ClassDeclarationSyntax cds in classes)
            {
                retNS.Classes.Add(TraverseClass(cds));
            }

            var interfaces = from anInterface in nds.ChildNodes().OfType<InterfaceDeclarationSyntax>() select anInterface;
            foreach (InterfaceDeclarationSyntax ids in interfaces)
            {
                Interface tempInterface = TraverseInterface(ids);
                retNS.Interfaces.Add(tempInterface);
            }
            var enums = from aEnum in nds.ChildNodes().OfType<EnumDeclarationSyntax>() select aEnum;
            foreach (EnumDeclarationSyntax eds in enums)
            {
                Model.Enum tempEnum = TraverseEnums(eds);
                retNS.Enums.Add(tempEnum);
            }
            //TODO: Don't forget enums
            return retNS;
        }