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

⟦1b6262d34⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Moving_Guru_Rule, package body Reformulating_Guru_Rule, package body Towers_Of_Hanoi_Rules_For_Benchmark, seg_02cef8

Derivation

└─⟦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 Towers_Of_Hanoi_Kbs;
with Towers_Of_Hanoi_Frames;

use Alias;
use Towers_Of_Hanoi_Kbs;
use Towers_Of_Hanoi_Frames;

package body Towers_Of_Hanoi_Rules_For_Benchmark is

    use Kbs;
    use Kbs.Predicate;
    use Kbs.Predicate.System_Defined_Predicate;

    type Rule_Names is (Reformulating_Guru, Moving_Guru, No_More);

    -------------------------------------------------------------------------------
    package Reformulating_Guru_Rule is
        function  Premiss return Fact_Queries;
        procedure Action (The_Facts : Fact_Collection);
    end Reformulating_Guru_Rule;

    package body Reformulating_Guru_Rule is separate;

    -------------------------------------------------------------------------------

    package Moving_Guru_Rule is
        function  Premiss return Fact_Queries;
        procedure Action (The_Facts : Fact_Collection);
    end Moving_Guru_Rule;

    package body Moving_Guru_Rule is separate;

    -------------------------------------------------------------------------------

    package Rule_Bundle is  
       new Kbs.Rule_Base.Generic_Rule_Bundle
              (The_Bundle => Towers_Of_Hanoi_Kbs.Towers_Of_Hanoi_Rules,
               Rule_Names => Rule_Names,
               Nothing    => Rule_Names'(No_More),

               Rule_1     => Reformulating_Guru,
               Premiss_1  => Reformulating_Guru_Rule.Premiss,
               Action_1   => Reformulating_Guru_Rule.Action,

               Rule_2     => Moving_Guru,
               Premiss_2  => Moving_Guru_Rule.Premiss,
               Action_2   => Moving_Guru_Rule.Action);

    procedure Do_Action (For_Rule : Kbs.Rule_Id;
                         On_Facts : Kbs.Fact_Collection) is

    begin
        Rule_Bundle.Do_Action (For_Rule, On_Facts);
    end Do_Action;

end Towers_Of_Hanoi_Rules_For_Benchmark;

E3 Meta Data

    nblk1=8
    nid=8
    hdr6=4
        [0x00] rec0=22 rec1=00 rec2=01 rec3=000
        [0x01] rec0=19 rec1=00 rec2=05 rec3=000
        [0x02] rec0=1a rec1=00 rec2=05 rec3=004
        [0x03] rec0=0b rec1=00 rec2=06 rec3=000
        [0x04] rec0=1a rec1=00 rec2=04 rec3=00e
        [0x05] rec0=1a rec1=00 rec2=05 rec3=004
        [0x06] rec0=0b rec1=00 rec2=06 rec3=000
        [0x07] rec0=08 rec1=40 rec2=85 rec3=191
    tail 0x21525b4ec84124db9ae99 0x42a00088462063c03
Free Block Chain:
  0x8: 0000  00 06 03 fc 80 05 6c 65 20 69 73 05 00 00 00 00  ┆      le is     ┆
  0x6: 0000  00 04 01 7e 80 34 20 20 20 20 20 20 20 20 20 20  ┆   ~ 4          ┆
  0x4: 0000  00 03 03 fc 00 35 20 20 20 20 20 20 20 20 20 20  ┆     5          ┆
  0x3: 0000  00 02 03 fb 80 37 6f 75 72 63 65 20 20 20 20 20  ┆     7ource     ┆
  0x2: 0000  00 07 00 2a 80 03 65 72 3b 03 00 0d 20 20 20 20  ┆   *  er;       ┆
  0x7: 0000  00 00 03 fc 80 02 6e 3b 02 00 00 00 00 3f 20 20  ┆      n;     ?  ┆