Function: semantic-analyze-scope-lineage-tags-default
semantic-analyze-scope-lineage-tags-default is a byte-compiled
function defined in scope.el.gz.
Signature
(semantic-analyze-scope-lineage-tags-default PARENTS SCOPETYPES)
Documentation
Return the full lineage of tags from PARENTS.
The return list is of the form ( TAG . PROTECTION ), where TAG is a tag, and PROTECTION is the level of protection offered by the relationship. Optional SCOPETYPES are additional scoped entities in which our parent might be found.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/scope.el.gz
(defun semantic-analyze-scope-lineage-tags-default (parents scopetypes)
"Return the full lineage of tags from PARENTS.
The return list is of the form ( TAG . PROTECTION ), where TAG is a tag,
and PROTECTION is the level of protection offered by the relationship.
Optional SCOPETYPES are additional scoped entities in which our parent might
be found."
(let ((lineage nil)
(miniscope (semantic-scope-cache))
)
(oset miniscope parents parents)
(oset miniscope scope scopetypes)
(oset miniscope fullscope scopetypes)
(dolist (slp parents)
(semantic-analyze-scoped-inherited-tag-map
slp (lambda (newparent)
(let* ((pname (semantic-tag-name newparent))
(prot (semantic-tag-type-superclass-protection slp pname))
(effectiveprot (cond ((eq prot 'public)
;; doesn't provide access to private slots?
'protected)
(t prot))))
(push (cons newparent effectiveprot) lineage)
))
miniscope))
lineage))