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: ┃ R T

⟦5c465b052⟧ TextFile

    Length: 1442 (0x5a2)
    Types: TextFile
    Names: »RULES_ADA«

Derivation

└─⟦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⟧ 

TextFile

with instanceCounter;

separate(expertSystem)
   
package body ruleManager is

   type ruleStateArray  is array(contextId, ruleId) of boolean;
   ruleState : ruleStateArray := (others=>(others=>FALSE));

   function isMasked(context : contextName; rule : ruleId) return boolean is
      ctx : contextId := instanceCounter.contextNumber(context);
   begin
      if rule = 0 then 
         raise badRule;
      end if;
      if ctx = 0 then
         raise badContext;
      end if;
      return (ruleState(ctx,rule));
   end isMasked;

   function isMasked(context : contextid; rule : ruleId) return boolean is
   begin
      if rule = 0 then 
         raise badRule;
      end if;
      if context = 0 then
         raise badContext;
      end if;
      return (ruleState(context,rule));
   end isMasked;


   procedure mask(context : contextName; rule : ruleId) is
      ctx : contextId := instanceCounter.contextNumber(context);
   begin
      if rule = 0 then 
         raise badRule;
      end if;
      if ctx = 0 then
         raise badContext;
      end if;
      ruleState(ctx,rule) := TRUE;
   end mask;

   procedure unmask(context : contextName; rule : ruleId) is
      ctx : contextId := instanceCounter.contextNumber(context);
   begin
      if rule = 0 then 
         raise badRule;
      end if;
      if ctx = 0 then
         raise badContext;
      end if;
      ruleState(ctx,rule) := FALSE;
   end unmask;

end ruleManager;