|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 2254 (0x8ce)
Types: TextFile
Names: »B«
└─⟦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⟧
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;