|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 11264 (0x2c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Attribute, seg_0499b1, seg_049a42, seg_049a61
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Text_Io, Complement_Array, Enumerate_Array;
package body Attribute is
procedure Put (Item : out Object;
An_Objet : in Objet.Object;
A_Detail : in Detail.Object) is
begin
Item.The_Objet := An_Objet;
Item.The_Detail := A_Detail;
end Put;
procedure Affect (Item : in Object; Number : Integer; Ok : out Boolean) is
begin
if Is_A_Number (Item) and Detail.Exist (Item.The_Detail) then
Complement_Array.Field_Put_Number
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail), Number, Ok);
else
Ok := False;
end if;
end Affect;
procedure Affect (Item : in Object;
Enumeration, Literal : in Positive;
Ok : out Boolean) is
Attribute_Enumeration : Natural;
begin
if Detail.Exist (Item.The_Detail) then
Attribute_Enumeration := (Complement_Array.Field_Enumeration
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail)));
if Is_An_Enumerate (Item) and
(Attribute_Enumeration = Enumeration) then
Complement_Array.Field_Put_Enumerate
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail), Enumeration, Literal, Ok);
Ok := True;
elsif (Attribute_Enumeration =
Enumerate_Array.Enumeration_Index ("special") or
Attribute_Enumeration =
Enumerate_Array.Enumeration_Index ("normal")) and
(Enumeration =
Enumerate_Array.Enumeration_Index ("special") or
Enumeration = Enumerate_Array.Enumeration_Index
("normal")) then
Complement_Array.Field_Put_Enumerate
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail), Enumeration, Literal, Ok);
Ok := True;
else
Ok := False;
end if;
else
Ok := False;
end if;
end Affect;
procedure Show (Item : in Object) is
begin
Text_Io.Put_Line ("Attribute :");
Objet.Show (Item.The_Objet);
Detail.Show (Item.The_Detail);
if Is_A_Number (Item) then
Text_Io.Put_Line ("Number : " & Image (Item));
elsif Is_A_Sentence (Item) then
Text_Io.Put_Line ("Sentence : " & Image (Item));
elsif Is_An_Enumerate (Item) then
Text_Io.Put_Line ("Enumerate : " & Image (Item));
else
Text_Io.New_Line;
end if;
end Show;
function Is_A_Number (Item : in Object) return Boolean is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Is_A_Number
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return False;
end if;
end Is_A_Number;
function Is_A_Sentence (Item : in Object) return Boolean is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Is_A_Sentence
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return False;
end if;
end Is_A_Sentence;
function Is_An_Enumerate (Item : in Object) return Boolean is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Is_An_Enumerate
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return False;
end if;
end Is_An_Enumerate;
function Exist (Item : in Object) return Boolean is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Belong
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return False;
end if;
end Exist;
function Image (Item : in Object) return String is
begin
if Is_A_Number (Item) then
return Integer'Image (Number (Item));
elsif Is_A_Sentence (Item) then
return Sentence (Item);
elsif Is_An_Enumerate (Item) then
return Enumerate_Array.Literal (Literal (Item));
else
return "";
end if;
end Image;
function Number (Item : in Object) return Integer is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Number
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return 0;
end if;
end Number;
function Sentence (Item : in Object) return String is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Sentence
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return "";
end if;
end Sentence;
function Enumeration (Item : in Object) return Natural is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Enumeration
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return 0;
end if;
end Enumeration;
function Literal (Item : in Object) return Natural is
begin
if Detail.Exist (Item.The_Detail) then
return Complement_Array.Field_Literal
(Objet.Complement (Item.The_Objet),
Detail.Index (Item.The_Detail));
else
return 0;
end if;
end Literal;
end Attribute;
nblk1=a
nid=4
hdr6=e
[0x00] rec0=16 rec1=00 rec2=01 rec3=008
[0x01] rec0=17 rec1=00 rec2=02 rec3=030
[0x02] rec0=1a rec1=00 rec2=03 rec3=03a
[0x03] rec0=1e rec1=00 rec2=0a rec3=00e
[0x04] rec0=20 rec1=00 rec2=08 rec3=04e
[0x05] rec0=21 rec1=00 rec2=05 rec3=05c
[0x06] rec0=19 rec1=00 rec2=06 rec3=000
[0x07] rec0=1c rec1=00 rec2=06 rec3=05c
[0x08] rec0=16 rec1=00 rec2=04 rec3=000
[0x09] rec0=2d rec1=0c rec2=94 rec3=41a
tail 0x2174dfbb6865f7f3bee1e 0x42a00088462060003
Free Block Chain:
0x4: 0000 00 07 02 91 80 0b 54 68 65 5f 4f 62 6a 65 74 29 ┆ The_Objet)┆
0x7: 0000 00 09 03 fc 80 03 68 65 6e 03 00 3e 20 20 20 20 ┆ hen > ┆
0x9: 0000 00 00 00 6a 80 01 6e 01 00 3c 20 20 20 20 20 20 ┆ j n < ┆