|
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: 10240 (0x2800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Interprete, seg_0491b5
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Comps_Dictionary, Verbs_Dictionary, Player_Entries; with Text_Io, Bounded_String; package body Interprete is The_Number_Of_Instructions : Integer := 0; function Exist_Entries_In_Dictionaries (C : Comps_Dictionary.Object; V : Verbs_Dictionary.Object) return Boolean is Exist : Boolean := True; begin Player_Entries.Open_Index; if not Player_Entries.Index_At_End then if not (Comps_Dictionary.Exist (Player_Entries.Get_Indexed_Entry, C) or Verbs_Dictionary.Exist (Player_Entries.Get_Indexed_Entry, V)) then Text_Io.Put_Line ("Erreur :" & Player_Entries.Get_Indexed_Entry & " est une donnee inconnue du scenario"); return False; end if; Player_Entries.Next_Index; end if; while not Player_Entries.Index_At_End loop if not (Comps_Dictionary.Exist (Player_Entries.Get_Indexed_Entry, C)) then Exist := False; Text_Io.Put_Line ("Erreur :" & Player_Entries.Get_Indexed_Entry & " n est pas un complement"); end if; Player_Entries.Next_Index; end loop; return Exist; end Exist_Entries_In_Dictionaries; function Total_Entries return Integer is begin return The_Number_Of_Instructions; end Total_Entries; function Number_Of_Entries return Natural is The_Number : Natural := 0; begin Player_Entries.Open_Index; while not Player_Entries.Index_At_End loop The_Number := The_Number + 1; Player_Entries.Next_Index; end loop; return The_Number; end Number_Of_Entries; function Is_Entry (A, B, C : String; Comp_Dict : Comps_Dictionary.Object) return Boolean is begin Player_Entries.Open_Index; if not Player_Entries.Index_At_End then if A = "COMP" then if not Comps_Dictionary.Exist (Player_Entries.Get_Indexed_Entry, Comp_Dict) then return False; else Player_Entries.Next_Index; end if; else if Player_Entries.Get_Indexed_Entry = A then Player_Entries.Next_Index; end if; end if; if not Player_Entries.Index_At_End then if B = "COMP" then if not Comps_Dictionary.Exist (Player_Entries.Get_Indexed_Entry, Comp_Dict) then return False; else Player_Entries.Next_Index; end if; else if Player_Entries.Get_Indexed_Entry = B then Player_Entries.Next_Index; end if; end if; if not Player_Entries.Index_At_End then if Player_Entries.Get_Indexed_Entry = C then return True; else return False; end if; else return True; end if; else return True; end if; else return False; end if; end Is_Entry; function First_Comp_Value (C : Comps_Dictionary.Object) return String is begin Player_Entries.Open_Index; while not Player_Entries.Index_At_End loop if Comps_Dictionary.Exist (Player_Entries.Get_Indexed_Entry, C) then return Player_Entries.Get_Indexed_Entry; end if; Player_Entries.Next_Index; end loop; return ""; end First_Comp_Value; function Get_Player (C : Comps_Dictionary.Object; V : Verbs_Dictionary.Object) return Player_Entries.Token is Valid_Entry : Boolean := False; begin Test_Entry: while not Valid_Entry or (Number_Of_Entries = 0) loop Valid_Entry := Player_Entries.Get_Player_Entry; if not Valid_Entry then Text_Io.Put_Line (Player_Entries.Get_Player_Error); elsif Player_Entries.Is_Command then exit Test_Entry; else Valid_Entry := Exist_Entries_In_Dictionaries (C, V); end if; end loop Test_Entry; if Player_Entries."=" (Player_Entries.Get_Command, Player_Entries.Id) then The_Number_Of_Instructions := The_Number_Of_Instructions + 1; end if; return Player_Entries.Get_Command; end Get_Player; procedure Write_Help is begin Text_Io.Put_Line ("<<<<<<<<<<< BIENVENUE DANS NOTRE MONDE >>>>>>>>>>>>>>>>>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<< - Clade - Ehrhard - Kocher - >>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<< a) JEU >>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<< Pour jouer TAPEZ VOS COMMANDES >>"); Text_Io.Put_Line ("<< Quitter avant la fin TAPEZ :fin >>"); Text_Io.Put_Line ("<< Pour l'aide TAPEZ :aide >>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<< b) MISE AU POINT DU JEU >>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<< Afficher les types de donnees TAPEZ :modele >>"); Text_Io.Put_Line ("<< Afficher les variables TAPEZ :symbole >>"); Text_Io.Put_Line ("<< Afficher les actions TAPEZ :verbe >>"); Text_Io.Put_Line ("<< Afficher les complements TAPEZ :complement >>"); Text_Io.Put_Line ("<< Afficher les connections TAPEZ :connexion >>"); Text_Io.Put_Line ("<< Afficher les liens TAPEZ :lien >>"); Text_Io.Put_Line ("<< Liste instructions introduction TAPEZ :introduction >>"); Text_Io.Put_Line ("<< Liste instructions generales TAPEZ :general >>"); Text_Io.Put_Line ("<< Liste instructions globales TAPEZ :global >>"); Text_Io.Put_Line ("<< Liste instructions locales TAPEZ :locale >>"); Text_Io.Put_Line ("<< Execution en mode trace TAPEZ :trace >>"); Text_Io.Put_Line ("<< >>"); Text_Io.Put_Line ("<<<<<<<<<<<<<<<< BONNE CHANCE !!! >>>>>>>>>>>>>>>>>>>>>>>"); end Write_Help; end Interprete;
nblk1=9 nid=0 hdr6=12 [0x00] rec0=1d rec1=00 rec2=01 rec3=000 [0x01] rec0=1d rec1=00 rec2=02 rec3=02a [0x02] rec0=1e rec1=00 rec2=03 rec3=008 [0x03] rec0=1e rec1=00 rec2=04 rec3=066 [0x04] rec0=1d rec1=00 rec2=05 rec3=030 [0x05] rec0=17 rec1=00 rec2=06 rec3=072 [0x06] rec0=14 rec1=00 rec2=07 rec3=030 [0x07] rec0=13 rec1=00 rec2=08 rec3=024 [0x08] rec0=07 rec1=00 rec2=09 rec3=000 tail 0x215467722865b46604419 0x42a00088462060003