MACHINE Bit_TYPE_Ops
SEES Bool_TYPE, Bit_TYPE
OPERATIONS
ss <-- NO_BITS = BEGIN ss := (1..32)*{FALSE} END;
ss <-- LFT_BTS(tt,nn) =
PRE
tt: BITS &
nn: 1..32
THEN
ss:= ( (tt\|/nn) ^ ((1..nn)*{FALSE}) )
END;
ss <-- RHT_BTS(tt,nn) =
PRE
tt :BITS &
nn :1..32
THEN
ss:=( ( (1..nn)*{first(tt)} ) ^ (tt/|\(32-nn)) )
END;
ss <-- CPL_BTS(tt) =
PRE
tt: BITS
THEN
ss:= ( tt;tcp )
END;
ss <-- LND_BTS(tt,uu) =
PRE
tt: BITS &
uu: BITS
THEN
ss:= ( (tt >< uu);tnd )
END;
ss <-- LOR_BTS(tt,uu) =
PRE
tt: BITS &
uu: BITS
THEN
ss:= ( (tt >< uu);tor )
END;
ss <-- LXR_BTS(tt,uu) =
PRE
tt: BITS &
uu: BITS
THEN
ss:= ( (tt >< uu);txr )
END;
ss <-- MSK_BTS(mm,nn) =
PRE
mm:0..32 &
nn:0..32 &
mm<=nn
THEN
ss:= ( ((1..32)*{FALSE}) <+ ((mm..nn)*{TRUE}) )
END;
ss <-- VMS_BTS(bb,mm,nn) =
PRE
bb:BITS &
mm:1..32 &
nn:1..32 &
mm<=nn
THEN
ss:= ((1..32)*{FALSE}) <+ ( bb\|/(mm-1)/|\(nn-mm+1) )
END;
ss <-- MMS_BTS(bb,mm,nn,vv) =
PRE
bb: BITS &
mm:1..32 &
nn:1..32 &
vv: BITS &
mm<=nn
THEN
LET cc BE
cc = vv \|/ (32-nn+mm-1)
IN
ss:= ( bb/|\(mm-1) ^ cc ^ (bb\|/nn) )
END
END;
ss <-- VAL_BTS(bb,nn) =
PRE
bb : BITS &
nn : 1..32 &
bb(nn) : BOOL
THEN
ss := bb(nn)
END;
ss <-- STO_BTS(bb,nn,vv) =
PRE
bb : BITS &
nn : 1..32 &
vv : BOOL
THEN
ss := bb <+ {nn |-> vv}
END
END
Analysed Constructs
Hypertext Constructs Page
On-line Help
Help Contents Page
Index
Document Last Updated: Wed Aug 25 17:35:31 1999

B-Toolkit Beta 4.55