DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦8032ff7a1⟧ TextFile

    Length: 5188 (0x1444)
    Types: TextFile
    Names: »B«

Derivation

└─⟦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⟧ 

TextFile

with Etape;
use Etape;
package body Role is

    function Creerunrole (A : Acteur) return Role is
        Resultat : Role;
    begin
        Resultat           := new Descripteurderole;
        Resultat.Lacteur   := A;
        Resultat.Lesetapes := Etape.Etapeinexistante;
        Resultat.Encours   := False;
        Resultat.Ledebut   := 0;
        Resultat.Lindex    := Etape.Etapeinexistante;
        Resultat.Laduree   := 0;
        return Resultat;
    end Creerunrole;

    function Leroleestvide (Unrole : Role) return Boolean is  
        use Etape;
    begin
        return Boolean (Unrole.Lesetapes = Etape.Etapeinexistante);
    end Leroleestvide;

    function Lacteurdurole (Unrole : Role) return Acteur is
    begin
        return Unrole.Lacteur;
    end Lacteurdurole;

    function Ladureedurole (Unrole : Role) return Etape.Temps is
    begin
        return Unrole.Laduree;
    end Ladureedurole;

    function Leroleestencours (Unrole : Role) return Boolean is
    begin
        return (Unrole.Encours = True);
    end Leroleestencours;

    function Lesetapes (Unrole : Role) return Etape.Etape is
    begin
        return Unrole.Lesetapes;
    end Lesetapes;

    function Quelleactiondurole
                (Unrole : Role; Untemps : Temps) return Etape.Action is
        Indexrole : Etape.Etape;
        Trouve    : Boolean := False;
    begin
        Indexrole := Lesetapes (Unrole);
        while (Indexrole /= Etapeinexistante) and (not Trouve) loop

            if Etape.Letempsdeletape (Indexrole) = Untemps then
                Trouve             := True;
                Quelleactiondurole := Lactiondeletape (Indexrole);
            end if;
            Indexrole := Lasuitedeletape (Indexrole);
        end loop;
    end Quelleactiondurole;

    procedure Caseruneactiondansunrole (Unrole    : Role;
                                        Untemps   : Etape.Temps;
                                        Uneaction : Etape.Action) is
        E : Etape.Etape;
    begin
        E := Lesetapes (Unrole);
        Caseruneactiondanslesetapes (Untemps, Uneaction, E);
    end Caseruneactiondansunrole;

    procedure Exclureuneactiondansunrole
                 (Unrole : Role; Untemps : Etape.Temps) is
        E : Etape.Etape;
    begin
        E := Lesetapes (Unrole);
        Exclureuneactiondesetapes (E, Untemps);
    end Exclureuneactiondansunrole;

    procedure Decaleruneactiondurole
                 (Unrole : Role; Untemps : Etape.Temps; Delai : Integer) is
    begin
        null;
    end Decaleruneactiondurole;

    procedure Deplaceruneactiondurole
                 (Unrole : Role; Untemps : Etape.Temps; Delai : Integer) is
    begin
        null;
    end Deplaceruneactiondurole;

    procedure Decalerlerole
                 (Unrole : Role; Untemps : Etape.Temps; Delai : Integer) is
    begin
        null;
    end Decalerlerole;

    procedure Viderlerole (Unrole : in out Role) is
    begin
        Unrole.Lesetapes := Etapeinexistante;
    end Viderlerole;

    function Chargerunacteur (F : in Text_Io.File_Type) return Etape.Acteur is
        Actaux : Etape.Acteur;
    begin
        Readln (F, Actaux);
        return Actaux;
    end Chargerunacteur;

    function Chargeruneaction (F : in Text_Io.File_Type) return Etape.Action is
        Actionaux : Etape.Action;
    begin
        Readln (F, Actionaux);
        return Actionaux;
    end Chargeruneaction;

    function Chargeruntemps (F : in Text_Io.File_Type) return Etape.Temps is
        Tempsaux : Etape.Temps;
    begin
        Readln (F, Tempsaux);
        return Tempsaux;
    end Chargeruntemps;

    function Chargerunrole (F : in Text_Io.File_Type) return Role is
        Unrole    : Role;
        Unacteur  : Etape.Acteur;
        Uneaction : Etape.Action;
        Untemps   : Etape.Temps;
        Nombre    : Integer;
    begin
        Unacteur := Chargerunacteur (F);
        Unrole   := Creerunrole (Unacteur);
        Readln (F, Nombre);
        for I in 1 .. Nombre loop
            Uneaction := Chargeruneaction (F);
            Untemps   := Chargeruntemps (F);
            Caseruneactiondansunrole (Unrole, Untemps, Uneaction);
        end loop;
        return Unrole;
    end Chargerunrole;

    procedure Demarrerlerole (Unrole : in out Role) is
        Indicerole : Role;
    begin
        Indicerole         := Unrole;
        Indicerole.Encours := True;
        if Indicerole.Etape /= [expression]'[identifier]'[identifier] then
            begin
                Text_Io.Putline ("Acteur = ", Indicerole.Laction);
                Indicerole.Etape := Indicerole.Etape.Lasuite;
            end;
        end if;

    end Demarrerlerole;

    procedure Arreterlerole (Unrole : in out Role) is
    begin
        null;
    end Arreterlerole;

    procedure Jouerlerole (Unrole : Role) is
    begin
        null;
    end Jouerlerole;

    procedure Solliciterlerole (Unrole : Role) is
    begin
        null;
    end Solliciterlerole;

    procedure Sauvegarderlerole (Unrole : Role; Fichier : String) is
        F : Text_Io.File_Type;
    begin
        Assign (F, Fichier);
        Append (F);
        Sauverunacteur (F, Unrole);
    end Sauvegarderlerole;
end Role;