DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦bcb71c858⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Struct_Component, seg_047eab

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Lists, String_Table, Bounded_String, Text_Io;
package Struct_Component is

    type Kind_Of_Box is (Chaine, Number, Struct, Enum, Bool, Undef);

    type Data_Box (Box_Type : Kind_Of_Box := Undef);

    type Box_Ptr is access Data_Box;

    type Attribut is
        record
            Name : String_Table.I_String;
            Data : Box_Ptr;
        end record;

    package Liste_Attribut is new Lists (Attribut);

    type Structure is
        record
            Name : String_Table.I_String;
            Attribut : Liste_Attribut.List;
        end record;

    package Liste_Structure is new Lists (Structure);

    subtype I_String is String_Table.I_String;

    subtype Enum_List is String_Table.Int_List.List;

    type Data_Box (Box_Type : Kind_Of_Box := Undef) is
        record
            Name : I_String;
            case Box_Type is  
                when Undef =>
                    null;
                when Chaine =>
                    The_String : I_String;
                when Number =>
                    The_Number : Natural;
                when Struct =>
                    The_Structure : Liste_Structure.Listiter;
                    From_List : Liste_Structure.List;
                when Enum =>
                    Current_Enum : I_String;
                    List_Of_Enum : Enum_List;
                when Bool =>
                    The_Boolean : Boolean;
            end case;
        end record;

    function Create return Attribut;
    function Create return Structure;

    procedure Is_Inside (Name : in String;
                         In_The_List : in Liste_Attribut.List;
                         Iterator : in out Liste_Attribut.Listiter;
                         Ok : in out Boolean);

    procedure Is_Inside (Name : in String;
                         In_The_List : in Liste_Structure.List;
                         Iterator : in out Liste_Structure.Listiter;
                         Ok : in out Boolean);

    procedure Is_Inside_All (Name : in String;
                             Iterator : in out Liste_Structure.Listiter;
                             Found : in out Boolean);

    procedure Image (Of_A_Structure_List : in Liste_Structure.List);

    procedure Image (Of_An_Attribut_List : in Liste_Attribut.List);

    function Permute (List : in Liste_Structure.List)
                     return Liste_Structure.List;

    function Permute (List : in Liste_Attribut.List) return Liste_Attribut.List;

    procedure Image (L : in Enum_List);
   
     function Get_Value(Att : in Attribut) return String_Table.I_String;
    function Get_Value(Att : in Attribut) return Natural;
     function Get_Value(Att : in Attribut) return Liste_Structure.ListIter; 
      function Get_Value(Att : in Attribut) return Boolean;
     function Get_Value(struc : in Structure) return Liste_Attribut.List;
    function Get_Name(struc : in Structure) return String_Table.I_String;
    function Get_Name(Att : in Attribut) return String_Table.I_String;  
        Procedure Set_Value(att : in out Attribut, Str : String_Table.I_String); 
     Procedure Set_Value(att : in out Attribut, nbr : Natural);
     Procedure Set_Value(att : in out Attribut, itr : Liste_Structure.ListIter);
    Procedure Set_Value(att : in out Attribut, abool : Boolean); 
    function Set_String (Name : in String; Value : in String) return Data_Box;
    function Set_String (Name : in I_String; Value : in String) return Data_Box;  
    function Set_String
                (Name : in I_String; Value : in I_String) return Data_Box;

    function Set_Number (Name : in String; Value : in String) return Data_Box;
    function Set_Number (Name : in I_String; Value : in String) return Data_Box;
    function Set_Number
                (Name : in I_String; Value : in Natural) return Data_Box;

    function Set_Structure (Name : in String;
                            Value : in Liste_Structure.Listiter;
                            With_List : Liste_Structure.List) return Data_Box;
    function Set_Structure (Name : in I_String;
                            Value : in Liste_Structure.Listiter;
                            With_List : Liste_Structure.List) return Data_Box;

    function Set_Enum
                (Name : in String; Value : in String; List_Enum : in Enum_List)
                return Data_Box;
    function Set_Enum (Name : in I_String;
                       Value : in String;
                       List_Enum : in Enum_List) return Data_Box;
    function Set_Enum (Name : in I_String;
                       Value : in I_String;
                       List_Enum : in Enum_List) return Data_Box;

    function Set_Boolean (Name : in String; Value : in Boolean) return Data_Box;
    function Set_Boolean
                (Name : in I_String; Value : in Boolean) return Data_Box;

    procedure Image (A_Box : in Data_Box);
    procedure Copy (Dest_Box : in out Data_Box; Source_Box : in Data_Box);
    procedure Copy (Dest_Box : in out Box_Ptr; Source_Box : in Data_Box);
end Struct_Component;


E3 Meta Data

    nblk1=7
    nid=7
    hdr6=c
        [0x00] rec0=26 rec1=00 rec2=01 rec3=004
        [0x01] rec0=18 rec1=00 rec2=02 rec3=088
        [0x02] rec0=17 rec1=00 rec2=04 rec3=04c
        [0x03] rec0=11 rec1=00 rec2=03 rec3=01c
        [0x04] rec0=14 rec1=00 rec2=06 rec3=042
        [0x05] rec0=05 rec1=00 rec2=05 rec3=000
        [0x06] rec0=05 rec1=00 rec2=05 rec3=001
    tail 0x2174bc68c86577f2f7bd3 0x42a00088462060003
Free Block Chain:
  0x7: 0000  00 00 00 04 80 01 20 01 02 03 04 05 06 07 08 09  ┆                ┆