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

⟦b780b4cca⟧ Ada Source

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

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 Box;

    type Box_Ptr is access 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);

    type Kind_Of_Values is (Undef, Bool, Int, Enum,
                            Chaine, Ref2struct, Ref2att);

    subtype My_String is Bounded_String.Variable_String (128);

    No_Natural_Value : exception;
    No_Boolean_Value : exception;
    No_String_Value : exception;

    type Value (Kind : Kind_Of_Values := Undef) is
        record
            case Kind is
                when Undef =>
                    null;
                when Int =>
                    The_Natural : Natural;  
                when Bool =>
                    The_Boolean : Boolean;
                when Chaine =>
                    The_String : My_String;  
                when Enum =>
                    Enum_String : My_String;
                when Ref2struct =>
                    The_Refs : Liste_Structure.Listiter;  
                when Ref2att =>
                    The_Refa : Liste_Attribut.Listiter;
            end case;
        end record;

    subtype My_List is String_Table.Int_List.List;

    type Box is
        record
            The_Type : Kind_Of_Values := Undef;
            Id : My_String;
            Val : Value;
            Acc : My_List := String_Table.Int_List.Create;
        end record;

    procedure Set_Iter (In_List : Liste_Structure.List;
                        With_Liste : Liste_Structure.List);
    procedure Copy (Pbox : in out Box_Ptr; B : in Box);
    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 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 New_Value (V : out Value);

    function Kind_Of (V : in Value) return Kind_Of_Values;

    function Value_As (V : in Value) return Natural;

    function Value_As (V : in Value) return Boolean;
   function Value_As (V : in Value) return String;

    function Value_As (V : in Value) return Liste_Structure.Listiter;
    function Value_As (V : in Value) return Liste_Attribut.Listiter;
    function Equal (V1 : in Value; V2 : in Value) return Boolean;

    function Image (V : in Value) return String;

    procedure Image (L : in My_List);

    procedure Image (B : in Box);

    procedure Undefine (V : in out Value);

    procedure Set_To (V : in out Value; I : in Natural);

    procedure Set_To (V : in out Value; B : in Boolean);

    procedure Set_To (V : in out Value; S : in String);

    procedure Set_To (V : in out Value; I : in Liste_Structure.Listiter);
    procedure Set_To (V : in out Value; I : in Liste_Attribut.Listiter);

    procedure Set_Id (B : in out Box; S : in String);

    procedure Set_Type (B : in out Box; E : in Kind_Of_Values);

    procedure Set_Acc (B : in out Box; L : in My_List);

    procedure Set_Val (B : in out Box; S : in String);

    procedure Set_Val (B : in out Box; Bo : in Boolean);

    procedure Set_Val (B : in out Box; I : in Natural);

    procedure Set_Val (B : in out Box; Its : in Liste_Structure.Listiter);
    procedure Set_Val (B : in out Box; It : in Liste_Attribut.Listiter);
    procedure Dispose (V : in out Value);
end Struct_Component;

E3 Meta Data

    nblk1=7
    nid=7
    hdr6=c
        [0x00] rec0=27 rec1=00 rec2=01 rec3=012
        [0x01] rec0=1c rec1=00 rec2=06 rec3=01a
        [0x02] rec0=00 rec1=00 rec2=03 rec3=014
        [0x03] rec0=1c rec1=00 rec2=02 rec3=002
        [0x04] rec0=1d rec1=00 rec2=04 rec3=046
        [0x05] rec0=0b rec1=00 rec2=05 rec3=000
        [0x06] rec0=05 rec1=00 rec2=05 rec3=001
    tail 0x2174903e2865139e1716d 0x42a00088462060003
Free Block Chain:
  0x7: 0000  00 00 00 04 80 01 20 01 02 03 04 05 06 07 08 09  ┆                ┆