DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 4457 (0x1169) Types: TextFile Names: »V«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
generic type Symbole is private; with function Equal (Left, Right : Symbole) return Boolean is <>; package Bloc is -- beau paquetage generique fabrique artisanalement ! type Liste (Type_Cont : Boolean) is private; type Pliste is private; function Nouveau_Pere return Boolean; function Nouveau_Bloc_Frere_Cadet return Boolean; function Nouveau_Bloc_Frere_Aine return Boolean; function Nouveau_Bloc_Fils return Boolean; function Va_Bloc_Fils return Boolean; function Va_Bloc_Pere return Boolean; function Va_Bloc_Frere_Aine return Boolean; function Va_Bloc_Frere_Cadet return Boolean; function Dernier_Bloc return Boolean; procedure Insere_Offset (Un_Temps : Integer); function Donne_Offset return Integer; function Donne_Profondeur return Integer; function Scene_Existe (Un_Nom : Symbole) return Boolean; function Insere_Scene (Un_Nom : Symbole) return Boolean; function Va_Scene (Un_Nom : Symbole) return Boolean; procedure Insere_Type_Bloc (Un_Nom : Symbole); function Donne_Type_Bloc return Symbole; function Donne_Nouvelle_Liste (Type_Liste : Boolean) return Pliste; function Liste_Vide return Pliste; procedure Memorise_Bloc_Courant (I : Integer); procedure Retourne_Bloc_Memorise (I : Integer); procedure Insere_Liste_Symbole (Un_Element : Symbole; Une_Valeur : Integer); procedure Insere_Liste_Symbole (Un_Element : Symbole; Une_Liste : Liste); procedure Insere_Liste_Action (Une_Action : Symbole; Un_Acteur : Symbole; De : Integer; Vers : Integer; En : Integer); function Qui_Es_Tu (Un_Element : Symbole) return Liste; procedure Liste_Action_Donne (Une_Action : out Symbole; Un_Acteur : out Symbole; De : out Integer; Vers : out Integer; En : out Integer); function Liste_Action_Suivante return Boolean; function Liste_Action_Init return Boolean; procedure Prend_Liste (Une_Liste : in Liste); function Donne_Type_Liste return Boolean; function Donne_Taille_Liste return Integer; function Suivant return Boolean; function Donne_Element return Symbole; function Donne_Element return Integer; procedure Concate (Un_Element : Symbole; Une_Liste : in out Pliste); procedure Concate (Une_Valeur : Integer; Une_Liste : in out Pliste); procedure Construit_Liste_Offset; function Suivant_Liste_Offset_Est_Bloc_Courant return Boolean; function Init_Liste_Offset (Un_Nom : Symbole) return Boolean; private type Pliste is access Liste; type Liste (Type_Cont : Boolean) is record Suivant : Pliste := null; Precedent : Pliste := null; case Type_Cont is when True => Contenu : Symbole; when False => Valeur : Integer; end case; end record; type Grande_Liste (Action : Boolean); type Pgrande_Liste is access Grande_Liste; type Grande_Liste (Action : Boolean) is record Suivant : Pgrande_Liste := null; Precedent : Pgrande_Liste := null; case Action is when False => Index : Pliste := null; Contenu : Symbole; when True => Une_Action : Symbole; Un_Acteur : Symbole; De, Vers, En : Integer := -10; end case; end record; type Le_Bloc; type Pbloc is access Le_Bloc; --les types suivant sont dans cette partie car on les instancie, de maniere indirecte, par symbole. type Le_Bloc is record Liste_Symbole : Pgrande_Liste := null; Liste_Action : Pgrande_Liste := null; Offset : Integer := 0; Rep : Integer := -1; Type_Bloc : Symbole; Dernier_Bloc : Boolean; Le_Pere : Pbloc := null; Le_Fils : Pbloc := null; Le_Frere_Aine : Pbloc := null; Le_Frere_Cadet : Pbloc := null; Un_Compteur : Integer range 1 .. 32 := 1; Profondeur : Integer := 0; end record; end Bloc;