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

⟦4617e7f29⟧ TextFile

    Length: 2048 (0x800)
    Types: TextFile
    Names: »B«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »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_Rule_Base)
package body Generic_Rule_Bundle is

    function As_Natural (R : Rule_Names) return Natural is
    begin
        return Rule_Names'Pos (R) + 1;
    end As_Natural;

    function Make (R : Rule_Names) return Rule_Id is
    begin
        return Rule_Id'(Is_Valid   => True,
                        The_Bundle => The_Bundle,
                        The_Rule   => As_Natural (R));
    end Make;

    procedure Add (The_Rule : Rule_Names; Premiss : Fact.Join_Descriptor) is
    begin
        for I in The_Rules'Range loop
            if not The_Rules (I).The_Id.Is_Valid then
                The_Rules (I) := Rule'(The_Query_Count => Premiss'Length,
                                       The_Id          => Make (The_Rule),
                                       The_Premiss     => Premiss);
                Last_Rule     := I;
                return;
            end if;
        end loop;
        raise Overflow;
    end Add;

    procedure Do_Action (For_Rule : Rule_Id; On_Facts : Fact.Collection) is
    begin
        if For_Rule.The_Bundle = The_Bundle then
            case For_Rule.The_Rule is
                when 1 =>
                    Action_1 (On_Facts);
                when 2 =>
                    Action_2 (On_Facts);
                when 3 =>
                    Action_3 (On_Facts);
                when 4 =>
                    Action_4 (On_Facts);
                when 5 =>
                    Action_5 (On_Facts);
                when others =>
                    Null_Action (On_Facts);
            end case;
        else
            raise Illegal_Bundle;
        end if;
    end Do_Action;

begin
    if Rule_1 /= Nothing then
        Add (Rule_1, Premiss_1);
    end if;
    if Rule_2 /= Nothing then
        Add (Rule_2, Premiss_2);
    end if;
    if Rule_3 /= Nothing then
        Add (Rule_3, Premiss_3);
    end if;
    if Rule_4 /= Nothing then
        Add (Rule_4, Premiss_4);
    end if;
    if Rule_5 /= Nothing then
        Add (Rule_5, Premiss_5);
    end if;
end Generic_Rule_Bundle;