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

⟦b6e48e33f⟧ TextFile

    Length: 3787 (0xecb)
    Types: TextFile
    Names: »B«

Derivation

└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Instance;
with Tuple_Collection, Slot;

with Bbs_Tests;
use Bbs_Tests;
with New_Ball, New_Box, New_Sticker, Constant_Colours;  
with Ball_Features, Box_Features, Sticker_Features;

package body Bbs_Conditions is
    use New_Ball, New_Box, New_Sticker, Constant_Colours,  
        Ball_Features, Box_Features, Sticker_Features, Slot.Operators;

    function Pack_It_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Pack_It_Restriction_1;

    function Pack_It_Restriction_2
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Box.Value_Of (The_Reference, State) =
                  State_Slot_Box.Value (Is_Empty);
    end Pack_It_Restriction_2;

    function Pack_It_Restriction_3
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Sticker.Value_Of (The_Reference, State) =
                  State_Slot_Sticker.Value (Is_Unused);

    end Pack_It_Restriction_3;

    function Sticker_Lack_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Sticker_Lack_Restriction_1;

    function Box_Lack_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Box_Lack_Restriction_1;

    function Too_Big_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Too_Big_Restriction_1;




    function Pack_It_Filter is new Tuple_Collection.Join_3
                                      (Collection_1 => New_Ball.Instances,
                                       Restrict_1   => Pack_It_Restriction_1,
                                       Collection_2 => New_Box.Instances,
                                       Restrict_2   => Pack_It_Restriction_2,
                                       Collection_3 => New_Sticker.Instances,
                                       Restrict_3   => Pack_It_Restriction_3,
                                       Match        => Bbs_Tests.Pack_It_Test);

    function Sticker_Lack_Filter is
       new Tuple_Collection.Join_1 (Collection_1 => New_Ball.Instances,
                                    Restrict_1 => Sticker_Lack_Restriction_1,
                                    Match => Bbs_Tests.Sticker_Lack_Test);

    function Box_Lack_Filter is new Tuple_Collection.Join_1
                                       (Collection_1 => New_Ball.Instances,
                                        Restrict_1 => Box_Lack_Restriction_1,
                                        Match => Bbs_Tests.Box_Lack_Test);

    function Too_Big_Filter is new Tuple_Collection.Join_1
                                      (Collection_1 => New_Ball.Instances,
                                       Restrict_1   => Too_Big_Restriction_1,
                                       Match        => Bbs_Tests.Too_Big_Test);




    function Pack_It_Condition return Tuple_Collection.Object is
    begin
        return Pack_It_Filter;
    end Pack_It_Condition;


    function Sticker_Lack_Condition return Tuple_Collection.Object is
    begin
        return Sticker_Lack_Filter;
    end Sticker_Lack_Condition;


    function Box_Lack_Condition return Tuple_Collection.Object is
    begin
        return Box_Lack_Filter;
    end Box_Lack_Condition;


    function Too_Big_Condition return Tuple_Collection.Object is
    begin
        return Too_Big_Filter;
    end Too_Big_Condition;

end Bbs_Conditions;