MACHINE Rename_set(VALUE,maxcrd)
SEES Bool_TYPE
VARIABLES Rename_sset,Rename_ordn
INVARIANT
Rename_sset: FIN(VALUE) &
Rename_ordn: perm(Rename_sset) &
card(Rename_sset)<=maxcrd
INITIALISATION Rename_sset,Rename_ordn:={},<>
OPERATIONS
bb <-- Rename_FUL_SET =
BEGIN
bb:=bool(card(Rename_sset)=maxcrd)
END;
bb <-- Rename_XST_IDX_SET(ii) =
PRE
ii: 1..maxcrd
THEN
bb:=bool(ii:1..card(Rename_sset))
END;
nn <-- Rename_CRD_SET =
BEGIN
nn:=card(Rename_sset)
END;
vv <-- Rename_VAL_SET(ii) =
PRE
ii:1..card(Rename_sset)
THEN
vv:=Rename_ordn(ii)
END;
vv <-- Rename_ANY_SET =
PRE
not(Rename_sset= {})
THEN
vv:: Rename_sset
END;
Rename_CLR_SET =
BEGIN
Rename_sset := {} ||
Rename_ordn := <>
END;
Rename_ENT_SET(vv) =
PRE
vv: VALUE &
card(Rename_sset) < maxcrd
THEN
Rename_sset:=Rename_sset \/ {vv} ||
Rename_ordn::perm(Rename_sset \/ {vv})
END;
Rename_RMV_SET(vv) =
PRE
vv: VALUE
THEN
Rename_sset:=Rename_sset - {vv} ||
Rename_ordn::perm(Rename_sset - {vv})
END;
bb <-- Rename_MBR_SET(vv) =
PRE
vv: VALUE
THEN
bb:= bool(vv:Rename_sset)
END;
bb <-- Rename_EMP_SET =
BEGIN
bb:= bool(Rename_sset={})
END;
/************** save/restore host byte order **************/
Rename_SAV_SET= skip;
Rename_RST_SET =
ANY rset,rseq WHERE
rset: FIN(VALUE) &
rseq : perm(rset) &
card(rset) <= maxcrd
THEN
Rename_sset := rset ||
Rename_ordn := rseq
END;
/************** save/restore network byte order **************/
Rename_SAVN_SET= skip;
Rename_RSTN_SET =
ANY rset,rseq WHERE
rset: FIN(VALUE) &
rseq : perm(rset) &
card(rset) <= maxcrd
THEN
Rename_sset := rset ||
Rename_ordn := rseq
END
END
Analysed Constructs
Hypertext Constructs Page
On-line Help
Help Contents Page
Index
Document Last Updated: Wed Aug 25 17:36:54 1999

B-Toolkit Beta 4.55