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

⟦3831704d1⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Generic_Expression, seg_02cf6f, seg_02d0f6

Derivation

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

E3 Source Code



with Alias;
with Output_Stream;  
with Slot;
generic  
    type User_Defined_Operators is (<>);

    with function User_Defined_Unary_Evaluate
                     (Using_Operator : User_Defined_Operators;
                      Right          : Slot.Object) return Slot.Object is <>;
    with function User_Defined_Binary_Evaluate
                     (Using_Operator : User_Defined_Operators;
                      Left, Right    : Slot.Object) return Slot.Object is <>;

    with function User_Defined_Image
                     (Op : User_Defined_Operators) return String is
       User_Defined_Operators'Image;

package Generic_Expression is

    type Object is private;
    Null_Expression : constant Object;

    -- primary expression constructors

    function Value (For_Object : Slot.Object) return Object;

    function Value (For_Integer : Integer)     return Object;
    function Value (For_Boolean : Boolean)     return Object;
    function Value (For_Float : Float)         return Object;
    function Value (For_Character : Character) return Object;
    function Value (For_Duration : Duration)   return Object;
    function Value (For_String : String)       return Object;

    function Value (For_Alias : Alias.Name) return Object;

    -- user defined expression constructors

    generic
        Operator : User_Defined_Operators;
    function Unary_User_Expression (Right : Object) return Object;

    generic
        Operator : User_Defined_Operators;
    function Binary_User_Expression (Left, Right : Object) return Object;

    -- general operations

    function  Evaluate (The_Expression : Object) return Slot.Object;
    procedure Put      (The_Object : Object; Where : Output_Stream.Object);

    package System_Defined_Expression is

        function "+"   (Left, Right : Object) return Object;
        function "-"   (Left, Right : Object) return Object;
        function "*"   (Left, Right : Object) return Object;
        function "/"   (Left, Right : Object) return Object;
        function "abs" (Right : Object)       return Object;

    end System_Defined_Expression;

    Illegal_Operation : exception;  
private

    type Sub_Classes is (Primary, Unary, Binary, Undefined);
    type Object_Structure (Sub_Class : Sub_Classes);
    type Object      is access Object_Structure;
    Null_Expression : constant Object := null;

end Generic_Expression;

E3 Meta Data

    nblk1=7
    nid=5
    hdr6=8
        [0x00] rec0=1e rec1=00 rec2=01 rec3=022
        [0x01] rec0=03 rec1=00 rec2=07 rec3=032
        [0x02] rec0=1d rec1=00 rec2=03 rec3=00c
        [0x03] rec0=09 rec1=00 rec2=06 rec3=000
        [0x04] rec0=08 rec1=00 rec2=05 rec3=000
        [0x05] rec0=42 rec1=02 rec2=35 rec3=402
        [0x06] rec0=9a rec1=d4 rec2=00 rec3=002
    tail 0x21525d098841352b80d97 0x42a00088462063c03
Free Block Chain:
  0x5: 0000  00 02 03 fc 80 0d 73 73 69 6f 6e 2e 4f 62 6a 65  ┆      ssion.Obje┆
  0x2: 0000  00 04 00 10 80 0d 20 72 65 74 75 72 6e 20 45 78  ┆       return Ex┆
  0x4: 0000  00 00 03 fc 80 03 73 20 20 03 00 31 20 20 20 20  ┆      s    1    ┆