This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/examples/inheritance/interface.lgt
pmoura 4569fca292 Logtalk 2.29.5 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1858 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2007-03-28 22:44:31 +00:00

29 lines
784 B
Plaintext

/*
This category defines a predicate, interface/0, that prints an object
interface, i.e. predicate names and the corresponding scope properties.
We need to encapsulate the interface/0 predicate in a category instead
of just defining it in a root object in order to be able to list private
object predicates.
*/
:- category(interface).
:- public(interface/0).
:- mode(interface, one).
interface :-
forall(
(::current_predicate(Functor/Arity),
functor(Pred, Functor, Arity),
Pred \= interface),
(::predicate_property(Pred, Prop),
scope_property(Prop), % we are only interested on scope properties
writeq(Functor/Arity), write(' - '), writeq(Prop), nl)).
scope_property(public).
scope_property(protected).
scope_property(private).
:- end_category.