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); }
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; }