|
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: 5120 (0x1400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Check_Structure, seg_0484c0, seg_048c52, seg_048cc1, seg_048e00
└─⟦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 Error; with Nos_Chaines; with Nos_Listes; with Structure_Des_Variables; use Structure_Des_Variables; package body Check_Structure is package Liste_Nom is new Nos_Listes (Nos_Chaines.String_Text); function Lieu_Is_Ok (La_Variable : Cellule) return Boolean is La_Direction : Type_Direction; Liste_Nom_Direction : Liste_Nom.Objet; Iterateur_Lieu : Liste_Direction.Iterateur; Double : Boolean; begin Double := False; Liste_Direction.First (Iterateur_Lieu, La_Variable.Specif.Direction_Lieu); while ((not Double) and not Liste_Direction.At_End (Iterateur_Lieu)) loop La_Direction := Liste_Direction.Consult (Iterateur_Lieu); Double := Liste_Nom.Found (Liste_Nom_Direction, La_Direction.Direction); if not Double then Liste_Nom.Add (Liste_Nom_Direction, La_Direction.Direction); end if; Liste_Direction.Next (Iterateur_Lieu); end loop; return (not Double); end Lieu_Is_Ok; function Structure_Is_Ok return Boolean is Ok : Boolean; La_Variable : Cellule; Nom_Variable : Nos_Chaines.String_Text; Iterateur_Direction : Liste_Direction.Iterateur; begin Ok := True; Premier; while (not Fin) loop La_Variable := Suivant; if not La_Variable.Complet then Ok := False; Error.Semantic (La_Variable.Nom, Error.Definition_Incomplete); else case La_Variable.Type_Variable is when Personnage => if (La_Variable.Specif.Position_Personnage = null) then Ok := False; Error.Semantic (La_Variable.Nom, Error.Absence_Position); end if; when Objet => if (La_Variable.Specif.Position_Objet = null) then Ok := False; Error.Semantic (La_Variable.Nom, Error.Absence_Position); end if; when Lieu => if (not Lieu_Is_Ok (La_Variable)) then Ok := False; Error.Semantic (La_Variable.Nom, Error.Deux_Directions_Identiques); end if; when others => null; end case; end if; end loop; return Ok; end Structure_Is_Ok; end Check_Structure;
nblk1=4 nid=2 hdr6=6 [0x00] rec0=1b rec1=00 rec2=01 rec3=08a [0x01] rec0=1a rec1=00 rec2=04 rec3=076 [0x02] rec0=18 rec1=00 rec2=03 rec3=000 [0x03] rec0=08 rec1=00 rec2=03 rec3=000 tail 0x215454c9a86587ffa5c52 0x42a00088462060003 Free Block Chain: 0x2: 0000 00 00 03 fc 80 19 20 20 20 20 20 20 20 20 20 20 ┆ ┆