|
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 ┆ ┆