DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦d4bf053a2⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Main, seg_046a50

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Text_Io, Lexical;

with Nom_Jeu, Les_Actions, Les_Definitions, Les_Presentations;
with Les_Liaisons, Les_Anims_Globales, Les_Anims_Generales,
     Les_Anims_Locales, Fin_Jeu, Erreur;

with Verbs_Dictionary, Comps_Dictionary;
with Models, Symbols;
with Set_Of_Links, Set_Of_Connections;
with Player_Entries, Interprete;

with Liste_D_Instructions;

use Text_Io;

procedure Main is

    Nomf : constant String := "Ex_Jeu";
    Dict : Verbs_Dictionary.Object;
    Comp : Comps_Dictionary.Object;
    Models_Table : Models.Object;
    Symbols_Table : Symbols.Object;
    Links : Set_Of_Links.Object;
    Connect : Set_Of_Connections.Object;

    Liste_Generale : Liste_D_Instructions.Object;
    Liste_Globale : Liste_D_Instructions.Object;
    Liste_Locale : Liste_D_Instructions.Object;

begin

    Lexical.Init (Nomf);
    Lexical.Next;

    Verbs_Dictionary.Create (Dict);
    Comps_Dictionary.Create (Comp);
    Models.Create (Models_Table);
    Symbols.Create (Symbols_Table);
    Set_Of_Links.Create (Links);
    Set_Of_Connections.Create (Connect);

    Liste_Generale := Liste_D_Instructions.Creation;
    Liste_Globale := Liste_D_Instructions.Creation;
    Liste_Locale := Liste_D_Instructions.Creation;

    Put ("Nom_Jeu ............... ");
    Nom_Jeu.Parse;
    Put_Line ("OK");

    Put ("Les_Actions ........... ");
    Les_Actions.Parse (Dict);
    Put_Line ("OK");

    Put ("Les_Definitions ....... ");
    Les_Definitions.Parse (Models_Table, Symbols_Table);
    Put_Line ("OK");

    Put ("Les_Presentations ..... ");
    Les_Presentations.Parse (Models_Table, Symbols_Table, Comp);
    Put_Line ("OK");

    Put ("Les_Liaisons .......... ");
    Les_Liaisons.Parse (Comp, Connect, Links);
    Put_Line ("OK");

    Put ("Les_Anims_Generales ... ");
    Les_Anims_Generales.Parse (Liste_Generale, Models_Table,
                               Symbols_Table, Comp, Dict);
    Put_Line ("OK");

    Put ("Les_Anims_Globales .... ");
    Les_Anims_Globales.Parse (Liste_Globale, Models_Table,
                              Symbols_Table, Comp, Dict);
    Put_Line ("OK");

    Put ("Les_Anims_Locales ..... ");
    Les_Anims_Locales.Parse (Liste_Locale, Models_Table,
                             Symbols_Table, Comp, Dict);
    Put_Line ("OK");

    Put ("Fin_Jeu ............... ");
    Fin_Jeu.Parse;
    Put_Line ("OK");

    if not Erreur.Probleme_De_Compilation then
        Text_Io.Put_Line ("Source Ok.");
    else
        Text_Io.Put_Line ("Erreurs !!!");
    end if;

    Liste_D_Instructions.Afficher (Liste_Generale);
    Liste_D_Instructions.Afficher (Liste_Globale);
    Liste_D_Instructions.Afficher (Liste_Locale);

    declare  
        End_Of_The_Game : Boolean := False;
        Player_Command : Player_Entries.Token;

    begin
        while not End_Of_The_Game loop

            Player_Command := Interprete.Get_Player (Comp, Dict);

            case Player_Command is
                when Player_Entries.Fin =>
                    End_Of_The_Game := True;

                when Player_Entries.Verbe =>
                    Text_Io.Put_Line
                       ("-- Liste des Verbes -------------------------------------------------");
                    Verbs_Dictionary.Dump (Dict);
                when Player_Entries.Complement =>
                    Text_Io.Put_Line
                       ("-- Liste des Complements --------------------------------------------");
                    Comps_Dictionary.Dump (Comp);
                when Player_Entries.Modele =>
                    Text_Io.Put_Line
                       ("-- Liste des Models :Definition des types ---------------------------");
                    Models.Dump_Models (Models_Table);
                when Player_Entries.Symbole =>
                    Text_Io.Put_Line
                       ("-- Table des Symboles -----------------------------------------------");
                    Symbols.Dump_Symbols (Symbols_Table);
                when Player_Entries.Connexion =>  
                    Text_Io.Put_Line
                       ("-- Liste des Connexions  --------------------------------------------");

                    Set_Of_Connections.Dump (Connect);

                when Player_Entries.Lien =>
                    Text_Io.Put_Line
                       ("-- Liste des Liens --------------------------------------------------");

                    Set_Of_Links.Dump (Links);
                when Player_Entries.Id =>
                    Text_Io.Put_Line
                       ("-- Execution des instructions du jeu --------------------------------");


                when others =>
                    Text_Io.Put_Line
                       (" --- Fonctions pas encore implementees-------------------------------");

            end case;
        end loop;
    end;

    Text_Io.Put_Line (" fini .......... ");

    Liste_D_Instructions.Detruire (Liste_Generale);
    Liste_D_Instructions.Detruire (Liste_Globale);
    Liste_D_Instructions.Detruire (Liste_Locale);

    Verbs_Dictionary.Destroy (Dict);
    Comps_Dictionary.Destroy (Comp);
    Models.Dispose_Object (Models_Table);
    Symbols.Dispose_Object (Symbols_Table);
    Set_Of_Links.Destroy (Links);
    Set_Of_Connections.Destroy (Connect);

    Lexical.Close;

exception

    when Erreur.Erreur_Syntaxe =>
        Text_Io.Put_Line (" -- Erreur Fatale");
        Text_Io.Put_Line ("Bye, bye...");
        Verbs_Dictionary.Destroy (Dict);

    when Verbs_Dictionary.Duplicate_Value =>
        Text_Io.Put ("Lg:");
        Text_Io.Put (Natural'Image (Lexical.Get_Line));
        Text_Io.Put (" Cl:");
        Text_Io.Put (Natural'Image (Lexical.Get_Column));

--      when others => Text_Io.Put_Line ("Erreur inconnue");

end Main;


E3 Meta Data

    nblk1=8
    nid=7
    hdr6=e
        [0x00] rec0=26 rec1=00 rec2=01 rec3=038
        [0x01] rec0=20 rec1=00 rec2=06 rec3=006
        [0x02] rec0=21 rec1=00 rec2=02 rec3=050
        [0x03] rec0=0e rec1=00 rec2=05 rec3=016
        [0x04] rec0=13 rec1=00 rec2=08 rec3=052
        [0x05] rec0=21 rec1=00 rec2=04 rec3=010
        [0x06] rec0=0c rec1=00 rec2=03 rec3=001
        [0x07] rec0=dc rec1=9c rec2=1a rec3=0c2
    tail 0x215436bd286517dab762c 0x42a00088462060003
Free Block Chain:
  0x7: 0000  00 00 03 fc 80 21 20 20 20 20 28 53 79 6d 62 6f  ┆     !    (Symbo┆