|
|
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 Variable, seg_046593, seg_046959
└─⟦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 Structure_Des_Variables;
with Create_Structure;
with Nos_Chaines;
with Lex;
package body Variable is
type Attribut is (Contenu, Etat, Possession);
procedure Autre_Possession_Contenu_Etat
(Ok : in out Boolean;
Le_Champ : Attribut;
Le_Sens : Structure_Des_Variables.Enum_Sens);
procedure Existence_Parse (Ok : in out Boolean) is
use Lex;
begin
if (Lex.Get_Token = L_Est) then
Create_Structure.Associate_Existence (True);
Lex.Next;
Ok := True;
else
if (Lex.Get_Token = L_Sera) then
Create_Structure.Associate_Existence (False);
Lex.Next;
Ok := True;
else
Ok := False;
end if;
end if;
end Existence_Parse;
procedure Description_Parse (Ok : in out Boolean;
Le_Sens : Structure_Des_Variables.Enum_Sens) is
use Lex;
begin
if Lex.Get_Token = L_Description then
if Lex.Next_Token = L_Colon then
if Lex.Next_Token = L_Text then
Create_Structure.Associate_Description
(Lex.Get_Value, Le_Sens);
Lex.Next;
Ok := True;
else
Ok := False;
end if;
else
Ok := False;
end if;
else
Ok := True;
end if;
end Description_Parse;
procedure Position_Parse (Ok : in out Boolean) is
use Lex;
begin
Ok := False;
if Lex.Get_Token = L_Position then
if Lex.Next_Token = L_Colon then
if Lex.Next_Token = L_Id then
Create_Structure.Associate_Position (Lex.Get_Value);
Lex.Next;
Ok := True;
end if;
end if;
end if;
end Position_Parse;
procedure Etat_Parse (Ok : in out Boolean;
Le_Sens : Structure_Des_Variables.Enum_Sens) is
use Lex;
begin
if Lex.Get_Token = L_Etat then
if Lex.Next_Token = L_Colon then
if Lex.Next_Token = L_Id then
Create_Structure.Associate_Etat (Lex.Get_Value, Le_Sens);
Lex.Next;
Autre_Possession_Contenu_Etat (Ok, Etat, Le_Sens);
else
Ok := False;
end if;
else
Ok := False;
end if;
else
Ok := True;
end if;
end Etat_Parse;
procedure Possession_Parse (Ok : in out Boolean) is
use Lex;
Le_Sens : Structure_Des_Variables.Enum_Sens;
begin
Le_Sens := Structure_Des_Variables.Pas_De_Sens;
if Lex.Get_Token = L_Possession then
if Lex.Next_Token = L_Colon then
if Lex.Next_Token = L_Id then
Create_Structure.Associate_Possession (Lex.Get_Value);
Lex.Next;
Autre_Possession_Contenu_Etat (Ok, Possession, Le_Sens);
else
Ok := False;
end if;
else
Ok := False;
end if;
else
Ok := True;
end if;
end Possession_Parse;
procedure Contenu_Parse (Ok : in out Boolean) is
use Lex;
Le_Sens : Structure_Des_Variables.Enum_Sens;
begin
Le_Sens := Structure_Des_Variables.Pas_De_Sens;
if Lex.Get_Token = L_Contenu then
if Lex.Next_Token = L_Colon then
if Lex.Next_Token = L_Id then
Create_Structure.Associate_Contenu (Lex.Get_Value);
Lex.Next;
Autre_Possession_Contenu_Etat (Ok, Contenu, Le_Sens);
else
Ok := False;
end if;
else
Ok := False;
end if;
else
Ok := True;
end if;
end Contenu_Parse;
procedure Autre_Possession_Contenu_Etat
(Ok : in out Boolean;
Le_Champ : Attribut;
Le_Sens : Structure_Des_Variables.Enum_Sens) is
use Lex;
begin
if Lex.Get_Token = L_Coma then
if Lex.Next_Token = L_Id then
case Le_Champ is
when Contenu =>
Create_Structure.Associate_Contenu (Lex.Get_Value);
when Etat =>
Create_Structure.Associate_Etat
(Lex.Get_Value, Le_Sens);
when Possession =>
Create_Structure.Associate_Possession (Lex.Get_Value);
end case;
Lex.Next;
Autre_Possession_Contenu_Etat (Ok, Le_Champ, Le_Sens);
else
Ok := False;
end if;
else
Ok := True;
end if;
end Autre_Possession_Contenu_Etat;
procedure Valeur_Parse (Ok : in out Boolean) is
use Lex;
begin
if Lex.Get_Token = L_Valeur then
if Lex.Next_Token = L_Colon then
if Lex.Next_Token = L_Number then
Create_Structure.Associate_Valeur
(Integer'Value (Nos_Chaines.Infinite_String.Image
(Lex.Get_Value)));
Lex.Next;
Ok := True;
else
Ok := False;
end if;
else
Ok := False;
end if;
else
Ok := True;
end if;
end Valeur_Parse;
end Variable;
nblk1=9
nid=2
hdr6=e
[0x00] rec0=24 rec1=00 rec2=01 rec3=04c
[0x01] rec0=1f rec1=00 rec2=05 rec3=012
[0x02] rec0=20 rec1=00 rec2=07 rec3=03a
[0x03] rec0=1b rec1=00 rec2=04 rec3=086
[0x04] rec0=1d rec1=00 rec2=09 rec3=04c
[0x05] rec0=1d rec1=00 rec2=06 rec3=016
[0x06] rec0=07 rec1=00 rec2=03 rec3=000
[0x07] rec0=1f rec1=00 rec2=09 rec3=001
[0x08] rec0=f5 rec1=18 rec2=00 rec3=004
tail 0x21543089686506788983d 0x42a00088462060003
Free Block Chain:
0x2: 0000 00 08 03 bf 80 21 65 6e 75 5f 45 74 61 74 20 28 ┆ !enu_Etat (┆
0x8: 0000 00 00 00 04 80 01 4c 01 02 20 4c 05 3a 3d 20 46 ┆ L L := F┆