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

⟦81b3e07c4⟧ Ada Source

    Length: 13312 (0x3400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Generic_Predicate, seg_03b8dd, seg_03c0cd, seg_03c538

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦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 Alias;
with Output_Stream;
with Slot;
generic  
    type User_Defined_Operators is (<>);

    with function User_Defined_Unary_Match
                     (Using_Operator : User_Defined_Operators;
                      Value          : Slot.Object) return Boolean is <>;

    with function User_Defined_Binary_Match
                     (Using_Operator : User_Defined_Operators;
                      Value, Against : Slot.Object) return Boolean is <>;

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

    type Expression_Object is private;  
    with function  Slot_Object_Expression
                     (For_Object : Slot.Object) return Expression_Object;
    with function  Alias_Expression
                     (For_Alias : Alias.Name) return Expression_Object;
    with function  Evaluate (The_Object : Expression_Object) return Slot.Object;
    with procedure Put      (The_Object : Expression_Object;
                             Where      : Output_Stream.Object);
package Generic_Predicate is

    type Object is private;
    Null_Predicate : constant Object;  
    type Objects is array (Natural range <>) of Object;

    function Define_As  (The_Alias : Alias.Name) return Object;
    function "and"      (Left, Right : Object)   return Object;
    function Collection (Of_Objects : Objects)   return Object;

    function Is_A_Collection   (What : Object) return Boolean;
    function Is_A_Conjunction  (What : Object) return Boolean;
    function Is_A_Is_Equal     (What : Object) return Boolean;
    function Is_A_Is_Different (What : Object) return Boolean;
    function Is_A_Is_Any       (What : Object) return Boolean;
    function Is_A_Define_As    (What : Object) return Boolean;

    function  Get (From_Object : Object) return Objects;
    function  Get (From_Object : Object) return Expression_Object;
    procedure Get (From_Object : Object; Left, Right : out Object);

    -- user defined predicates

    generic
        Operator : User_Defined_Operators;
    function Unary_User_Predicate return Object;

    generic
        Operator : User_Defined_Operators;
    function Binary_User_Predicate
                (Using_Value : Expression_Object) return Object;

    function  Match (Value : Slot.Object; Against : Object) return Boolean;
    procedure Put   (The_Object : Object; Where : Output_Stream.Object);

    package System_Defined_Predicate is

        function Is_Equal     (The_Object : Expression_Object) return Object;
        function Is_Less      (The_Object : Expression_Object) return Object;
        function Is_Less_Or_Equal
                    (The_Object : Expression_Object) return Object;
        function Is_Greater   (The_Object : Expression_Object) return Object;
        function Is_Greater_Or_Equal
                    (The_Object : Expression_Object) return Object;
        function Is_Different (The_Object : Expression_Object) return Object;
        function Is_Any return Object;
        function Is_Undefined return Object;
        function Is_Defined return Object;

        -- Slot value predicates

        function Is_Equal            (The_Value : Slot.Object) return Object;
        function Is_Less             (The_Value : Slot.Object) return Object;
        function Is_Less_Or_Equal    (The_Value : Slot.Object) return Object;
        function Is_Greater          (The_Value : Slot.Object) return Object;
        function Is_Greater_Or_Equal (The_Value : Slot.Object) return Object;
        function Is_Different        (The_Value : Slot.Object) return Object;

        -- Integer value predicate shortcuts

        function Is_Equal            (The_Value : Integer) return Object;
        function Is_Less             (The_Value : Integer) return Object;
        function Is_Less_Or_Equal    (The_Value : Integer) return Object;
        function Is_Greater          (The_Value : Integer) return Object;
        function Is_Greater_Or_Equal (The_Value : Integer) return Object;
        function Is_Different        (The_Value : Integer) return Object;

        -- Boolean value predicate shortcuts

        function Is_Equal     (The_Value : Boolean) return Object;
        function Is_Different (The_Value : Boolean) return Object;

        -- Float value predicate shortcuts

        function Is_Equal            (The_Value : Float) return Object;
        function Is_Less             (The_Value : Float) return Object;
        function Is_Less_Or_Equal    (The_Value : Float) return Object;
        function Is_Greater          (The_Value : Float) return Object;
        function Is_Greater_Or_Equal (The_Value : Float) return Object;
        function Is_Different        (The_Value : Float) return Object;

        -- Duration value predicate shortcuts

        function Is_Equal            (The_Value : Duration) return Object;
        function Is_Less             (The_Value : Duration) return Object;
        function Is_Less_Or_Equal    (The_Value : Duration) return Object;
        function Is_Greater          (The_Value : Duration) return Object;
        function Is_Greater_Or_Equal (The_Value : Duration) return Object;
        function Is_Different        (The_Value : Duration) return Object;

        -- Character value predicate shortcuts

        function Is_Equal            (The_Value : Character) return Object;
        function Is_Less             (The_Value : Character) return Object;
        function Is_Less_Or_Equal    (The_Value : Character) return Object;
        function Is_Greater          (The_Value : Character) return Object;
        function Is_Greater_Or_Equal (The_Value : Character) return Object;
        function Is_Different        (The_Value : Character) return Object;

        -- String value predicate shortcuts

        function Is_Equal            (The_Value : String) return Object;
        function Is_Less             (The_Value : String) return Object;
        function Is_Less_Or_Equal    (The_Value : String) return Object;
        function Is_Greater          (The_Value : String) return Object;
        function Is_Greater_Or_Equal (The_Value : String) return Object;
        function Is_Different        (The_Value : String) return Object;

        -- Alias predicate shortcuts

        function Is_Equal            (The_Alias : Alias.Name) return Object;
        function Is_Less             (The_Alias : Alias.Name) return Object;
        function Is_Less_Or_Equal    (The_Alias : Alias.Name) return Object;
        function Is_Greater          (The_Alias : Alias.Name) return Object;
        function Is_Greater_Or_Equal (The_Alias : Alias.Name) return Object;
        function Is_Different        (The_Alias : Alias.Name) return Object;

    end System_Defined_Predicate;

    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_Predicate  : constant Object           := null;
    Null_Predicates : constant Objects (1 .. 0) := (others => Null_Predicate);

end Generic_Predicate;

E3 Meta Data

    nblk1=c
    nid=b
    hdr6=16
        [0x00] rec0=1a rec1=00 rec2=01 rec3=026
        [0x01] rec0=15 rec1=00 rec2=0c rec3=022
        [0x02] rec0=0e rec1=00 rec2=04 rec3=04e
        [0x03] rec0=14 rec1=00 rec2=02 rec3=080
        [0x04] rec0=01 rec1=00 rec2=09 rec3=050
        [0x05] rec0=14 rec1=00 rec2=07 rec3=084
        [0x06] rec0=01 rec1=00 rec2=0a rec3=088
        [0x07] rec0=12 rec1=00 rec2=05 rec3=084
        [0x08] rec0=01 rec1=00 rec2=03 rec3=096
        [0x09] rec0=12 rec1=00 rec2=06 rec3=098
        [0x0a] rec0=11 rec1=00 rec2=08 rec3=000
        [0x0b] rec0=08 rec1=00 rec2=00 rec3=000
    tail 0x21738de82852678cd30c2 0x42a00088462063c03
Free Block Chain:
  0xb: 0000  00 00 00 57 80 2a 2e 4f 62 6a 65 63 74 3b 20 41  ┆   W *.Object; A┆