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

⟦09db58998⟧ TextFile

    Length: 2534 (0x9e6)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦e24fb53b7⟧ 
            └─⟦this⟧ 

TextFile

separate (Generic_Expression)
package body Binary_Expression is
    function Make (The_Operator      : System_Defined.Operators;
                   The_Left_Operand  : Generic_Expression.Object;
                   The_Right_Operand : Generic_Expression.Object)
                  return Object is
    begin
        return Object'(Owner               => System,
                       The_System_Operator => The_Operator,
                       The_Left_Operand    => The_Left_Operand,
                       The_Right_Operand   => The_Right_Operand);
    end Make;

    function Make (The_Operator      : User_Defined_Operators;
                   The_Left_Operand  : Generic_Expression.Object;
                   The_Right_Operand : Generic_Expression.Object)
                  return Object is
    begin
        return Object'(Owner             => User,
                       The_User_Operator => The_Operator,
                       The_Left_Operand  => The_Left_Operand,
                       The_Right_Operand => The_Right_Operand);
    end Make;

    procedure Put (The_Object : Object; Where : Output_Stream.Object) is
        use Output_Stream;
    begin
        Put (The_Object.The_Left_Operand, Where);
        case The_Object.Owner is
            when System =>
                Put (" " &
                     System_Defined.Image (The_Object.The_System_Operator) &  
                     " ", Where);
            when User =>
                Put (" " & User_Defined_Image (The_Object.The_User_Operator) &  
                     " ", Where);
        end case;
        Put (The_Object.The_Right_Operand, Where);

    end Put;


    function Evaluate (The_Object : Object) return Integer is  
        The_Left_Value, The_Right_Value : Integer;
    begin
        The_Left_Value  := Evaluate (The_Object.The_Left_Operand);
        The_Right_Value := Evaluate (The_Object.The_Right_Operand);
        case The_Object.Owner is
            when System =>
                return System_Defined.Evaluate
                          (Using_Operator => The_Object.The_System_Operator,
                           Left           => The_Left_Value,
                           Right          => The_Right_Value);
            when User =>
                return User_Defined_Evaluate
                          (Using_Operator => The_Object.The_User_Operator,
                           Left           => The_Left_Value,
                           Right          => The_Right_Value);
        end case;
    end Evaluate;
end Binary_Expression;