|
|
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: 23552 (0x5c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Interface_Structure, seg_0492bc
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Text_Io;
with Modify_Structure;
with Consult_Structure;
with Afficher_Structure;
with Structure_Des_Variables;
with Display;
package body Interface_Structure is
-- compare la position de deux variables
-- asterix position gourde position
---------------------------------------------------------------
function Compare_Position (Var1 : Char; Var2 : Char) return Boolean is
begin
--return (Nos_Chaines.Equal (Consult_Structure.Consult_Position (Var1),
-- Consult_Structure.Consult_Position (Var2)));
return Consult_Structure.Compare_Attribut
(Var1, Var2, Structure_Des_Variables.Position,
Structure_Des_Variables.Pas_De_Sens);
end Compare_Position;
-- compare les etats de deux variables
-- asterix etat obelix etat
---------------------------------------------------------------
function Compare_Etat (Var1 : Char; Var2 : Char) return Boolean is
begin
return Consult_Structure.Compare_Attribut
(Var1, Var2, Structure_Des_Variables.Etat,
Structure_Des_Variables.Pas_De_Sens);
end Compare_Etat;
function Compare_Etat_Sens1 (Var1 : Char; Var2 : Char) return Boolean is
begin
return Consult_Structure.Compare_Attribut
(Var1, Var2, Structure_Des_Variables.Etat,
Structure_Des_Variables.Sens1);
end Compare_Etat_Sens1;
function Compare_Etat_Sens2 (Var1 : Char; Var2 : Char) return Boolean is
begin
return Consult_Structure.Compare_Attribut
(Var1, Var2, Structure_Des_Variables.Etat,
Structure_Des_Variables.Sens2);
end Compare_Etat_Sens2;
-- compare les possessions de deux variables
-- asterix possession obelix possession
---------------------------------------------------------------
function Compare_Possession (Var1 : Char; Var2 : Char) return Boolean is
begin
return Consult_Structure.Compare_Attribut
(Var1, Var2, Structure_Des_Variables.Possession,
Structure_Des_Variables.Pas_De_Sens);
end Compare_Possession;
function Compare_Contenu (Var1 : Char; Var2 : Char) return Boolean is
begin
return Consult_Structure.Compare_Attribut
(Var1, Var2, Structure_Des_Variables.Contenu,
Structure_Des_Variables.Pas_De_Sens);
end Compare_Contenu;
-- teste l'existence d'une variable
-- fee
---------------------------------------------------------------
function Search_For_Variable (Var : Char) return Boolean is
begin
return (Consult_Structure.Consult_Existence (Var));
end Search_For_Variable;
-- verifie la validite d'un champ d'une variable
-- "asterix etat malade"
---------------------------------------------------------------
function Search_For
(Var : Char; Field : Char; Value : Char) return Boolean is
Resultat : Boolean;
begin
Resultat := False;
if (Nos_Chaines.Infinite_String.Image (Field) = "etat") then
Resultat := Consult_Structure.Etat_Belong_To
(Var, Value, Structure_Des_Variables.Pas_De_Sens);
elsif (Nos_Chaines.Infinite_String.Image (Field) = "contenu") then
Resultat := Consult_Structure.Contenu_Belong_To (Var, Value);
elsif (Nos_Chaines.Infinite_String.Image (Field) = "possession") then
Resultat := Consult_Structure.Possession_Belong_To (Var, Value);
end if;
return Resultat;
end Search_For;
-- verifie la validite d'un champ d'une variable
-- "asterix etat malade"
---------------------------------------------------------------
function Search_For (Var : Char; Field : Char; Sens : Integer; Value : Char)
return Boolean is
Resultat : Boolean;
begin
Resultat := False;
if (Nos_Chaines.Infinite_String.Image (Field) = "etat") then
case Sens is
when 1 =>
Resultat := Consult_Structure.Etat_Belong_To
(Var, Value, Structure_Des_Variables.Sens1);
when 2 =>
Resultat := Consult_Structure.Etat_Belong_To
(Var, Value, Structure_Des_Variables.Sens2);
when others =>
Resultat := Consult_Structure.Etat_Belong_To
(Var, Value, Structure_Des_Variables.
Pas_De_Sens);
end case;
end if;
return Resultat;
end Search_For;
-- verifie si une communication appartient a un lieu et asssocie a sortie le l
-- "porte_bleue est dans cuisine"
---------------------------------------------------------------
procedure Search_Communication (Place : Char;
Communication : Char;
Sortie : in out Char;
Sens : in out Integer;
Is_Found : out Boolean) is
begin
Consult_Structure.Communication_Belong_To_Lieu
(Place, Communication, Sortie, Sens, Is_Found);
end Search_Communication;
-- verifie si un lieu a une communication dans une direction et asssocie a so
-- "cuisine sortie vers direction"
---------------------------------------------------------------
procedure Search_Exit_To_Direction (Place : Char;
Direction : Char;
Sortie : in out Char;
Sens : in out Integer;
Is_Found : out Boolean) is
begin
Text_Io.Put_Line ("entree dans search_exit_to_direction");
Consult_Structure.Direction_Belong_To_Lieu
(Place, Direction, Sortie, Sens, Is_Found);
end Search_Exit_To_Direction;
-- verifie si un lieu a une communication vers un autre lieu et asssocie a sor
-- "lieu sortie vers cuisine "
---------------------------------------------------------------
procedure Search_Exit_To_Place (Place : Char;
Destination : in out Char;
Sortie : in out Char;
Sens : in out Integer;
Is_Found : out Boolean) is
Resultat : Boolean;
begin
Text_Io.Put_Line ("entree dans search_exit_to_place");
Consult_Structure.Destination_Belong_To_Lieu
(Place, Destination, Sens, Resultat);
if Resultat then
Nos_Chaines.Copy (Sortie, Destination);
else
Nos_Chaines.Copy (Sortie, "");
end if;
Is_Found := Resultat;
end Search_Exit_To_Place;
-- "lieu relie a position courante"
---------------------------------------------------------------
procedure Search_Link_To_Place (Destination : in out Char;
Place : Char;
Sortie : in out Char;
Sens : in out Integer;
Is_Found : out Boolean) is
Resultat : Boolean;
begin
Text_Io.Put_Line ("entree dans search_link_to_place");
Consult_Structure.Destination_Belong_To_Lieu
(Place, Destination, Sens, Resultat);
if Resultat then
Nos_Chaines.Copy (Sortie, Destination);
else
Nos_Chaines.Copy (Sortie, "");
end if;
Is_Found := Resultat;
Text_Io.Put_Line ("je quitte search link to place avec : " &
Boolean'Image (Resultat));
end Search_Link_To_Place;
-- renvoie la valeur d'un compteur
---------------------------------------------------------------
function Get_Value_Of_Counter (Counter : Char) return Integer is
begin
return Consult_Structure.Consult_Valeur (Counter);
end Get_Value_Of_Counter;
-- renvoie la position d'une variable
-- asterix => hutte
---------------------------------------------------------------
function Get_Position (Var : Char) return Char is
begin
return (Consult_Structure.Consult_Position (Var));
end Get_Position;
---------------------------------------------------------------
function Get_Type (Var : Char) return Type_Of_Var is
begin
return Consult_Structure.Consult_Type (Var);
end Get_Type;
---------------------------------------------------------------
function Get_Signification (Var : Char) return Char is
begin
return Consult_Structure.Consult_Signification (Var);
end Get_Signification;
---------------------------------------------------------------
function Is_In_Table (Var : Char) return Boolean is
begin
return Consult_Structure.Is_In_Structure (Var);
end Is_In_Table;
---------------------------------------------------------------
function Is_A_Variable (Var : Char) return Boolean is
Resultat : Boolean;
begin
if Consult_Structure.Is_In_Structure (Var) then
case Get_Type (Var) is
when Structure_Des_Variables.Verbe |
Structure_Des_Variables.Preposition =>
Resultat := False;
when others =>
Resultat := True;
end case;
else
Resultat := False;
end if;
return Resultat;
end Is_A_Variable;
---------------------------------------------------------------
procedure Associate_Description_Sens1 (La_Description : Char) is
begin
Create_Structure.Associate_Description
(La_Description, Structure_Des_Variables.Sens1);
end Associate_Description_Sens1;
---------------------------------------------------------------
procedure Associate_Description_Sens2 (La_Description : Char) is
begin
Create_Structure.Associate_Description
(La_Description, Structure_Des_Variables.Sens2);
end Associate_Description_Sens2;
---------------------------------------------------------------
procedure Associate_Description (La_Description : Char) is
begin
Create_Structure.Associate_Description
(La_Description, Structure_Des_Variables.Pas_De_Sens);
end Associate_Description;
---------------------------------------------------------------
procedure Associate_Etat_Sens1 (Le_Etat : Char) is
begin
Create_Structure.Associate_Etat
(Le_Etat, Structure_Des_Variables.Sens1);
end Associate_Etat_Sens1;
---------------------------------------------------------------
procedure Associate_Etat_Sens2 (Le_Etat : Char) is
begin
Create_Structure.Associate_Etat
(Le_Etat, Structure_Des_Variables.Sens2);
end Associate_Etat_Sens2;
---------------------------------------------------------------
procedure Associate_Etat (Le_Etat : Char) is
begin
Create_Structure.Associate_Etat (Le_Etat,
Structure_Des_Variables.Pas_De_Sens);
end Associate_Etat;
---------------------------------------------------------------
procedure Associate_Source_Sens1 (La_Source : Char) is
begin
Create_Structure.Associate_Source
(La_Source, Structure_Des_Variables.Sens1);
end Associate_Source_Sens1;
---------------------------------------------------------------
procedure Associate_Source_Sens2 (La_Source : Char) is
begin
Create_Structure.Associate_Source
(La_Source, Structure_Des_Variables.Sens2);
end Associate_Source_Sens2;
---------------------------------------------------------------
procedure Associate_Source (La_Source : Char) is
begin
Create_Structure.Associate_Source (La_Source,
Structure_Des_Variables.Pas_De_Sens);
end Associate_Source;
---------------------------------------------------------------
procedure Associate_Destination_Sens1 (La_Destination : Char) is
begin
Create_Structure.Associate_Destination
(La_Destination, Structure_Des_Variables.Sens1);
end Associate_Destination_Sens1;
---------------------------------------------------------------
procedure Associate_Destination_Sens2 (La_Destination : Char) is
begin
Create_Structure.Associate_Destination
(La_Destination, Structure_Des_Variables.Sens2);
end Associate_Destination_Sens2;
---------------------------------------------------------------
procedure Associate_Destination (La_Destination : Char) is
begin
Create_Structure.Associate_Destination
(La_Destination, Structure_Des_Variables.Pas_De_Sens);
end Associate_Destination;
-- modifie la valeur d'un compteur
---------------------------------------------------------------
procedure Put_Value_In_Counter (Counter : Char; Value : Integer) is
begin
Modify_Structure.Modifier_Valeur (Counter, Value);
end Put_Value_In_Counter;
---------------------------------------------------------------
procedure Add_Etat (Var : Char; Etat : Char) is
begin
Modify_Structure.Ajouter_Etat (Var, Etat,
Structure_Des_Variables.Pas_De_Sens);
end Add_Etat;
---------------------------------------------------------------
procedure Add_Etat_Sens1 (Var : Char; Etat : Char) is
begin
Modify_Structure.Ajouter_Etat (Var, Etat,
Structure_Des_Variables.Sens1);
end Add_Etat_Sens1;
---------------------------------------------------------------
procedure Add_Etat_Sens2 (Var : Char; Etat : Char) is
begin
Modify_Structure.Ajouter_Etat (Var, Etat,
Structure_Des_Variables.Sens2);
end Add_Etat_Sens2;
---------------------------------------------------------------
procedure Delete_Etat (Var : Char; Etat : Char) is
begin
Modify_Structure.Supprimer_Etat (Var, Etat,
Structure_Des_Variables.Pas_De_Sens);
end Delete_Etat;
---------------------------------------------------------------
procedure Delete_Etat_Sens1 (Var : Char; Etat : Char) is
begin
Modify_Structure.Supprimer_Etat
(Var, Etat, Structure_Des_Variables.Sens1);
end Delete_Etat_Sens1;
---------------------------------------------------------------
procedure Delete_Etat_Sens2 (Var : Char; Etat : Char) is
begin
Modify_Structure.Supprimer_Etat
(Var, Etat, Structure_Des_Variables.Sens2);
end Delete_Etat_Sens2;
---------------------------------------------------------------
procedure Add_Possession (Var : Char; Possession : Char) is
begin
Modify_Structure.Ajouter_Contenu_Possession (Var, Possession);
end Add_Possession;
---------------------------------------------------------------
procedure Delete_Possession (Var : Char; Possession : Char) is
begin
Modify_Structure.Supprimer_Contenu_Possession (Var, Possession);
end Delete_Possession;
---------------------------------------------------------------
procedure Add_Contenu (Var : Char; Contenu : Char) is
begin
Modify_Structure.Ajouter_Contenu_Possession (Var, Contenu);
end Add_Contenu;
---------------------------------------------------------------
procedure Delete_Contenu (Var : Char; Contenu : Char) is
begin
Modify_Structure.Ajouter_Contenu_Possession (Var, Contenu);
end Delete_Contenu;
---------------------------------------------------------------
procedure Modify_Description (Var : Char; Description : Char) is
begin
Modify_Structure.Modifier_Description
(Var, Description, Structure_Des_Variables.Pas_De_Sens);
end Modify_Description;
---------------------------------------------------------------
procedure Modify_Description_Sens1 (Var : Char; Description : Char) is
begin
Modify_Structure.Modifier_Description
(Var, Description, Structure_Des_Variables.Sens1);
end Modify_Description_Sens1;
---------------------------------------------------------------
procedure Modify_Description_Sens2 (Var : Char; Description : Char) is
begin
Modify_Structure.Modifier_Description
(Var, Description, Structure_Des_Variables.Sens2);
end Modify_Description_Sens2;
---------------------------------------------------------------
procedure Kill_Var (Var : Char) is
begin
Modify_Structure.Modifier_Existence (Var, False);
end Kill_Var;
---------------------------------------------------------------
procedure Create_Var (Var : Char) is
begin
Modify_Structure.Modifier_Existence (Var, True);
end Create_Var;
---------------------------------------------------------------
procedure Move_To (Var : Char; To : Char) is
begin
Modify_Structure.Modifier_Position (Var, To);
end Move_To;
---------------------------------------------------------------
procedure Print_Possession (Var : Char) is
begin
Afficher_Structure.Listing_Possession_Contenu (Var);
end Print_Possession;
---------------------------------------------------------------
procedure Print_Contenu (Var : Char) is
begin
Afficher_Structure.Listing_Possession_Contenu (Var);
end Print_Contenu;
---------------------------------------------------------------
procedure Print_Description (Var : Char) is
begin
Display.Write_On_World (Consult_Structure.Consult_Description
(Var, Structure_Des_Variables.Pas_De_Sens));
end Print_Description;
---------------------------------------------------------------
procedure Print_Description_Sens1 (Var : Char) is
begin
Display.Write_On_World (Consult_Structure.Consult_Description
(Var, Structure_Des_Variables.Sens1));
end Print_Description_Sens1;
---------------------------------------------------------------
procedure Print_Description_Sens2 (Var : Char) is
begin
Display.Write_On_World (Consult_Structure.Consult_Description
(Var, Structure_Des_Variables.Sens2));
end Print_Description_Sens2;
---------------------------------------------------------------
procedure Print_Etat (Var : Char) is
begin
Afficher_Structure.Listing_Etat (Var,
Structure_Des_Variables.Pas_De_Sens);
end Print_Etat;
---------------------------------------------------------------
procedure Print_Etat_Sens1 (Var : Char) is
begin
Afficher_Structure.Listing_Etat (Var, Structure_Des_Variables.Sens1);
end Print_Etat_Sens1;
---------------------------------------------------------------
procedure Print_Etat_Sens2 (Var : Char) is
begin
Afficher_Structure.Listing_Etat (Var, Structure_Des_Variables.Sens2);
end Print_Etat_Sens2;
end Interface_Structure;
nblk1=16
nid=14
hdr6=2a
[0x00] rec0=1b rec1=00 rec2=01 rec3=082
[0x01] rec0=19 rec1=00 rec2=07 rec3=052
[0x02] rec0=19 rec1=00 rec2=05 rec3=008
[0x03] rec0=14 rec1=00 rec2=0b rec3=020
[0x04] rec0=17 rec1=00 rec2=06 rec3=048
[0x05] rec0=13 rec1=00 rec2=04 rec3=04e
[0x06] rec0=15 rec1=00 rec2=0c rec3=02c
[0x07] rec0=19 rec1=00 rec2=03 rec3=026
[0x08] rec0=19 rec1=00 rec2=15 rec3=086
[0x09] rec0=1c rec1=00 rec2=11 rec3=006
[0x0a] rec0=18 rec1=00 rec2=0a rec3=014
[0x0b] rec0=19 rec1=00 rec2=16 rec3=01c
[0x0c] rec0=18 rec1=00 rec2=09 rec3=03c
[0x0d] rec0=18 rec1=00 rec2=0d rec3=03c
[0x0e] rec0=0b rec1=00 rec2=02 rec3=054
[0x0f] rec0=19 rec1=00 rec2=08 rec3=01a
[0x10] rec0=1a rec1=00 rec2=10 rec3=010
[0x11] rec0=16 rec1=00 rec2=0e rec3=03e
[0x12] rec0=1d rec1=00 rec2=0f rec3=060
[0x13] rec0=16 rec1=00 rec2=12 rec3=03a
[0x14] rec0=14 rec1=00 rec2=13 rec3=000
[0x15] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x215468b28865b69c68eec 0x42a00088462060003
Free Block Chain:
0x14: 0000 00 00 00 20 80 05 61 6e 20 69 73 05 00 09 20 20 ┆ an is ┆