|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 5120 (0x1400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Generic_Rule_Bundle, seg_02ad09, separate Generic_Rule_Base
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
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; procedure Add (The_Rule : Rule_Names; The_Name : String; Premiss : Fact.Queries) is Ce_Ids : Condition_Elements.Ids (Premiss'Range); begin if The_Last_Rule = Rule_Id (Max_Rules) then raise Overflow; else Condition_Elements.Add (Premiss, Ce_Ids); The_Last_Rule := The_Last_Rule + 1; The_Rules (The_Last_Rule) := Rule'(The_Query_Count => Premiss'Length, The_Bundle => The_Bundle, The_Rule => As_Natural (The_Rule), The_Name => As_Rule_Name (The_Name), The_Premiss => Ce_Ids); end if; end Add; procedure Do_Action (For_Rule : Rule_Id; On_Facts : Fact.Collection) is The_Action_Bundle : Rule_Bundles renames The_Rules (For_Rule).The_Bundle; The_Rule_Number : Natural renames The_Rules (For_Rule).The_Rule; begin if The_Action_Bundle = The_Bundle then case The_Rule_Number 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, Name_1, Premiss_1); end if; if Rule_2 /= Nothing then Add (Rule_2, Name_2, Premiss_2); end if; if Rule_3 /= Nothing then Add (Rule_3, Name_3, Premiss_3); end if; if Rule_4 /= Nothing then Add (Rule_4, Name_4, Premiss_4); end if; if Rule_5 /= Nothing then Add (Rule_5, Name_5, Premiss_5); end if; end Generic_Rule_Bundle;
nblk1=4 nid=0 hdr6=8 [0x00] rec0=1e rec1=00 rec2=01 rec3=006 [0x01] rec0=00 rec1=00 rec2=04 rec3=002 [0x02] rec0=1d rec1=00 rec2=03 rec3=02a [0x03] rec0=0e rec1=00 rec2=02 rec3=000 tail 0x21723ed1a83e571967d05 0x42a00088462063c03