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

⟦73a545851⟧ TextFile

    Length: 6185 (0x1829)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Abstract_Tree;
with Element;
with Follow;
with Lex;
with Symbol_Table;
with Station_Identifier;
with Text_Io;
with Token;
with Trame_Product;
use Token;
use Follow;
package body Parse is

    package Error is
        procedure Found;
        function Get return Boolean;
    end Error;

    package body Error is separate;

    package Num_Station is
        function Get_New return Station_Identifier.Object;
        function Get_Max return Station_Identifier.Object;
    end Num_Station;

    package body Num_Station is separate;


    procedure Parse_Les_Ordres
                 (Ok : out Boolean;
                  The_List : in out Abstract_Tree.P_Instruction_List);

    procedure Parse_Facteur (Ok : out Boolean;
                             The_Node : out Abstract_Tree.P_Node);

    procedure Parse_Expression (Ok : out Boolean;
                                The_Node : out Abstract_Tree.P_Node);

    procedure Parse_Error (Ensemble : Token_Set.Set) is separate;

    procedure Parse_Variable (Ok : out Boolean;
                              The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Dans_Suite
                 (Ok : out Boolean;
                  The_List : in out Abstract_Tree.
                                       P_Instruction_List) is separate;

    procedure Parse_Attendre (Ok : out Boolean;
                              The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Relation (Ok : out Boolean;
                              The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Condition (Ok : out Boolean;
                               Cond1_Node, Relation_Node, Cond2_Node : out
                                  Abstract_Tree.P_Node) is separate;

    procedure Parse_Tant_Que (Ok : out Boolean;
                              The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Repeter (Ok : out Boolean;
                             The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Debut (Ok : out Boolean;
                           The_Node : out Abstract_Tree.P_Node) is separate;
    procedure Parse_Activer (Ok : out Boolean;
                             The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Desactiver
                 (Ok : out Boolean;
                  The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Changer (Ok : out Boolean;
                             The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Evoluer (Ok : out Boolean;
                             The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Affectation
                 (Ok : out Boolean;
                  The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Facteur (Ok : out Boolean;
                             The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Terme (Ok : out Boolean;
                           The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Expression
                 (Ok : out Boolean;
                  The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Dans (Ok : out Boolean;
                          The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Un_Parametre_Reel (Ok : out Boolean) is separate;

    procedure Parse_Autre_Parametre_Reel
                 (Ok : out Boolean;
                  The_List : in out Abstract_Tree.
                                       P_Instruction_List) is separate;

    procedure Parse_Parametres_Reels
                 (Ok : out Boolean;
                  The_List : in out Abstract_Tree.
                                       P_Instruction_List) is separate;

    procedure Parse_Appel_Effet
                 (Ok : out Boolean;
                  The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Appel_Scene
                 (Ok : out Boolean;
                  The_Node : out Abstract_Tree.P_Node) is separate;

    procedure Parse_Les_Ordres
                 (Ok : out Boolean;
                  The_List : in out Abstract_Tree.
                                       P_Instruction_List) is separate;

    procedure Parse_Scenes (Ok : out Boolean) is separate;

    procedure Parse_Spectacle (Ok : out Boolean) is separate;

    procedure Parse_Autre_Parametre (Ok : out Boolean) is separate;

    procedure Parse_Parametres (Ok : out Boolean) is separate;

    procedure Parse_Les_Experiences (Ok : out Boolean) is separate;

    procedure Parse_Experience (Ok : out Boolean) is separate;

    procedure Parse_Stations (Ok : out Boolean) is separate;

    procedure Parse_Theatre (Ok : out Boolean) is separate;

    procedure Parse_Type_Actor
                 (Ok : out Boolean;
                  The_Type : out Element.Element_Type) is separate;

    procedure Parse_Acteurs (Ok : out Boolean) is separate;

    procedure Parse_Corps_Materiel (Ok : out Boolean) is separate;

    procedure Parse_Materiel (Ok : out Boolean) is separate;

    procedure Parse_Start (Ok : out Boolean) is separate;


    procedure Go (The_Fichier : String) is
        Fichier : constant String := The_Fichier;
        Ok : Boolean := True;
        Success : Boolean;
        The_List : Abstract_Tree.P_Instruction_List;
    begin
        Trame_Product.Choose_The_Destination;
        Abstract_Tree.Create_List (The_List);
        Lex.Open (Fichier);
        Init_Set;
        loop
            Lex.Next;
            Parse_Start (Ok);
            if not Ok then
                Parse_Error (Start_Follow);
            end if;
            exit when Lex.At_End;
        end loop;
        Lex.Close;
        if not Error.Get then
            Symbol_Table.Get_Instr_List ("_spectacle", The_List, Success);
            if Success then
                Text_Io.Put_Line ("Execution du code : ");
                Abstract_Tree.Execute_Code (The_List);
            else
                Text_Io.Put_Line ("Unable to execute code sorry");
            end if;
        else
            Text_Io.Put_Line ("Erreur trouvee");
        end if;
        Trame_Product.Done;
    end Go;


end Parse;