|
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 - download
Length: 11264 (0x2c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Structure_Array, seg_04ae09
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io, Structure, Generic_String_Sort_Array; package body Structure_Array is package S_Array is new Generic_String_Sort_Array (Element => Structure.Object, Max_Element_Number => Max_Element, Null_Element => Structure.Null_Object, Get_Key => Structure.Name, Show_Element => Structure.Show); The_Array : S_Array.Object := S_Array.Null_Object; procedure Put (Old_Name : in String; New_Name : in Identifier.Object; Ok : out Boolean) is New_Structure : Structure.Object; Local_Ok : Boolean; begin S_Array.Get (The_Array, New_Structure, Old_Name, Local_Ok); if Local_Ok then Structure.Put_Name (New_Structure, New_Name); S_Array.Put (The_Array, New_Structure, Ok); else Ok := False; end if; end Put; procedure Create_Number_Field (Structure_Name : in Identifier.Object; Field_Index : in Positive; Ok : out Boolean) is A_Structure : Structure.Object; Local_Ok : Boolean; begin Ok := False; S_Array.Get (The_Array, A_Structure, Identifier.Image (Structure_Name), Local_Ok); if Local_Ok then Structure.Create_Number_Field (A_Structure, Field_Index, Ok); S_Array.Put (The_Array, A_Structure); end if; end Create_Number_Field; procedure Create_Sentence_Field (Structure_Name : in Identifier.Object; Field_Index : in Positive; Ok : out Boolean) is A_Structure : Structure.Object; Local_Ok : Boolean; begin Ok := False; S_Array.Get (The_Array, A_Structure, Identifier.Image (Structure_Name), Local_Ok); if Local_Ok then Structure.Create_Sentence_Field (A_Structure, Field_Index, Ok); S_Array.Put (The_Array, A_Structure); end if; end Create_Sentence_Field; procedure Create_Enumerate_Field (Structure_Name : in Identifier.Object; Field_Index : in Positive; Ok : out Boolean) is A_Structure : Structure.Object; Local_Ok : Boolean; begin Ok := False; S_Array.Get (The_Array, A_Structure, Identifier.Image (Structure_Name), Local_Ok); if Local_Ok then Structure.Create_Enumerate_Field (A_Structure, Field_Index, Ok); S_Array.Put (The_Array, A_Structure); end if; end Create_Enumerate_Field; procedure Field_Put_Number (Structure_Name : in Identifier.Object; Field_Index : in Positive; Number : in Integer; Ok : out Boolean) is A_Structure : Structure.Object; Local_Ok : Boolean; begin Ok := False; S_Array.Get (The_Array, A_Structure, Identifier.Image (Structure_Name), Local_Ok); if Local_Ok then Structure.Field_Put_Number (A_Structure, Field_Index, Number, Ok); S_Array.Put (The_Array, A_Structure); end if; end Field_Put_Number; procedure Field_Put_Sentence (Structure_Name : in Identifier.Object; Field_Index : in Positive; Sentence : in Identifier.Object; Ok : out Boolean) is A_Structure : Structure.Object; Local_Ok : Boolean; begin Ok := False; S_Array.Get (The_Array, A_Structure, Identifier.Image (Structure_Name), Local_Ok); if Local_Ok then Structure.Field_Put_Sentence (A_Structure, Field_Index, Sentence, Ok); S_Array.Put (The_Array, A_Structure); end if; end Field_Put_Sentence; procedure Field_Put_Enumerate (Structure_Name : in Identifier.Object; Field_Index : in Positive; Enumeration, Literal : in Positive; Ok : out Boolean) is A_Structure : Structure.Object; Local_Ok : Boolean; begin Ok := False; S_Array.Get (The_Array, A_Structure, Identifier.Image (Structure_Name), Local_Ok); if Local_Ok then Structure.Field_Put_Enumerate (A_Structure, Field_Index, Enumeration, Literal, Ok); S_Array.Put (The_Array, A_Structure); end if; end Field_Put_Enumerate; procedure Get_Subject (Structure_Name : in String; Subject : out Complement.Object; Ok : out Boolean) is A_Structure : Structure.Object; begin S_Array.Get (The_Array, A_Structure, Structure_Name, Ok); Subject := Structure.Subject (A_Structure); end Get_Subject; procedure Show is begin Text_Io.Put_Line ("Structure Array :"); S_Array.Show (The_Array); end Show; function Subject (Structure_Name : in String) return Complement.Object is A_Structure : Structure.Object; Local_Ok : Boolean; begin S_Array.Get (The_Array, A_Structure, Structure_Name, Local_Ok); if Local_Ok then return Structure.Subject (A_Structure); else return Complement.Null_Object; end if; end Subject; function Belong (Structure_Name : in String) return Boolean is begin return S_Array.Belong (The_Array, Structure_Name); end Belong; begin S_Array.Put (The_Array, Structure.Animate_Object); S_Array.Put (The_Array, Structure.Place_Object); S_Array.Put (The_Array, Structure.Entity_Object); end Structure_Array;
nblk1=a nid=6 hdr6=10 [0x00] rec0=1c rec1=00 rec2=01 rec3=016 [0x01] rec0=1d rec1=00 rec2=04 rec3=018 [0x02] rec0=1a rec1=00 rec2=09 rec3=02c [0x03] rec0=1a rec1=00 rec2=03 rec3=012 [0x04] rec0=19 rec1=00 rec2=05 rec3=08c [0x05] rec0=05 rec1=00 rec2=02 rec3=06c [0x06] rec0=23 rec1=00 rec2=08 rec3=058 [0x07] rec0=08 rec1=00 rec2=07 rec3=000 [0x08] rec0=13 rec1=00 rec2=07 rec3=001 [0x09] rec0=0d rec1=0c rec2=76 rec3=4f7 tail 0x2174f861086777ed4be9a 0x42a00088462060003 Free Block Chain: 0x6: 0000 00 0a 00 0c 80 09 20 20 70 72 6f 63 65 64 75 09 ┆ procedu ┆ 0xa: 0000 00 00 00 04 80 01 20 01 02 02 20 20 02 02 02 02 ┆ ┆