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

⟦eaed829ec⟧ TextFile

    Length: 9671 (0x25c7)
    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 Binary_Dispatch (Type_Desc  : Type_Descriptor;
                           Exp_1      : Expression;
                           Exp_1_Kind : Expression_Kind;
                           Exp_2      : Expression;
                           Exp_2_Kind : Expression_Kind) is
    pragma Routine_Number (Runtime_Ids.Internal);
    pragma Suppress_All;

    -- The implementation of Binary_Dispatch is by double instantiations
    -- of Unary_Dispatch.

    procedure Exp_1_2_Value_Op (Exp_1 : Expression) is
        pragma Routine_Number (Runtime_Ids.Internal);

        procedure Exp_2_Value_Op (Exp_2 : Expression) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Value_Op (Exp_1, Exp_2);
        end Exp_2_Value_Op;
        -- pragma Inline (Exp_2_Value_Op);

        procedure Exp_2_Data_Op (Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Value_Data_Op (Exp_1, Exp_2_Data);
        end Exp_2_Data_Op;
        -- pragma Inline (Exp_2_Data_Op);

        -- Since Exp_1 is a value, Exp_2 cannot be an unconstrained
        -- array or record.
        procedure Dispatch_2 is new Unary_Dispatch
                                       (Unary_Value_Op => Exp_2_Value_Op,
                                        Unary_Data_Op => Exp_2_Data_Op,
                                        Unary_Unconstrained_Array_Op =>
                                           Bogus_Unconstrained_Array_Op,
                                        Unary_Unconstrained_Record_Op =>
                                           Bogus_Unconstrained_Record_Op,
                                        Get_Value_Size => Get_Value_Size);
        -- pragma Inline (Dispatch_2);
    begin
        Dispatch_2 (Type_Desc, Exp_2, Exp_2_Kind);
    end Exp_1_2_Value_Op;
    -- pragma Inline (Exp_1_2_Value_Op);


    procedure Exp_1_2_Data_Op (Exp_1_Data : in out Data) is
        pragma Routine_Number (Runtime_Ids.Internal);

        procedure Exp_2_Value_Op (Exp_2 : Expression) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Data_Value_Op (Exp_1_Data, Exp_2);
        end Exp_2_Value_Op;
        -- pragma Inline (Exp_2_Value_Op);


        procedure Exp_2_Data_Op (Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Data_Op (Exp_1_Data, Exp_2_Data);
        end Exp_2_Data_Op;
        -- pragma Inline (Exp_2_Data_Op);


        procedure Exp_2_Unconstrained_Array_Op (Exp_2_Dope :        Dope_Vector;  
                                                Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);

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

            Dope_Ref   : constant Dv_Subtype.Dope_Ref :=
               Dv_Subtype.Cnvt (Get_Dope_Vector_Address
                                   (Type_Desc.Constraints));
            Exp_1_Dope : Dv_Subtype.Actual_Dope renames Dope_Ref.all;

        begin
            Binary_Unconstrained_Array_Op (Exp_1_Dope => Exp_1_Dope,
                                           Exp_1_Data => Exp_1_Data,  
                                           Exp_2_Dope => Exp_2_Dope,
                                           Exp_2_Data => Exp_2_Data);
        end Exp_2_Unconstrained_Array_Op;
        -- pragma Inline (Exp_2_Unconstrained_Array_Op);


        procedure Exp_2_Unconstrained_Record_Op
                     (Exp_2_Constrained : Boolean; Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Unconstrained_Record_Op  
               (Exp_1_Constrained => True,
                Exp_1_Data        => Exp_1_Data,  
                Exp_2_Constrained => Exp_2_Constrained,
                Exp_2_Data        => Exp_2_Data);
        end Exp_2_Unconstrained_Record_Op;
        -- pragma Inline (Exp_2_Unconstrained_Record_Op);


        procedure Dispatch_2 is new Unary_Dispatch
                                       (Unary_Value_Op => Exp_2_Value_Op,
                                        Unary_Data_Op => Exp_2_Data_Op,
                                        Unary_Unconstrained_Array_Op =>
                                           Exp_2_Unconstrained_Array_Op,
                                        Unary_Unconstrained_Record_Op =>
                                           Exp_2_Unconstrained_Record_Op,
                                        Get_Value_Size => Get_Value_Size);
        -- pragma Inline (Dispatch_2);
    begin
        Dispatch_2 (Type_Desc, Exp_2, Exp_2_Kind);
    end Exp_1_2_Data_Op;
    -- pragma Inline (Exp_1_2_Data_Op);


    procedure Exp_1_2_Unconstrained_Array_Op  
                 (Exp_1_Dope :        Dope_Vector;  
                  Exp_1_Data : in out Data) is
        pragma Routine_Number (Runtime_Ids.Internal);

        procedure Exp_2_Data_Op (Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);

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

            Dope_Ref   : constant Dv_Subtype.Dope_Ref :=
               Dv_Subtype.Cnvt (Get_Dope_Vector_Address
                                   (Type_Desc.Constraints));
            Exp_2_Dope : Dv_Subtype.Actual_Dope renames Dope_Ref.all;
        begin
            Binary_Unconstrained_Array_Op (Exp_1_Dope, Exp_1_Data,  
                                           Exp_2_Dope, Exp_2_Data);
        end Exp_2_Data_Op;
        -- pragma Inline (Exp_2_Data_Op);

        procedure Exp_2_Unconstrained_Array_Op (Exp_2_Dope :        Dope_Vector;  
                                                Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Unconstrained_Array_Op (Exp_1_Dope, Exp_1_Data,  
                                           Exp_2_Dope, Exp_2_Data);
        end Exp_2_Unconstrained_Array_Op;
        -- pragma Inline (Exp_2_Unconstrained_Array_Op);

        procedure Dispatch_2 is new Unary_Dispatch
                                       (Unary_Value_Op => Bogus_Value_Op,
                                        Unary_Data_Op => Exp_2_Data_Op,
                                        Unary_Unconstrained_Array_Op =>
                                           Exp_2_Unconstrained_Array_Op,
                                        Unary_Unconstrained_Record_Op =>
                                           Bogus_Unconstrained_Record_Op,
                                        Get_Value_Size => Get_Value_Size);
        -- pragma Inline (Dispatch_2);
    begin
        Dispatch_2 (Type_Desc, Exp_2, Exp_2_Kind);
    end Exp_1_2_Unconstrained_Array_Op;
    -- pragma Inline (Exp_1_2_Unconstrained_Array_Op);


    procedure Exp_1_2_Unconstrained_Record_Op  
                 (Exp_1_Constrained :        Boolean;  
                  Exp_1_Data        : in out Data) is
        pragma Routine_Number (Runtime_Ids.Internal);

        procedure Exp_2_Data_Op (Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Unconstrained_Record_Op
               (Exp_1_Constrained => Exp_1_Constrained,
                Exp_1_Data        => Exp_1_Data,  
                Exp_2_Constrained => True,
                Exp_2_Data        => Exp_2_Data);
        end Exp_2_Data_Op;
        -- pragma Inline (Exp_2_Data_Op);

        procedure Exp_2_Unconstrained_Record_Op (Exp_2_Constrained : Boolean;  
                                                 Exp_2_Data : in out Data) is
            pragma Routine_Number (Runtime_Ids.Internal);
        begin
            Binary_Unconstrained_Record_Op (Exp_1_Constrained, Exp_1_Data,
                                            Exp_2_Constrained, Exp_2_Data);
        end Exp_2_Unconstrained_Record_Op;
        -- pragma Inline (Exp_2_Unconstrained_Record_Op);

        procedure Dispatch_2 is new Unary_Dispatch
                                       (Unary_Value_Op => Bogus_Value_Op,
                                        Unary_Data_Op => Exp_2_Data_Op,
                                        Unary_Unconstrained_Array_Op =>
                                           Bogus_Unconstrained_Array_Op,
                                        Unary_Unconstrained_Record_Op =>
                                           Exp_2_Unconstrained_Record_Op,
                                        Get_Value_Size => Get_Value_Size);
        -- pragma Inline (Dispatch_2);
    begin
        Dispatch_2 (Type_Desc, Exp_2, Exp_2_Kind);
    end Exp_1_2_Unconstrained_Record_Op;
    -- pragma Inline (Exp_1_2_Unconstrained_Record_Op);


    procedure Dispatch_1 is new Unary_Dispatch (Exp_1_2_Value_Op,  
                                                Exp_1_2_Data_Op,  
                                                Exp_1_2_Unconstrained_Array_Op,  
                                                Exp_1_2_Unconstrained_Record_Op,  
                                                Get_Value_Size);
    -- pragma Inline (Dispatch_1);
begin
    Dispatch_1 (Type_Desc, Exp_1, Exp_1_Kind);
end Binary_Dispatch;
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);