Logtalk 2.30.1 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1903 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -2,66 +2,53 @@
|
||||
:- category(proto_hierarchy,
|
||||
implements(proto_hierarchyp)).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.1,
|
||||
author is 'Paulo Moura',
|
||||
date is 2006/2/20,
|
||||
comment is 'Prototype hierarchy predicates.']).
|
||||
|
||||
|
||||
parent(Parent) :-
|
||||
self(Self),
|
||||
extends_object(Self, Parent).
|
||||
|
||||
|
||||
parents(Parents) :-
|
||||
self(Self),
|
||||
findall(Parent, extends_object(Self, Parent), Parents).
|
||||
|
||||
|
||||
ancestor(Ancestor) :-
|
||||
self(Self),
|
||||
ancestor(Self, Ancestor).
|
||||
|
||||
|
||||
ancestor(Self, Ancestor) :-
|
||||
extends_object(Self, Ancestor).
|
||||
|
||||
ancestor(Self, Ancestor) :-
|
||||
extends_object(Self, Parent),
|
||||
ancestor(Parent, Ancestor).
|
||||
|
||||
|
||||
ancestors(Ancestors) :-
|
||||
self(Self),
|
||||
findall(Ancestor, ancestor(Self, Ancestor), Ancestors).
|
||||
|
||||
|
||||
extension(Prototype) :-
|
||||
self(Self),
|
||||
extends_object(Prototype, Self).
|
||||
|
||||
|
||||
extensions(Prototypes) :-
|
||||
self(Self),
|
||||
findall(Prototype, extends_object(Prototype, Self), Prototypes).
|
||||
|
||||
|
||||
leaf(Leaf) :-
|
||||
self(Self),
|
||||
leaf(Self, Leaf).
|
||||
|
||||
|
||||
leaf(Self, Leaf) :-
|
||||
extends_object(Leaf, Self),
|
||||
\+ extends_object(_, Leaf).
|
||||
|
||||
leaf(Self, Leaf) :-
|
||||
extends_object(Object, Self),
|
||||
leaf(Object, Leaf).
|
||||
|
||||
|
||||
leaves(Leaves) :-
|
||||
self(Self),
|
||||
( setof(Leaf, leaf(Self, Leaf), Leaves) ->
|
||||
@@ -69,24 +56,19 @@
|
||||
; Leaves = []
|
||||
).
|
||||
|
||||
|
||||
descendant(Descendant) :-
|
||||
self(Self),
|
||||
descendant(Self, Descendant).
|
||||
|
||||
|
||||
descendant(Self, Descendant) :-
|
||||
extends_object(Descendant, Self).
|
||||
|
||||
descendant(Self, Descendant) :-
|
||||
extends_object(Descendant, Self),
|
||||
\+ extends_object(Descendant, Self).
|
||||
|
||||
descendant(Self, Descendant) :-
|
||||
extends_object(Subclass, Self),
|
||||
descendant(Subclass, Descendant).
|
||||
|
||||
|
||||
descendants(Descendants) :-
|
||||
self(Self),
|
||||
( setof(Descendant, descendant(Self, Descendant), Descendants) ->
|
||||
@@ -94,5 +76,4 @@
|
||||
; Descendants = []
|
||||
).
|
||||
|
||||
|
||||
:- end_category.
|
||||
|
Reference in New Issue
Block a user