Esempio n. 1
0
        private Symbol CreateMockSymbol(NamespaceExtent extent, XElement xel)
        {
            Symbol result;
            var    childSymbols = from childElement in xel.Elements()
                                  select CreateMockSymbol(extent, childElement);

            string name = xel.Attribute("name").Value;

            switch (xel.Name.LocalName)
            {
            case "ns":
                result = new MockNamespaceSymbol(name, extent, childSymbols);
                break;

            case "class":
                result = new MockNamedTypeSymbol(name, childSymbols, TypeKind.Class);
                break;

            default:
                throw new InvalidOperationException("unexpected xml element");
            }

            foreach (IMockSymbol child in childSymbols)
            {
                child.SetContainer(result);
            }

            return(result);
        }
Esempio n. 2
0
        private Symbol CreateMockSymbol(NamespaceExtent extent, XElement xel)
        {
            Symbol result;
            var childSymbols = from childElement in xel.Elements()
                               select CreateMockSymbol(extent, childElement);

            string name = xel.Attribute("name").Value;
            switch (xel.Name.LocalName)
            {
                case "ns":
                    result = new MockNamespaceSymbol(name, extent, childSymbols);
                    break;

                case "class":
                    result = new MockNamedTypeSymbol(name, childSymbols, TypeKind.Class);
                    break;

                default:
                    throw new ApplicationException("unexpected xml element");
            }

            foreach (IMockSymbol child in childSymbols)
            {
                child.SetContainer(result);
            }

            return result;
        }