internal virtual CodeElement BuildElement(CodeElement parent) { string fullName = GetFullName(parent); CodeLocation location = GetLocation(parent); CodeElement element = CreateCodeElement(Name, fullName, location, parent); foreach (var child in Children) { var childElement = child.BuildElement(element); element.AddChild(childElement); } return(element); }