|
|
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: 10240 (0x2800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Interprete, seg_048175
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦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=07 rec3=02a
[0x02] rec0=1e rec1=00 rec2=08 rec3=008
[0x03] rec0=1e rec1=00 rec2=06 rec3=066
[0x04] rec0=1d rec1=00 rec2=02 rec3=030
[0x05] rec0=17 rec1=00 rec2=03 rec3=072
[0x06] rec0=14 rec1=00 rec2=09 rec3=030
[0x07] rec0=13 rec1=00 rec2=05 rec3=024
[0x08] rec0=07 rec1=00 rec2=04 rec3=000
tail 0x2174c215e86585d1b4d07 0x42a00088462060003