|
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: 7168 (0x1c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package Sc, seg_0480db
└─⟦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 Sc 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 Left, Right : P_Node := null; case Typ is when Type_Node => Left_Value, Right_Value, Result : Boolean; Operator : Boolean_Operator; when Type_Leaf => Expression : T_Expression; end case; end record; end Sc;
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=20 rec1=00 rec2=04 rec3=052 [0x05] rec0=08 rec1=00 rec2=05 rec3=000 tail 0x2174c121886584115fa84 0x42a00088462060003