|
|
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 - metrics - downloadIndex: B T
Length: 2901 (0xb55)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
package body Etape is
-- testee
function Creeruneetape
(Untemps : Temps; Uneaction : Action; Uneetape : Etape)
return Etape is
Etapeaux : Etape;
begin
Etapeaux := new Celluleetape;
Etapeaux.Letemps := Untemps;
Etapeaux.Laction := Uneaction;
Etapeaux.Lasuite := Uneetape;
return Etapeaux;
end Creeruneetape;
-- testee
function Letempsdeletape (Uneetape : Etape) return Temps is
begin
return Uneetape.Letemps;
end Letempsdeletape;
-- Testee
function Lactiondeletape (Uneetape : Etape) return Action is
begin
return Uneetape.Laction;
end Lactiondeletape;
-- testee
function Lasuitedeletape (Uneetape : Etape) return Etape is
begin
return Uneetape.Lasuite;
end Lasuitedeletape;
-- testee
procedure Changerletempsdeletape
(Uneetape : in out Etape; Untemps : Temps) is
begin
Uneetape.Letemps := Untemps;
end Changerletempsdeletape;
-- testee
procedure Changerlactiondeletape
(Uneetape : in out Etape; Uneaction : Action) is
begin
Uneetape.Laction := Uneaction;
end Changerlactiondeletape;
-- testee
-- rmq : L'etape E qui est retournee est la meme que celle transmise
-- elle n'est pas modifiee mais doit etre passee par adresse pour que
-- des affectations ( insertions) puissent se faire pdt la recursion arriere
procedure Caseruneactiondanslesetapes
(T : Temps; A : Action; E : in out Etape) is
begin
if E = Etapeinexistante then -- OK
E := Creeruneetape (T, A, E);
else
if T = Letempsdeletape (E) then -- OK
Changerlactiondeletape (E, A);
else
if T > Letempsdeletape (E) then -- OK
Caseruneactiondanslesetapes (T, A, E.Lasuite);
else
E := Creeruneetape (T, A, E); -- OK
end if;
end if;
end if;
end Caseruneactiondanslesetapes;
-- testee
procedure Detruireetape (E : in out Etape) is
begin
-- DISPOSE(E); -- a modifier
E := Etapeinexistante;
end Detruireetape;
-- testee
procedure Exclureuneactiondesetapes (E : in out Etape; T : Temps) is
A_Jeter : Etape;
begin
if E /= Etapeinexistante then -- OK
if T = Letempsdeletape (E) then
begin
A_Jeter := E;
E := E.Lasuite;
Detruireetape (A_Jeter); -- OK
end;
else
if T > Letempsdeletape (E) then -- OK
Exclureuneactiondesetapes (E.Lasuite, T);
end if;
end if;
end if;
end Exclureuneactiondesetapes;
end Etape;
-- -------------- Etape ------------------------------