Logtalk 2.20.0 files.

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1114 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
pmoura
2004-08-16 16:41:11 +00:00
parent 1781ff9420
commit f5e660b9a3
156 changed files with 1886 additions and 438 deletions

View File

@@ -1,6 +1,6 @@
=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.19.1
Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
=================================================================

View File

@@ -1,6 +1,6 @@
=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.19.1
Release 2.20.0
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
=================================================================

View File

@@ -5,13 +5,14 @@
:- info([
version is 3,
date is 2000/7/24,
version is 3.1,
date is 2004/8/15,
author is 'Paulo Moura',
comment is 'Enables the representation of relations with constraints on the state of participating objects.']).
:- uses(list).
:- uses(list,
[member/2, memberchk/2, subtract/3]).
:- private(activ_points_/3).
@@ -106,7 +107,7 @@
del_object_monitors(Object, Role) :-
::plays_roles(Object, Roles) ->
(list::member(Role, Roles) ->
(member(Role, Roles) ->
true
;
del_object_monitors(Object, Role, Roles))
@@ -145,7 +146,7 @@
activ_point(Role, Event, Message) :-
::activ_points_(Role, Event, Messages),
list::member(Message, Messages).
member(Message, Messages).
activ_points(Role, Event, List) :-
@@ -160,7 +161,7 @@
set_activ_points(Role, Event, List) :-
::descriptor(Descriptor),
list::memberchk(Role, Descriptor),
memberchk(Role, Descriptor),
::retractall(activ_points_(Role, Event, _)),
::assertz(activ_points_(Role, Event, List)).
@@ -174,7 +175,7 @@
filter_messages([Role| Roles], Original, Event, Messages) :-
::activ_points_(Role, Event, Excluded),
list::subtract(Original, Excluded, Rest),
subtract(Original, Excluded, Rest),
filter_messages(Roles, Rest, Event, Messages).
@@ -196,13 +197,13 @@
::descriptor(Descriptor),
write('call activation points:'), nl,
findall(Messages,
(list::member(Role, Descriptor),
(member(Role, Descriptor),
::activ_points(Role, before, Messages)),
CallList),
write(' '), writeq(CallList), nl,
write('exit activation points:'), nl,
findall(Messages,
(list::member(Role, Descriptor),
(member(Role, Descriptor),
::activ_points(Role, after, Messages)),
ExitList),
write(' '), writeq(ExitList), nl.

View File

@@ -6,15 +6,16 @@
:- info([
version is 1.1,
date is 2004/5/9,
version is 1.2,
date is 2004/8/15,
author is 'Esteban Zimanyi, Paulo Moura',
comment is 'Enables the representation of relations between independent objects.']).
:- uses(before_event_registry).
:- uses(after_event_registry).
:- uses(list).
:- uses(list,
[length/2, member/2, memberchk/2, nth1/3, same_length/2]).
tuple(Tuple) :-
@@ -33,7 +34,7 @@
add_tuple(Tuple) :-
::descriptor(Descriptor),
\+ list::same_length(Tuple, Descriptor),
\+ same_length(Tuple, Descriptor),
self(Self),
sender(Sender),
throw(error(invalid_length, Self::add_tuple(Tuple), Sender)).
@@ -49,8 +50,8 @@
add_tuple(Tuple) :-
::descriptor(Descriptor),
list::nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role),
nth1(Position, Tuple, Object),
nth1(Position, Descriptor, Role),
::cardinality(Role, _, Maximum),
::plays_role_n_times(Object, Role, Number),
Maximum = Number,
@@ -60,8 +61,8 @@
add_tuple(Tuple) :-
::descriptor(Descriptor),
list::nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role),
nth1(Position, Tuple, Object),
nth1(Position, Descriptor, Role),
::domain(Role, Domain),
(Domain::strict_instance ->
\+ Domain::valid(Object)
@@ -79,7 +80,7 @@
make_tuple_template([], [], _, []).
make_tuple_template([Object| Objects], [Role| Roles], Key, [Var| Rest]) :-
(list::member(Role, Key) ->
(member(Role, Key) ->
Var = Object
;
true),
@@ -94,8 +95,8 @@
remove_tuple(Tuple) :-
::descriptor(Descriptor),
list::nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role),
nth1(Position, Tuple, Object),
nth1(Position, Descriptor, Role),
::cardinality(Role, Minimum, _),
::plays_role_n_times(Object, Role, Number),
Minimum = Number,
@@ -115,34 +116,34 @@
number_of_tuples(Number) :-
findall(1, ::tuple_(_), List),
list::length(List, Number).
length(List, Number).
plays_roles(Object, Roles) :-
::descriptor(Descriptor),
setof(Role,
Tuple^Position^ (::tuple(Tuple),
list::member(Object, Tuple),
list::nth1(Position, Tuple, Object),
once(list::nth1(Position, Descriptor, Role))),
member(Object, Tuple),
nth1(Position, Tuple, Object),
once(nth1(Position, Descriptor, Role))),
Roles).
plays_role_in_tuple(Object, Role, Tuple) :-
::descriptor(Descriptor),
::tuple(Tuple),
list::nth1(Position, Tuple, Object),
list::nth1(Position, Descriptor, Role).
nth1(Position, Tuple, Object),
nth1(Position, Descriptor, Role).
plays_role_n_times(Object, Role, Number) :-
::descriptor(Descriptor),
list::nth1(Position, Descriptor, Role),
nth1(Position, Descriptor, Role),
setof(Tuple,
(::tuple(Tuple),
list::nth1(Position, Tuple, Object)),
nth1(Position, Tuple, Object)),
Tuples),
list::length(Tuples, Number).
length(Tuples, Number).
domains(Domains) :-
@@ -193,7 +194,7 @@
degree(Degree) :-
::descriptor_(Descriptor),
list::length(Descriptor, Degree).
length(Descriptor, Degree).
set_descriptor(Descriptor) :-
@@ -258,8 +259,8 @@
valid_keys([Key| Keys], Descriptor) :-
forall(
list::member(Role, Key),
list::memberchk(Role, Descriptor)),
member(Role, Key),
memberchk(Role, Descriptor)),
valid_keys(Keys, Descriptor).
@@ -294,7 +295,7 @@
set_delete_options(Options) :-
::descriptor(Descriptor),
\+ list::same_length(Options, Descriptor),
\+ same_length(Options, Descriptor),
self(Self),
sender(Sender),
throw(error(invalid_length, Self::set_delete_options(Options), Sender)).
@@ -413,7 +414,7 @@
del_monitors([Object| Objects]) :-
((instantiates_class(Object, Class),
\+ (::tuple(Other), list::member(Object, Other))) ->
\+ (::tuple(Other), member(Object, Other))) ->
self(Self),
before_event_registry::del_monitors(Class, delete(Object, _), _, Self)
;