|
|
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: 20480 (0x5000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Parseur, seg_03bb2b
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Lexical;
use Lexical;
package body Parseur is
function Dans return Boolean is separate;
function Repeter return Boolean is separate;
function Repeter_Ad_Eternam return Boolean is separate;
function Toutes return Boolean is separate;
function Liste_Dinstructions return Boolean is
begin
case Lexical.Get_Token is
when L_Dans =>
return Dans;
when L_Repeter =>
return Repeter;
when L_Repeter_Ad_Eternam =>
return Repeter_Ad_Eternam;
when L_Toutes =>
return Toutes;
when L_Id =>
Lexical.Next;
return Petites_Insructions;
when Groupe =>
return Groupe;
end case;
end Liste_Dinstructions;
function Instructions return Boolean is
begin
while (Lexical.Get_Token = L_Dans or Lexical.Get_Token = L_Repeter or
Lexical.Get_Token = L_Repeter_Ad_Eternam or
Lexical.Get_Token = L_Toutes or Lexical.Get_Token = L_Id or
Lexical.Get_Token = L_Groupe) loop
if not Liste_Dinstructions then
return False;
end if;
end loop;
return True;
end Instructions;
function Bloc_Scenario return Boolean is
begin
while Lexical.Get_Token = L_Scene loop
Lexical.Next;
if Lexical.Get_Token = L_Id then
Lexical.Next;
if Lexical.Get_Token = L_Begin then
if Instructions then
if Lexical.Get_Token = L_End then
Lexical.Next;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end if;
end loop;
return True;
end Bloc_Scenario;
function Def_Scenario return Boolean is
begin
if Lexical.Get_Token = L_Scenario then
Lexical.Next;
if Lexical.Get_Token = L_Begin then
Lexical.Next;
if Bloc_Scenario then
if Lexical.Get_Token = L_End then
Lexical.Next;
return True;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end Def_Scenario;
function Bloc_Experience return Boolean is
begin
while Lexical.Get_Token = L_Effet loop
Lexical.Next;
if Lexical.Get_Tiken = L_Id then
if Lexical.Get_Token = L_Open then
Leical.Next;
if Bloc_Groupe then
if Lexical.Get_Token = L_Begin then
Lexical.Next;
if Instructions then
if Lexical.Get_Token = L_End then
Lexical.Next;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end if;
end loop;
return True;
end Bloc_Experience;
function Def_Experience return Boolean is
begin if Lexical.Get_Token = L_Experience then
Lexical.Next;
if Lexical.Get_Token = L_Begin then
Lexical.Next;
if Bloc_Experience then
if Lexical.Get_Token = L_End then
Lexical.Next;
return True;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end Def_Experience;
function Bloc_Acteur return Boolean is
begin
while Lexical.Get_Token = L_Id loop
Lexical.Next;
if Lexical.Get_Token = L_Est then
Lexical.Next;
if Lexical.Get_Token = L_Id then
Lexical.Next;
if Lexical.Get_Token = L_Sur then
Lexical.Next;
if Lexical.Get_Token = L_Station then
Lexical.Next;
if Lexical.Get_Token = L_Number then
Lexical.Next;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end loop;
return True;
end Bloc_Acteur;
function Def_Acteurs return Boolean is
begin
if Lexical.Get_Token = L_Acteurs then
Lexical.Next;
if Lexical.Get_Token = L_Begin then
Lexical.Next;
if Bloc_Acteur then
if Lexical.Get_Token = L_End then
Lexical.Next;
return True;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end Def_Acteurs;
function Le_Type return Boolean is
begin
if Lexical.Get_Token = L_Discret then
Lexical.Next;
return True;
else
if Lexical.Get_Token = L_Temporel then
Lexical.Next;
return True;
else
return False;
end if;
end if;
end Le_Type;
function Contenu_Option return Boolean is
begin
if Lexical.Get_Token = L_Vers then
Lexical.Next;
if Le_Type then
if Lexical.Get_Token = L_En then
Lexical.Next;
if Le_Type then
return True;
else
return False;
end if;
else
return True;
end if;
else
return False;
end if;
else
return True;
end if;
end Contenu_Option;
function Option return Boolean is
begin
if Lexical.Get_Token = L_Open then
Lexical.Next;
if Lexical.Get_Token = L_De then
Lexical.Next;
if Le_Type then
if Contenu_Option then
if Lexical.Get_Token = L_Close then
return True;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return True;
end if;
end Option;
function Liste return Boolean is
begin
while Lexical.Get_Token = L_Id loop
Lexical.Next;
if Lexical.Get_Token = L_Est then
Lexical.Next;
if Lexical.Get_Token = L_Number then
Lexical.Next;
if not Option then
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end loop; return True;
end Liste;
function Bloc_Materiel return Boolean is
begin
while Lexical.Get_Token = L_Id loop
Lexical.Next;
if Lexical.Get_Token = L_Fait then
Lexical.Next;
if Lexical.Get_Token = L_Begin then
Lexical.Next;
if Liste then
if Lexical.Get_Token = L_End then
Lexical.Next;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end loop;
return True;
end Bloc_Materiel;
function Def_Materiel return Boolean is
begin
if Lexical.Get_Token = L_Materiel then
Lexical.Next;
if Lexical.Get_Token = L_Begin then
Lexical.Next;
if Bloc_Materiel then
if Lexical.Get_Token = L_End then
Lexical.Next;
return True;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end Def_Materiel;
function Code return Boolean is
begin
if Def_Materiel then
if Def_Acteurs then
if Def_Experience then
if Def_Scenario then
if Def_Enchainement then
return True;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
else
return False;
end if;
end Code;
function Start (File_Name : String) return Boolean is
begin
Lexical.Open (File_Name);
Lexical.Next;
if Code then
return True;
else
return False;
end if;
Lexical.Close_The_File;
end Start;
end Parseur;
nblk1=13
nid=c
hdr6=1a
[0x00] rec0=21 rec1=00 rec2=01 rec3=004
[0x01] rec0=02 rec1=00 rec2=0b rec3=00e
[0x02] rec0=1f rec1=00 rec2=04 rec3=000
[0x03] rec0=20 rec1=00 rec2=07 rec3=00e
[0x04] rec0=1c rec1=00 rec2=06 rec3=002
[0x05] rec0=1e rec1=00 rec2=05 rec3=046
[0x06] rec0=1d rec1=00 rec2=08 rec3=058
[0x07] rec0=25 rec1=00 rec2=0a rec3=004
[0x08] rec0=1f rec1=00 rec2=0d rec3=02a
[0x09] rec0=24 rec1=00 rec2=09 rec3=002
[0x0a] rec0=21 rec1=00 rec2=12 rec3=042
[0x0b] rec0=20 rec1=00 rec2=11 rec3=006
[0x0c] rec0=1c rec1=00 rec2=0e rec3=000
[0x0d] rec0=1c rec1=00 rec2=0e rec3=000
[0x0e] rec0=1c rec1=00 rec2=0e rec3=000
[0x0f] rec0=24 rec1=00 rec2=02 rec3=030
[0x10] rec0=08 rec1=00 rec2=03 rec3=000
[0x11] rec0=00 rec1=00 rec2=00 rec3=000
[0x12] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x215306ee884e173c510c0 0x42a00088462060003
Free Block Chain:
0xc: 0000 00 02 03 fc 80 0e 20 72 65 74 75 72 6e 20 46 61 ┆ return Fa┆
0x2: 0000 00 03 03 fc 80 1a 47 65 74 5f 54 6f 6b 65 6e 20 ┆ Get_Token ┆
0x3: 0000 00 13 03 fc 80 05 61 6c 73 65 3b 05 00 0f 20 20 ┆ alse; ┆
0x13: 0000 00 10 00 19 80 0a 42 6f 6f 6c 65 61 6e 20 69 73 ┆ Boolean is┆
0x10: 0000 00 0f 03 fc 80 05 61 6c 73 65 3b 05 00 0f 20 20 ┆ alse; ┆
0xf: 0000 00 00 00 06 80 03 20 20 20 03 20 20 20 20 20 20 ┆ ┆