|
|
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 - metrics - download
Length: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Condition, seg_0480e0, seg_048c30, seg_048c9d, seg_048dcc
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Nos_Chaines;
----------------------------------------------------------------------------------------
-- paquetage definissant:
-- les structures permettant de memoriser les parametres d'une expression a evaluer
-- les types des parametres autorises dans cette expression
-- les structures d'evaluation d'une expression
-- les differents types d'evaluation a realiser
-- la structure de memorisation d'une condition a realiser
---------------------------------------------------------------------------------------
package Condition is
-- type des parametre q'une condition peut contenir
type T_Parameter is (Communication, Compteur, Lieu, Objet, Personnage,
Verbe, Preposition, Joueur, Positioncourante,
Etat, Possession, Position, Contenu, Existe,
Sortie, Vers, Direction, Est, Dans, Reliea, Texte,
Greater_Than, Less_Than, Equal, Number, Unknown);
-- renvoie le type de parametre d une valeur
function Wich_Type (T : Nos_Chaines.String_Text) return T_Parameter;
-- verifie la compatibilite de deux parametres successifs
function Compatible (A : T_Parameter; B : T_Parameter) return Boolean;
-- structure de la memorisation d'un parametre
type T_Data is
record
Typ : T_Parameter;
Value : Nos_Chaines.String_Text;
end record;
type T_Tab_Of_Parameter is array (Positive range 1 .. 5) of T_Data;
procedure Copy_Tab (T1 : in out T_Tab_Of_Parameter;
T2 : T_Tab_Of_Parameter);
----- definition des differents type d'expression booleenne a evaluer ----
type T_Evaluation is (Type_Action, Type_Recherche,
Type_Egalite, Type_Comparaison);
----- comparateur autorises
type T_Comparateur is (Greater, Less, Equal_As);
function Is_Comparateur (P : Nos_Chaines.String_Text) return Boolean;
function To_Type_Comparateur
(P : Nos_Chaines.String_Text) return T_Comparateur;
----- structure d'une expression a evaluer
type T_Expression (Typ : T_Evaluation := Type_Action) is
record
case Typ is
when Type_Action | Type_Recherche =>
Parameters : T_Tab_Of_Parameter;
Number_Of_Parameters : Natural;
when Type_Egalite =>
Member1 : T_Tab_Of_Parameter;
Member2 : T_Tab_Of_Parameter;
Size_Of_Member1 : Positive;
Size_Of_Member2 : Positive;
when Type_Comparaison =>
Id : Nos_Chaines.String_Text;
Value : Natural;
Operator : T_Comparateur;
end case;
end record;
------ structure d'evaluation des conditions d'une regle----------
type Selecteur_Leaf_Node is (Type_Leaf, Type_Node);
type Boolean_Operator is (Et, Ou, Non);
type T_Node (Typ : Selecteur_Leaf_Node := Type_Node) is private;
type P_Node is access T_Node;
subtype T_Condition is P_Node;
-- evalue une condition
function Evaluate (P : T_Condition) return Boolean;
-- cree une nouvelle feuille
function Make_Node (The_Expression : T_Expression) return P_Node;
-- cree un nouveau noeud
-- operateur binaire
function Make_Node
(Op : Boolean_Operator; Left_Node : P_Node; Right_Node : P_Node)
return P_Node;
-- operateur unaire
function Make_Node (Op : Boolean_Operator; Neg_Node : P_Node) return P_Node;
--------------- donne privee de l'arbre d'evaluation ---------
private
type T_Node (Typ : Selecteur_Leaf_Node := Type_Node) is
record
Result : Boolean;
case Typ is
when Type_Node =>
Left, Right : P_Node := null;
Operator : Boolean_Operator;
when Type_Leaf =>
Expression : T_Expression;
end case;
end record;
end Condition;
nblk1=6
nid=0
hdr6=c
[0x00] rec0=12 rec1=00 rec2=01 rec3=084
[0x01] rec0=1d rec1=00 rec2=02 rec3=068
[0x02] rec0=02 rec1=00 rec2=06 rec3=07c
[0x03] rec0=1b rec1=00 rec2=03 rec3=03e
[0x04] rec0=21 rec1=00 rec2=04 rec3=01e
[0x05] rec0=07 rec1=00 rec2=05 rec3=000
tail 0x2174c12e6865842849cb7 0x42a00088462060003