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

⟦59b8fa38e⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Generic_Rule_Base, seg_02a44d

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 Fact;
with Null_Action;
use Fact;
generic
    type Rule_Bundles is (<>);
package Generic_Rule_Base is

    type Rule_Id is private;
    No_Rule : constant Rule_Id;

    type Iterator is private;

    function Get (R : Rule_Id) return Rule_Bundles;
    function Firable_On_Facts  return Fact.Collection;
    function Firable_On_Rule   return Rule_Id;

    function Open                  return Iterator;
    function Value  (I : Iterator) return Rule_Id;
    function Next   (I : Iterator) return Iterator;
    function At_End (I : Iterator) return Boolean;

    Illegal_Bundle  : exception;
    Illegal_Rule_Id : exception;
    Overflow        : exception;


    generic
        The_Bundle : Rule_Bundles;

        type Rule_Names is (<>);

        Nothing : Rule_Names := Rule_Names'Last;

        Rule_1    : Rule_Names      := Nothing;
        Premiss_1 : Join_Descriptor := Null_Premiss;
        with procedure Action_1 (On : Fact.Collection) is Null_Action;

        Rule_2    : Rule_Names      := Nothing;
        Premiss_2 : Join_Descriptor := Null_Premiss;
        with procedure Action_2 (On : Fact.Collection) is Null_Action;

        Rule_3    : Rule_Names      := Nothing;
        Premiss_3 : Join_Descriptor := Null_Premiss;
        with procedure Action_3 (On : Fact.Collection) is Null_Action;

        Rule_4    : Rule_Names      := Nothing;
        Premiss_4 : Join_Descriptor := Null_Premiss;
        with procedure Action_4 (On : Fact.Collection) is Null_Action;

        Rule_5    : Rule_Names      := Nothing;
        Premiss_5 : Join_Descriptor := Null_Premiss;
        with procedure Action_5 (On : Fact.Collection) is Null_Action;

    package Generic_Rule_Bundle is
        procedure Do_Action (For_Rule : Rule_Id; On_Facts : Fact.Collection);
    end Generic_Rule_Bundle;

    -- generic
    --     The_Bundle : rule_Bundles;
    --     type Rule_Names is (<>);
    --     with procedure Action_1 (On_Facts : Fact.Collection) is Null_Action;
    --     with procedure Action_2 (On_Facts : Fact.Collection) is Null_Action;
    --     with procedure Action_3 (On_Facts : Fact.Collection) is Null_Action;
    --     with procedure Action_4 (On_Facts : Fact.Collection) is Null_Action;
    --     with procedure Action_5 (On_Facts : Fact.Collection) is Null_Action;
    -- package Handler is
    --     procedure Add (The_Rule : Rule_Names; Premiss : Fact.Join_Descriptor);
    --     procedure Do_Action (For_Rule : Rule_Id; On_Facts : Fact.Collection);
    -- end Handler;
    --
private
    type Rule_Id is
        record  
            Is_Valid   : Boolean := False;
            The_Bundle : Rule_Bundles;
            The_Rule   : Natural;
        end record;

    No_Rule : constant Rule_Id := Rule_Id'(Is_Valid   => False,
                                           The_Bundle => Rule_Bundles'First,
                                           The_Rule   => 0);

    type Iterator is new Natural;
end Generic_Rule_Base;

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=25 rec1=00 rec2=01 rec3=05e
        [0x01] rec0=02 rec1=00 rec2=05 rec3=022
        [0x02] rec0=17 rec1=00 rec2=06 rec3=080
        [0x03] rec0=01 rec1=00 rec2=03 rec3=00c
        [0x04] rec0=16 rec1=00 rec2=02 rec3=02c
        [0x05] rec0=01 rec1=00 rec2=04 rec3=001
    tail 0x2172396d883de65b321e8 0x42a00088462063c03