DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦35a17cd48⟧ TextFile

    Length: 3881 (0xf29)
    Types: TextFile
    Names: »B«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦this⟧ 

TextFile

separate (Shared_Code_Generic_Support)
procedure Unary_Dispatch (Type_Desc : Type_Descriptor;
                          Exp       : Expression;
                          Exp_Kind  : Expression_Kind) is
    pragma Suppress_All;
    pragma Routine_Number (Runtime_Ids.Internal);

    Exp_Data_Kind : constant Data_Kind :=
       Data_Kind_Of (Type_Desc.Type_Kind, Exp_Kind);
begin
    case Exp_Data_Kind is
        when Undefined =>
            null;

        when Value =>
            Unary_Value_Op (Exp);

        when Data_Ptr =>
            declare
                package Data_Subtype is
                   new Establish_Data_Subtype
                          (Get_Value_Size (Type_Desc, Exp, Exp_Kind));

                Exp_Data_Ref : constant Data_Subtype.Data_Ref :=
                   Data_Subtype.Cnvt (Exp);
                Exp_Data : Data_Subtype.Actual_Data renames Exp_Data_Ref.all;
            begin
                Unary_Data_Op (Exp_Data);
            end;

        when Dv_Data_Ptr =>
            declare  
                Dope_Vector_Size : constant Integer :=
                   Get_Dope_Vector_Size (Type_Desc.Constraints);
                package Dv_Subtype is
                   new Establish_Dope_Vector_Subtype (Dope_Vector_Size);

                Exp_Dope_Ref : constant Dv_Subtype.Dope_Ref :=
                   Dv_Subtype.Cnvt (Exp);
                Exp_Dope     : Dv_Subtype.Actual_Dope renames Exp_Dope_Ref.all;

                package Data_Subtype is
                   new Establish_Data_Subtype (Exp_Dope (1).Size);

                Exp_Data_Ref : constant Data_Subtype.Data_Ref :=
                   Data_Subtype.Cnvt (System.Address (Exp) + Dope_Vector_Size);
                Exp_Data : Data_Subtype.Actual_Data renames Exp_Data_Ref.all;
            begin
                Unary_Unconstrained_Array_Op (Exp_Dope, Exp_Data);
            end;

        when Unconstrained_Array_Desc_Ptr =>
            declare
                Uncons_Desc_Ref : constant Unconstrained_Descriptor_Ref :=  
                   Cnvt (Exp);

                package Dv_Subtype is
                   new Establish_Dope_Vector_Subtype
                          (Get_Dope_Vector_Size (Type_Desc.Constraints));

                Exp_Dope_Ref : constant Dv_Subtype.Dope_Ref :=  
                   Dv_Subtype.Cnvt (Uncons_Desc_Ref.all.Constraint);
                Exp_Dope     : Dv_Subtype.Actual_Dope renames Exp_Dope_Ref.all;

                package Data_Subtype is
                   new Establish_Data_Subtype (Exp_Dope (1).Size);

                Exp_Data_Ref : constant Data_Subtype.Data_Ref :=
                   Data_Subtype.Cnvt (Uncons_Desc_Ref.all.Data);
                Exp_Data : Data_Subtype.Actual_Data renames Exp_Data_Ref.all;
            begin
                Unary_Unconstrained_Array_Op (Exp_Dope, Exp_Data);
            end;

        when Unconstrained_Record_Desc_Ptr =>
            declare
                Uncons_Desc_Ref : constant Unconstrained_Descriptor_Ref :=  
                   Cnvt (Exp);

                package Data_Subtype is
                   new Establish_Data_Subtype
                          (Get_Value_Size (Type_Desc, Exp, Exp_Kind));

                Exp_Constrained_Ref : constant Boolean_Ref :=
                   Cnvt (Uncons_Desc_Ref.all.Constraint'Address);
                Exp_Constrained : Boolean renames Exp_Constrained_Ref.all;
                Exp_Data_Ref : constant Data_Subtype.Data_Ref :=
                   Data_Subtype.Cnvt (Uncons_Desc_Ref.all.Data);
                Exp_Data : Data_Subtype.Actual_Data renames Exp_Data_Ref.all;
            begin  
                Unary_Unconstrained_Record_Op (Exp_Constrained, Exp_Data);
            end;
    end case;
end Unary_Dispatch;
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);